From e8d1359422700faf29f700b231987ae758c1fa97 Mon Sep 17 00:00:00 2001 From: Victor Marmol Date: Wed, 11 Mar 2015 10:29:10 -0700 Subject: [PATCH] Add HTTP cAdvisor dependencies. Also removed unused goamz. --- Godeps/Godeps.json | 77 +- .../github.com/abbot/go-http-auth/.gitignore | 5 + .../src/github.com/abbot/go-http-auth/LICENSE | 178 ++ .../github.com/abbot/go-http-auth/Makefile | 12 + .../github.com/abbot/go-http-auth/README.md | 70 + .../src/github.com/abbot/go-http-auth/auth.go | 48 + .../github.com/abbot/go-http-auth/basic.go | 88 + .../abbot/go-http-auth/basic_test.go | 38 + .../github.com/abbot/go-http-auth/digest.go | 226 ++ .../abbot/go-http-auth/digest_test.go | 57 + .../abbot/go-http-auth/examples/basic.go | 35 + .../abbot/go-http-auth/examples/digest.go | 35 + .../abbot/go-http-auth/examples/wrapped.go | 36 + .../github.com/abbot/go-http-auth/md5crypt.go | 92 + .../abbot/go-http-auth/md5crypt_test.go | 18 + .../src/github.com/abbot/go-http-auth/misc.go | 30 + .../abbot/go-http-auth/misc_test.go | 12 + .../abbot/go-http-auth/test.htdigest | 1 + .../abbot/go-http-auth/test.htpasswd | 2 + .../github.com/abbot/go-http-auth/users.go | 136 ++ .../abbot/go-http-auth/users_test.go | 33 + .../github.com/google/cadvisor/api/handler.go | 251 +++ .../google/cadvisor/api/versions.go | 348 +++ .../google/cadvisor/api/versions_test.go | 81 + .../google/cadvisor/healthz/healthz.go | 32 + .../google/cadvisor/http/handlers.go | 101 + .../google/cadvisor/http/mux/mux.go | 26 + .../google/cadvisor/manager/manager.go | 2 +- .../google/cadvisor/pages/containers.go | 247 +++ .../google/cadvisor/pages/containers_html.go | 186 ++ .../google/cadvisor/pages/docker.go | 116 + .../github.com/google/cadvisor/pages/pages.go | 152 ++ .../pages/static/bootstrap_min_css.go | 25 + .../cadvisor/pages/static/bootstrap_min_js.go | 24 + .../pages/static/bootstrap_theme_min_css.go | 25 + .../cadvisor/pages/static/containers_css.go | 50 + .../cadvisor/pages/static/containers_js.go | 1918 +++++++++++++++++ .../cadvisor/pages/static/google_jsapi_js.go | 57 + .../cadvisor/pages/static/jquery_min_js.go | 24 + .../google/cadvisor/pages/static/static.go | 51 + .../google/cadvisor/validate/validate.go | 318 +++ .../src/github.com/mitchellh/goamz/elb/elb.go | 575 ----- .../mitchellh/goamz/elb/elb_test.go | 235 -- .../mitchellh/goamz/elb/responses_test.go | 182 -- .../github.com/mitchellh/goamz/elb/sign.go | 38 - 45 files changed, 5236 insertions(+), 1057 deletions(-) create mode 100644 Godeps/_workspace/src/github.com/abbot/go-http-auth/.gitignore create mode 100644 Godeps/_workspace/src/github.com/abbot/go-http-auth/LICENSE create mode 100644 Godeps/_workspace/src/github.com/abbot/go-http-auth/Makefile create mode 100644 Godeps/_workspace/src/github.com/abbot/go-http-auth/README.md create mode 100644 Godeps/_workspace/src/github.com/abbot/go-http-auth/auth.go create mode 100644 Godeps/_workspace/src/github.com/abbot/go-http-auth/basic.go create mode 100644 Godeps/_workspace/src/github.com/abbot/go-http-auth/basic_test.go create mode 100644 Godeps/_workspace/src/github.com/abbot/go-http-auth/digest.go create mode 100644 Godeps/_workspace/src/github.com/abbot/go-http-auth/digest_test.go create mode 100644 Godeps/_workspace/src/github.com/abbot/go-http-auth/examples/basic.go create mode 100644 Godeps/_workspace/src/github.com/abbot/go-http-auth/examples/digest.go create mode 100644 Godeps/_workspace/src/github.com/abbot/go-http-auth/examples/wrapped.go create mode 100644 Godeps/_workspace/src/github.com/abbot/go-http-auth/md5crypt.go create mode 100644 Godeps/_workspace/src/github.com/abbot/go-http-auth/md5crypt_test.go create mode 100644 Godeps/_workspace/src/github.com/abbot/go-http-auth/misc.go create mode 100644 Godeps/_workspace/src/github.com/abbot/go-http-auth/misc_test.go create mode 100644 Godeps/_workspace/src/github.com/abbot/go-http-auth/test.htdigest create mode 100644 Godeps/_workspace/src/github.com/abbot/go-http-auth/test.htpasswd create mode 100644 Godeps/_workspace/src/github.com/abbot/go-http-auth/users.go create mode 100644 Godeps/_workspace/src/github.com/abbot/go-http-auth/users_test.go create mode 100644 Godeps/_workspace/src/github.com/google/cadvisor/api/handler.go create mode 100644 Godeps/_workspace/src/github.com/google/cadvisor/api/versions.go create mode 100644 Godeps/_workspace/src/github.com/google/cadvisor/api/versions_test.go create mode 100644 Godeps/_workspace/src/github.com/google/cadvisor/healthz/healthz.go create mode 100644 Godeps/_workspace/src/github.com/google/cadvisor/http/handlers.go create mode 100644 Godeps/_workspace/src/github.com/google/cadvisor/http/mux/mux.go create mode 100644 Godeps/_workspace/src/github.com/google/cadvisor/pages/containers.go create mode 100644 Godeps/_workspace/src/github.com/google/cadvisor/pages/containers_html.go create mode 100644 Godeps/_workspace/src/github.com/google/cadvisor/pages/docker.go create mode 100644 Godeps/_workspace/src/github.com/google/cadvisor/pages/pages.go create mode 100644 Godeps/_workspace/src/github.com/google/cadvisor/pages/static/bootstrap_min_css.go create mode 100644 Godeps/_workspace/src/github.com/google/cadvisor/pages/static/bootstrap_min_js.go create mode 100644 Godeps/_workspace/src/github.com/google/cadvisor/pages/static/bootstrap_theme_min_css.go create mode 100644 Godeps/_workspace/src/github.com/google/cadvisor/pages/static/containers_css.go create mode 100644 Godeps/_workspace/src/github.com/google/cadvisor/pages/static/containers_js.go create mode 100644 Godeps/_workspace/src/github.com/google/cadvisor/pages/static/google_jsapi_js.go create mode 100644 Godeps/_workspace/src/github.com/google/cadvisor/pages/static/jquery_min_js.go create mode 100644 Godeps/_workspace/src/github.com/google/cadvisor/pages/static/static.go create mode 100644 Godeps/_workspace/src/github.com/google/cadvisor/validate/validate.go delete mode 100644 Godeps/_workspace/src/github.com/mitchellh/goamz/elb/elb.go delete mode 100644 Godeps/_workspace/src/github.com/mitchellh/goamz/elb/elb_test.go delete mode 100644 Godeps/_workspace/src/github.com/mitchellh/goamz/elb/responses_test.go delete mode 100644 Godeps/_workspace/src/github.com/mitchellh/goamz/elb/sign.go diff --git a/Godeps/Godeps.json b/Godeps/Godeps.json index 8fd17e6388f..dfeda9034f2 100644 --- a/Godeps/Godeps.json +++ b/Godeps/Godeps.json @@ -54,6 +54,10 @@ "Comment": "v0.6.2-10-g51fe59a", "Rev": "51fe59aca108dc5680109e7b2051cbdcfa5a253c" }, + { + "ImportPath": "github.com/abbot/go-http-auth", + "Rev": "c0ef4539dfab4d21c8ef20ba2924f9fc6f186d35" + }, { "ImportPath": "github.com/beorn7/perks/quantile", "Rev": "b965b613227fddccbfffe13eae360ed3fa822f8d" @@ -179,60 +183,85 @@ "ImportPath": "github.com/golang/protobuf/proto", "Rev": "7f07925444bb51fa4cf9dfe6f7661876f8852275" }, + { + "ImportPath": "github.com/google/cadvisor/api", + "Comment": "0.10.1-42-g4e2479b", + "Rev": "4e2479bcabe7af08825066f5ece2122553562b34" + }, { "ImportPath": "github.com/google/cadvisor/client", - "Comment": "0.10.1-36-g62a1788", - "Rev": "62a1788621f4adee2dbf08c26060ed7fb8c0297d" + "Comment": "0.10.1-42-g4e2479b", + "Rev": "4e2479bcabe7af08825066f5ece2122553562b34" }, { "ImportPath": "github.com/google/cadvisor/container", - "Comment": "0.10.1-36-g62a1788", - "Rev": "62a1788621f4adee2dbf08c26060ed7fb8c0297d" + "Comment": "0.10.1-42-g4e2479b", + "Rev": "4e2479bcabe7af08825066f5ece2122553562b34" }, { "ImportPath": "github.com/google/cadvisor/events", - "Comment": "0.10.1-36-g62a1788", - "Rev": "62a1788621f4adee2dbf08c26060ed7fb8c0297d" + "Comment": "0.10.1-42-g4e2479b", + "Rev": "4e2479bcabe7af08825066f5ece2122553562b34" }, { "ImportPath": "github.com/google/cadvisor/fs", - "Comment": "0.10.1-36-g62a1788", - "Rev": "62a1788621f4adee2dbf08c26060ed7fb8c0297d" + "Comment": "0.10.1-42-g4e2479b", + "Rev": "4e2479bcabe7af08825066f5ece2122553562b34" + }, + { + "ImportPath": "github.com/google/cadvisor/healthz", + "Comment": "0.10.1-42-g4e2479b", + "Rev": "4e2479bcabe7af08825066f5ece2122553562b34" + }, + { + "ImportPath": "github.com/google/cadvisor/http", + "Comment": "0.10.1-42-g4e2479b", + "Rev": "4e2479bcabe7af08825066f5ece2122553562b34" }, { "ImportPath": "github.com/google/cadvisor/info/v1", - "Comment": "0.10.1-36-g62a1788", - "Rev": "62a1788621f4adee2dbf08c26060ed7fb8c0297d" + "Comment": "0.10.1-42-g4e2479b", + "Rev": "4e2479bcabe7af08825066f5ece2122553562b34" }, { "ImportPath": "github.com/google/cadvisor/info/v2", - "Comment": "0.10.1-36-g62a1788", - "Rev": "62a1788621f4adee2dbf08c26060ed7fb8c0297d" + "Comment": "0.10.1-42-g4e2479b", + "Rev": "4e2479bcabe7af08825066f5ece2122553562b34" }, { "ImportPath": "github.com/google/cadvisor/manager", - "Comment": "0.10.1-36-g62a1788", - "Rev": "62a1788621f4adee2dbf08c26060ed7fb8c0297d" + "Comment": "0.10.1-42-g4e2479b", + "Rev": "4e2479bcabe7af08825066f5ece2122553562b34" + }, + { + "ImportPath": "github.com/google/cadvisor/pages", + "Comment": "0.10.1-42-g4e2479b", + "Rev": "4e2479bcabe7af08825066f5ece2122553562b34" }, { "ImportPath": "github.com/google/cadvisor/storage", - "Comment": "0.10.1-36-g62a1788", - "Rev": "62a1788621f4adee2dbf08c26060ed7fb8c0297d" + "Comment": "0.10.1-42-g4e2479b", + "Rev": "4e2479bcabe7af08825066f5ece2122553562b34" }, { "ImportPath": "github.com/google/cadvisor/summary", - "Comment": "0.10.1-36-g62a1788", - "Rev": "62a1788621f4adee2dbf08c26060ed7fb8c0297d" + "Comment": "0.10.1-42-g4e2479b", + "Rev": "4e2479bcabe7af08825066f5ece2122553562b34" }, { "ImportPath": "github.com/google/cadvisor/utils", - "Comment": "0.10.1-36-g62a1788", - "Rev": "62a1788621f4adee2dbf08c26060ed7fb8c0297d" + "Comment": "0.10.1-42-g4e2479b", + "Rev": "4e2479bcabe7af08825066f5ece2122553562b34" + }, + { + "ImportPath": "github.com/google/cadvisor/validate", + "Comment": "0.10.1-42-g4e2479b", + "Rev": "4e2479bcabe7af08825066f5ece2122553562b34" }, { "ImportPath": "github.com/google/cadvisor/version", - "Comment": "0.10.1-36-g62a1788", - "Rev": "62a1788621f4adee2dbf08c26060ed7fb8c0297d" + "Comment": "0.10.1-42-g4e2479b", + "Rev": "4e2479bcabe7af08825066f5ece2122553562b34" }, { "ImportPath": "github.com/google/gofuzz", @@ -264,10 +293,6 @@ "ImportPath": "github.com/mitchellh/goamz/ec2", "Rev": "703cfb45985762869e465f37ed030ff01615ff1e" }, - { - "ImportPath": "github.com/mitchellh/goamz/elb", - "Rev": "703cfb45985762869e465f37ed030ff01615ff1e" - }, { "ImportPath": "github.com/mitchellh/mapstructure", "Rev": "740c764bc6149d3f1806231418adb9f52c11bcbf" diff --git a/Godeps/_workspace/src/github.com/abbot/go-http-auth/.gitignore b/Godeps/_workspace/src/github.com/abbot/go-http-auth/.gitignore new file mode 100644 index 00000000000..112ea3951cd --- /dev/null +++ b/Godeps/_workspace/src/github.com/abbot/go-http-auth/.gitignore @@ -0,0 +1,5 @@ +*~ +*.a +*.6 +*.out +_testmain.go diff --git a/Godeps/_workspace/src/github.com/abbot/go-http-auth/LICENSE b/Godeps/_workspace/src/github.com/abbot/go-http-auth/LICENSE new file mode 100644 index 00000000000..e454a52586f --- /dev/null +++ b/Godeps/_workspace/src/github.com/abbot/go-http-auth/LICENSE @@ -0,0 +1,178 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + diff --git a/Godeps/_workspace/src/github.com/abbot/go-http-auth/Makefile b/Godeps/_workspace/src/github.com/abbot/go-http-auth/Makefile new file mode 100644 index 00000000000..25f208da078 --- /dev/null +++ b/Godeps/_workspace/src/github.com/abbot/go-http-auth/Makefile @@ -0,0 +1,12 @@ +include $(GOROOT)/src/Make.inc + +TARG=auth_digest +GOFILES=\ + auth.go\ + digest.go\ + basic.go\ + misc.go\ + md5crypt.go\ + users.go\ + +include $(GOROOT)/src/Make.pkg diff --git a/Godeps/_workspace/src/github.com/abbot/go-http-auth/README.md b/Godeps/_workspace/src/github.com/abbot/go-http-auth/README.md new file mode 100644 index 00000000000..8a26f10f6d2 --- /dev/null +++ b/Godeps/_workspace/src/github.com/abbot/go-http-auth/README.md @@ -0,0 +1,70 @@ +HTTP Authentication implementation in Go +======================================== + +This is an implementation of HTTP Basic and HTTP Digest authentication +in Go language. It is designed as a simple wrapper for +http.RequestHandler functions. + +Features +-------- + + * Supports HTTP Basic and HTTP Digest authentication. + * Supports htpasswd and htdigest formatted files. + * Automatic reloading of password files. + * Pluggable interface for user/password storage. + * Supports MD5 and SHA1 for Basic authentication password storage. + * Configurable Digest nonce cache size with expiration. + * Wrapper for legacy http handlers (http.HandlerFunc interface) + +Example usage +------------- + +This is a complete working example for Basic auth: + + package main + + import ( + auth "github.com/abbot/go-http-auth" + "fmt" + "net/http" + ) + + func Secret(user, realm string) string { + if user == "john" { + // password is "hello" + return "$1$dlPL2MqE$oQmn16q49SqdmhenQuNgs1" + } + return "" + } + + func handle(w http.ResponseWriter, r *auth.AuthenticatedRequest) { + fmt.Fprintf(w, "

Hello, %s!

", r.Username) + } + + func main() { + authenticator := auth.NewBasicAuthenticator("example.com", Secret) + http.HandleFunc("/", authenticator.Wrap(handle)) + http.ListenAndServe(":8080", nil) + } + +See more examples in the "examples" directory. + +Legal +----- + +This module is developed under Apache 2.0 license, and can be used for +open and proprietary projects. + +Copyright 2012-2013 Lev Shamardin + +Licensed under the Apache License, Version 2.0 (the "License"); you +may not use this file or any other part of this project 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. diff --git a/Godeps/_workspace/src/github.com/abbot/go-http-auth/auth.go b/Godeps/_workspace/src/github.com/abbot/go-http-auth/auth.go new file mode 100644 index 00000000000..c4eb5639339 --- /dev/null +++ b/Godeps/_workspace/src/github.com/abbot/go-http-auth/auth.go @@ -0,0 +1,48 @@ +package auth + +import "net/http" + +/* + Request handlers must take AuthenticatedRequest instead of http.Request +*/ +type AuthenticatedRequest struct { + http.Request + /* + Authenticated user name. Current API implies that Username is + never empty, which means that authentication is always done + before calling the request handler. + */ + Username string +} + +/* + AuthenticatedHandlerFunc is like http.HandlerFunc, but takes + AuthenticatedRequest instead of http.Request +*/ +type AuthenticatedHandlerFunc func(http.ResponseWriter, *AuthenticatedRequest) + +/* + Authenticator wraps an AuthenticatedHandlerFunc with + authentication-checking code. + + Typical Authenticator usage is something like: + + authenticator := SomeAuthenticator(...) + http.HandleFunc("/", authenticator(my_handler)) + + Authenticator wrapper checks the user authentication and calls the + wrapped function only after authentication has succeeded. Otherwise, + it returns a handler which initiates the authentication procedure. +*/ +type Authenticator func(AuthenticatedHandlerFunc) http.HandlerFunc + +type AuthenticatorInterface interface { + Wrap(AuthenticatedHandlerFunc) http.HandlerFunc +} + +func JustCheck(auth AuthenticatorInterface, wrapped http.HandlerFunc) http.HandlerFunc { + return auth.Wrap(func(w http.ResponseWriter, ar *AuthenticatedRequest) { + ar.Header.Set("X-Authenticated-Username", ar.Username) + wrapped(w, &ar.Request) + }) +} diff --git a/Godeps/_workspace/src/github.com/abbot/go-http-auth/basic.go b/Godeps/_workspace/src/github.com/abbot/go-http-auth/basic.go new file mode 100644 index 00000000000..b705c83e157 --- /dev/null +++ b/Godeps/_workspace/src/github.com/abbot/go-http-auth/basic.go @@ -0,0 +1,88 @@ +package auth + +import ( + "crypto/sha1" + "encoding/base64" + "net/http" + "strings" +) + +type BasicAuth struct { + Realm string + Secrets SecretProvider +} + +/* + Checks the username/password combination from the request. Returns + either an empty string (authentication failed) or the name of the + authenticated user. + + Supports MD5 and SHA1 password entries +*/ +func (a *BasicAuth) CheckAuth(r *http.Request) string { + s := strings.SplitN(r.Header.Get("Authorization"), " ", 2) + if len(s) != 2 || s[0] != "Basic" { + return "" + } + + b, err := base64.StdEncoding.DecodeString(s[1]) + if err != nil { + return "" + } + pair := strings.SplitN(string(b), ":", 2) + if len(pair) != 2 { + return "" + } + passwd := a.Secrets(pair[0], a.Realm) + if passwd == "" { + return "" + } + if strings.HasPrefix(passwd, "{SHA}") { + d := sha1.New() + d.Write([]byte(pair[1])) + if passwd[5:] != base64.StdEncoding.EncodeToString(d.Sum(nil)) { + return "" + } + } else { + e := NewMD5Entry(passwd) + if e == nil { + return "" + } + if passwd != string(MD5Crypt([]byte(pair[1]), e.Salt, e.Magic)) { + return "" + } + } + return pair[0] +} + +/* + http.Handler for BasicAuth which initiates the authentication process + (or requires reauthentication). +*/ +func (a *BasicAuth) RequireAuth(w http.ResponseWriter, r *http.Request) { + w.Header().Set("WWW-Authenticate", `Basic realm="`+a.Realm+`"`) + w.WriteHeader(401) + w.Write([]byte("401 Unauthorized\n")) +} + +/* + BasicAuthenticator returns a function, which wraps an + AuthenticatedHandlerFunc converting it to http.HandlerFunc. This + wrapper function checks the authentication and either sends back + required authentication headers, or calls the wrapped function with + authenticated username in the AuthenticatedRequest. +*/ +func (a *BasicAuth) Wrap(wrapped AuthenticatedHandlerFunc) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if username := a.CheckAuth(r); username == "" { + a.RequireAuth(w, r) + } else { + ar := &AuthenticatedRequest{Request: *r, Username: username} + wrapped(w, ar) + } + } +} + +func NewBasicAuthenticator(realm string, secrets SecretProvider) *BasicAuth { + return &BasicAuth{Realm: realm, Secrets: secrets} +} diff --git a/Godeps/_workspace/src/github.com/abbot/go-http-auth/basic_test.go b/Godeps/_workspace/src/github.com/abbot/go-http-auth/basic_test.go new file mode 100644 index 00000000000..522e00ff15f --- /dev/null +++ b/Godeps/_workspace/src/github.com/abbot/go-http-auth/basic_test.go @@ -0,0 +1,38 @@ +package auth + +import ( + "encoding/base64" + "net/http" + "testing" +) + +func TestAuthBasic(t *testing.T) { + secrets := HtpasswdFileProvider("test.htpasswd") + a := &BasicAuth{Realm: "example.com", Secrets: secrets} + r := &http.Request{} + r.Method = "GET" + if a.CheckAuth(r) != "" { + t.Fatal("CheckAuth passed on empty headers") + } + r.Header = http.Header(make(map[string][]string)) + r.Header.Set("Authorization", "Digest blabla ololo") + if a.CheckAuth(r) != "" { + t.Fatal("CheckAuth passed on bad headers") + } + r.Header.Set("Authorization", "Basic !@#") + if a.CheckAuth(r) != "" { + t.Fatal("CheckAuth passed on bad base64 data") + } + + data := [][]string{ + {"test", "hello"}, + {"test2", "hello2"}, + } + for _, tc := range data { + auth := base64.StdEncoding.EncodeToString([]byte(tc[0] + ":" + tc[1])) + r.Header.Set("Authorization", "Basic "+auth) + if a.CheckAuth(r) != tc[0] { + t.Fatalf("CheckAuth failed for user '%s'", tc[0]) + } + } +} diff --git a/Godeps/_workspace/src/github.com/abbot/go-http-auth/digest.go b/Godeps/_workspace/src/github.com/abbot/go-http-auth/digest.go new file mode 100644 index 00000000000..b3225ee496c --- /dev/null +++ b/Godeps/_workspace/src/github.com/abbot/go-http-auth/digest.go @@ -0,0 +1,226 @@ +package auth + +import ( + "fmt" + "net/http" + "net/url" + "sort" + "strconv" + "strings" + "sync" + "time" +) + +type digest_client struct { + nc uint64 + last_seen int64 +} + +type DigestAuth struct { + Realm string + Opaque string + Secrets SecretProvider + PlainTextSecrets bool + + /* + Approximate size of Client's Cache. When actual number of + tracked client nonces exceeds + ClientCacheSize+ClientCacheTolerance, ClientCacheTolerance*2 + older entries are purged. + */ + ClientCacheSize int + ClientCacheTolerance int + + clients map[string]*digest_client + mutex sync.Mutex +} + +type digest_cache_entry struct { + nonce string + last_seen int64 +} + +type digest_cache []digest_cache_entry + +func (c digest_cache) Less(i, j int) bool { + return c[i].last_seen < c[j].last_seen +} + +func (c digest_cache) Len() int { + return len(c) +} + +func (c digest_cache) Swap(i, j int) { + c[i], c[j] = c[j], c[i] +} + +/* + Remove count oldest entries from DigestAuth.clients +*/ +func (a *DigestAuth) Purge(count int) { + entries := make([]digest_cache_entry, 0, len(a.clients)) + for nonce, client := range a.clients { + entries = append(entries, digest_cache_entry{nonce, client.last_seen}) + } + cache := digest_cache(entries) + sort.Sort(cache) + for _, client := range cache[:count] { + delete(a.clients, client.nonce) + } +} + +/* + http.Handler for DigestAuth which initiates the authentication process + (or requires reauthentication). +*/ +func (a *DigestAuth) RequireAuth(w http.ResponseWriter, r *http.Request) { + if len(a.clients) > a.ClientCacheSize+a.ClientCacheTolerance { + a.Purge(a.ClientCacheTolerance * 2) + } + nonce := RandomKey() + a.clients[nonce] = &digest_client{nc: 0, last_seen: time.Now().UnixNano()} + w.Header().Set("WWW-Authenticate", + fmt.Sprintf(`Digest realm="%s", nonce="%s", opaque="%s", algorithm="MD5", qop="auth"`, + a.Realm, nonce, a.Opaque)) + w.WriteHeader(401) + w.Write([]byte("401 Unauthorized\n")) +} + +/* + Parse Authorization header from the http.Request. Returns a map of + auth parameters or nil if the header is not a valid parsable Digest + auth header. +*/ +func DigestAuthParams(r *http.Request) map[string]string { + s := strings.SplitN(r.Header.Get("Authorization"), " ", 2) + if len(s) != 2 || s[0] != "Digest" { + return nil + } + + result := map[string]string{} + for _, kv := range strings.Split(s[1], ",") { + parts := strings.SplitN(kv, "=", 2) + if len(parts) != 2 { + continue + } + result[strings.Trim(parts[0], "\" ")] = strings.Trim(parts[1], "\" ") + } + return result +} + +/* + Check if request contains valid authentication data. Returns a pair + of username, authinfo where username is the name of the authenticated + user or an empty string and authinfo is the contents for the optional + Authentication-Info response header. +*/ +func (da *DigestAuth) CheckAuth(r *http.Request) (username string, authinfo *string) { + da.mutex.Lock() + defer da.mutex.Unlock() + username = "" + authinfo = nil + auth := DigestAuthParams(r) + if auth == nil || da.Opaque != auth["opaque"] || auth["algorithm"] != "MD5" || auth["qop"] != "auth" { + return + } + + // Check if the requested URI matches auth header + switch u, err := url.Parse(auth["uri"]); { + case err != nil: + return + case r.URL == nil: + return + case len(u.Path) > len(r.URL.Path): + return + case !strings.HasPrefix(r.URL.Path, u.Path): + return + } + + HA1 := da.Secrets(auth["username"], da.Realm) + if da.PlainTextSecrets { + HA1 = H(auth["username"] + ":" + da.Realm + ":" + HA1) + } + HA2 := H(r.Method + ":" + auth["uri"]) + KD := H(strings.Join([]string{HA1, auth["nonce"], auth["nc"], auth["cnonce"], auth["qop"], HA2}, ":")) + + if KD != auth["response"] { + return + } + + // At this point crypto checks are completed and validated. + // Now check if the session is valid. + + nc, err := strconv.ParseUint(auth["nc"], 16, 64) + if err != nil { + return + } + + if client, ok := da.clients[auth["nonce"]]; !ok { + return + } else { + if client.nc != 0 && client.nc >= nc { + return + } + client.nc = nc + client.last_seen = time.Now().UnixNano() + } + + resp_HA2 := H(":" + auth["uri"]) + rspauth := H(strings.Join([]string{HA1, auth["nonce"], auth["nc"], auth["cnonce"], auth["qop"], resp_HA2}, ":")) + + info := fmt.Sprintf(`qop="auth", rspauth="%s", cnonce="%s", nc="%s"`, rspauth, auth["cnonce"], auth["nc"]) + return auth["username"], &info +} + +/* + Default values for ClientCacheSize and ClientCacheTolerance for DigestAuth +*/ +const DefaultClientCacheSize = 1000 +const DefaultClientCacheTolerance = 100 + +/* + Wrap returns an Authenticator which uses HTTP Digest + authentication. Arguments: + + realm: The authentication realm. + + secrets: SecretProvider which must return HA1 digests for the same + realm as above. +*/ +func (a *DigestAuth) Wrap(wrapped AuthenticatedHandlerFunc) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if username, authinfo := a.CheckAuth(r); username == "" { + a.RequireAuth(w, r) + } else { + ar := &AuthenticatedRequest{Request: *r, Username: username} + if authinfo != nil { + w.Header().Set("Authentication-Info", *authinfo) + } + wrapped(w, ar) + } + } +} + +/* + JustCheck returns function which converts an http.HandlerFunc into a + http.HandlerFunc which requires authentication. Username is passed as + an extra X-Authenticated-Username header. +*/ +func (a *DigestAuth) JustCheck(wrapped http.HandlerFunc) http.HandlerFunc { + return a.Wrap(func(w http.ResponseWriter, ar *AuthenticatedRequest) { + ar.Header.Set("X-Authenticated-Username", ar.Username) + wrapped(w, &ar.Request) + }) +} + +func NewDigestAuthenticator(realm string, secrets SecretProvider) *DigestAuth { + da := &DigestAuth{ + Opaque: RandomKey(), + Realm: realm, + Secrets: secrets, + PlainTextSecrets: false, + ClientCacheSize: DefaultClientCacheSize, + ClientCacheTolerance: DefaultClientCacheTolerance, + clients: map[string]*digest_client{}} + return da +} diff --git a/Godeps/_workspace/src/github.com/abbot/go-http-auth/digest_test.go b/Godeps/_workspace/src/github.com/abbot/go-http-auth/digest_test.go new file mode 100644 index 00000000000..b4da0814ae7 --- /dev/null +++ b/Godeps/_workspace/src/github.com/abbot/go-http-auth/digest_test.go @@ -0,0 +1,57 @@ +package auth + +import ( + "net/http" + "net/url" + "testing" + "time" +) + +func TestAuthDigest(t *testing.T) { + secrets := HtdigestFileProvider("test.htdigest") + da := &DigestAuth{Opaque: "U7H+ier3Ae8Skd/g", + Realm: "example.com", + Secrets: secrets, + clients: map[string]*digest_client{}} + r := &http.Request{} + r.Method = "GET" + if u, _ := da.CheckAuth(r); u != "" { + t.Fatal("non-empty auth for empty request header") + } + r.Header = http.Header(make(map[string][]string)) + r.Header.Set("Authorization", "Digest blabla") + if u, _ := da.CheckAuth(r); u != "" { + t.Fatal("non-empty auth for bad request header") + } + r.Header.Set("Authorization", `Digest username="test", realm="example.com", nonce="Vb9BP/h81n3GpTTB", uri="/t2", cnonce="NjE4MTM2", nc=00000001, qop="auth", response="ffc357c4eba74773c8687e0bc724c9a3", opaque="U7H+ier3Ae8Skd/g", algorithm="MD5"`) + if u, _ := da.CheckAuth(r); u != "" { + t.Fatal("non-empty auth for unknown client") + } + + r.URL, _ = url.Parse("/t2") + da.clients["Vb9BP/h81n3GpTTB"] = &digest_client{nc: 0, last_seen: time.Now().UnixNano()} + if u, _ := da.CheckAuth(r); u != "test" { + t.Fatal("empty auth for legitimate client") + } + if u, _ := da.CheckAuth(r); u != "" { + t.Fatal("non-empty auth for outdated nc") + } + + r.URL, _ = url.Parse("/") + da.clients["Vb9BP/h81n3GpTTB"] = &digest_client{nc: 0, last_seen: time.Now().UnixNano()} + if u, _ := da.CheckAuth(r); u != "" { + t.Fatal("non-empty auth for bad request path") + } + + r.URL, _ = url.Parse("/t3") + da.clients["Vb9BP/h81n3GpTTB"] = &digest_client{nc: 0, last_seen: time.Now().UnixNano()} + if u, _ := da.CheckAuth(r); u != "" { + t.Fatal("non-empty auth for bad request path") + } + + da.clients["+RbVXSbIoa1SaJk1"] = &digest_client{nc: 0, last_seen: time.Now().UnixNano()} + r.Header.Set("Authorization", `Digest username="test", realm="example.com", nonce="+RbVXSbIoa1SaJk1", uri="/", cnonce="NjE4NDkw", nc=00000001, qop="auth", response="c08918024d7faaabd5424654c4e3ad1c", opaque="U7H+ier3Ae8Skd/g", algorithm="MD5"`) + if u, _ := da.CheckAuth(r); u != "test" { + t.Fatal("empty auth for valid request in subpath") + } +} diff --git a/Godeps/_workspace/src/github.com/abbot/go-http-auth/examples/basic.go b/Godeps/_workspace/src/github.com/abbot/go-http-auth/examples/basic.go new file mode 100644 index 00000000000..49d3989dafc --- /dev/null +++ b/Godeps/_workspace/src/github.com/abbot/go-http-auth/examples/basic.go @@ -0,0 +1,35 @@ +// +build ignore + +/* + Example application using Basic auth + + Build with: + + go build basic.go +*/ + +package main + +import ( + auth ".." + "fmt" + "net/http" +) + +func Secret(user, realm string) string { + if user == "john" { + // password is "hello" + return "$1$dlPL2MqE$oQmn16q49SqdmhenQuNgs1" + } + return "" +} + +func handle(w http.ResponseWriter, r *auth.AuthenticatedRequest) { + fmt.Fprintf(w, "

Hello, %s!

", r.Username) +} + +func main() { + authenticator := auth.NewBasicAuthenticator("example.com", Secret) + http.HandleFunc("/", authenticator.Wrap(handle)) + http.ListenAndServe(":8080", nil) +} diff --git a/Godeps/_workspace/src/github.com/abbot/go-http-auth/examples/digest.go b/Godeps/_workspace/src/github.com/abbot/go-http-auth/examples/digest.go new file mode 100644 index 00000000000..38598933887 --- /dev/null +++ b/Godeps/_workspace/src/github.com/abbot/go-http-auth/examples/digest.go @@ -0,0 +1,35 @@ +// +build ignore + +/* + Example application using Digest auth + + Build with: + + go build digest.go +*/ + +package main + +import ( + auth ".." + "fmt" + "net/http" +) + +func Secret(user, realm string) string { + if user == "john" { + // password is "hello" + return "b98e16cbc3d01734b264adba7baa3bf9" + } + return "" +} + +func handle(w http.ResponseWriter, r *auth.AuthenticatedRequest) { + fmt.Fprintf(w, "

Hello, %s!

", r.Username) +} + +func main() { + authenticator := auth.NewDigestAuthenticator("example.com", Secret) + http.HandleFunc("/", authenticator.Wrap(handle)) + http.ListenAndServe(":8080", nil) +} diff --git a/Godeps/_workspace/src/github.com/abbot/go-http-auth/examples/wrapped.go b/Godeps/_workspace/src/github.com/abbot/go-http-auth/examples/wrapped.go new file mode 100644 index 00000000000..aa95ec38f27 --- /dev/null +++ b/Godeps/_workspace/src/github.com/abbot/go-http-auth/examples/wrapped.go @@ -0,0 +1,36 @@ +// +build ignore + +/* + Example demonstrating how to wrap an application which is unaware of + authenticated requests with a "pass-through" authentication + + Build with: + + go build wrapped.go +*/ + +package main + +import ( + auth ".." + "fmt" + "net/http" +) + +func Secret(user, realm string) string { + if user == "john" { + // password is "hello" + return "$1$dlPL2MqE$oQmn16q49SqdmhenQuNgs1" + } + return "" +} + +func regular_handler(w http.ResponseWriter, r *http.Request) { + fmt.Fprintf(w, "

This application is unaware of authentication

") +} + +func main() { + authenticator := auth.NewBasicAuthenticator("example.com", Secret) + http.HandleFunc("/", auth.JustCheck(authenticator, regular_handler)) + http.ListenAndServe(":8080", nil) +} diff --git a/Godeps/_workspace/src/github.com/abbot/go-http-auth/md5crypt.go b/Godeps/_workspace/src/github.com/abbot/go-http-auth/md5crypt.go new file mode 100644 index 00000000000..a7a031c414c --- /dev/null +++ b/Godeps/_workspace/src/github.com/abbot/go-http-auth/md5crypt.go @@ -0,0 +1,92 @@ +package auth + +import "crypto/md5" +import "strings" + +const itoa64 = "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" + +var md5_crypt_swaps = [16]int{12, 6, 0, 13, 7, 1, 14, 8, 2, 15, 9, 3, 5, 10, 4, 11} + +type MD5Entry struct { + Magic, Salt, Hash []byte +} + +func NewMD5Entry(e string) *MD5Entry { + parts := strings.SplitN(e, "$", 4) + if len(parts) != 4 { + return nil + } + return &MD5Entry{ + Magic: []byte("$" + parts[1] + "$"), + Salt: []byte(parts[2]), + Hash: []byte(parts[3]), + } +} + +/* + MD5 password crypt implementation +*/ +func MD5Crypt(password, salt, magic []byte) []byte { + d := md5.New() + + d.Write(password) + d.Write(magic) + d.Write(salt) + + d2 := md5.New() + d2.Write(password) + d2.Write(salt) + d2.Write(password) + + for i, mixin := 0, d2.Sum(nil); i < len(password); i++ { + d.Write([]byte{mixin[i%16]}) + } + + for i := len(password); i != 0; i >>= 1 { + if i&1 == 0 { + d.Write([]byte{password[0]}) + } else { + d.Write([]byte{0}) + } + } + + final := d.Sum(nil) + + for i := 0; i < 1000; i++ { + d2 := md5.New() + if i&1 == 0 { + d2.Write(final) + } else { + d2.Write(password) + } + + if i%3 != 0 { + d2.Write(salt) + } + + if i%7 != 0 { + d2.Write(password) + } + + if i&1 == 0 { + d2.Write(password) + } else { + d2.Write(final) + } + final = d2.Sum(nil) + } + + result := make([]byte, 0, 22) + v := uint(0) + bits := uint(0) + for _, i := range md5_crypt_swaps { + v |= (uint(final[i]) << bits) + for bits = bits + 8; bits > 6; bits -= 6 { + result = append(result, itoa64[v&0x3f]) + v >>= 6 + } + } + result = append(result, itoa64[v&0x3f]) + + return append(append(append(magic, salt...), '$'), result...) +} diff --git a/Godeps/_workspace/src/github.com/abbot/go-http-auth/md5crypt_test.go b/Godeps/_workspace/src/github.com/abbot/go-http-auth/md5crypt_test.go new file mode 100644 index 00000000000..65738ecefa4 --- /dev/null +++ b/Godeps/_workspace/src/github.com/abbot/go-http-auth/md5crypt_test.go @@ -0,0 +1,18 @@ +package auth + +import "testing" + +func Test_MD5Crypt(t *testing.T) { + test_cases := [][]string{ + {"apache", "$apr1$J.w5a/..$IW9y6DR0oO/ADuhlMF5/X1"}, + {"pass", "$1$YeNsbWdH$wvOF8JdqsoiLix754LTW90"}, + } + for _, tc := range test_cases { + e := NewMD5Entry(tc[1]) + result := MD5Crypt([]byte(tc[0]), e.Salt, e.Magic) + if string(result) != tc[1] { + t.Fatalf("MD5Crypt returned '%s' instead of '%s'", string(result), tc[1]) + } + t.Logf("MD5Crypt: '%s' (%s%s$) -> %s", tc[0], e.Magic, e.Salt, result) + } +} diff --git a/Godeps/_workspace/src/github.com/abbot/go-http-auth/misc.go b/Godeps/_workspace/src/github.com/abbot/go-http-auth/misc.go new file mode 100644 index 00000000000..277a6859de3 --- /dev/null +++ b/Godeps/_workspace/src/github.com/abbot/go-http-auth/misc.go @@ -0,0 +1,30 @@ +package auth + +import "encoding/base64" +import "crypto/md5" +import "crypto/rand" +import "fmt" + +/* + Return a random 16-byte base64 alphabet string +*/ +func RandomKey() string { + k := make([]byte, 12) + for bytes := 0; bytes < len(k); { + n, err := rand.Read(k[bytes:]) + if err != nil { + panic("rand.Read() failed") + } + bytes += n + } + return base64.StdEncoding.EncodeToString(k) +} + +/* + H function for MD5 algorithm (returns a lower-case hex MD5 digest) +*/ +func H(data string) string { + digest := md5.New() + digest.Write([]byte(data)) + return fmt.Sprintf("%x", digest.Sum(nil)) +} diff --git a/Godeps/_workspace/src/github.com/abbot/go-http-auth/misc_test.go b/Godeps/_workspace/src/github.com/abbot/go-http-auth/misc_test.go new file mode 100644 index 00000000000..089524c7c0d --- /dev/null +++ b/Godeps/_workspace/src/github.com/abbot/go-http-auth/misc_test.go @@ -0,0 +1,12 @@ +package auth + +import "testing" + +func TestH(t *testing.T) { + const hello = "Hello, world!" + const hello_md5 = "6cd3556deb0da54bca060b4c39479839" + h := H(hello) + if h != hello_md5 { + t.Fatal("Incorrect digest for test string:", h, "instead of", hello_md5) + } +} diff --git a/Godeps/_workspace/src/github.com/abbot/go-http-auth/test.htdigest b/Godeps/_workspace/src/github.com/abbot/go-http-auth/test.htdigest new file mode 100644 index 00000000000..6c8c75b4e0d --- /dev/null +++ b/Godeps/_workspace/src/github.com/abbot/go-http-auth/test.htdigest @@ -0,0 +1 @@ +test:example.com:aa78524fceb0e50fd8ca96dd818b8cf9 diff --git a/Godeps/_workspace/src/github.com/abbot/go-http-auth/test.htpasswd b/Godeps/_workspace/src/github.com/abbot/go-http-auth/test.htpasswd new file mode 100644 index 00000000000..7b069898adc --- /dev/null +++ b/Godeps/_workspace/src/github.com/abbot/go-http-auth/test.htpasswd @@ -0,0 +1,2 @@ +test:{SHA}qvTGHdzF6KLavt4PO0gs2a6pQ00= +test2:$apr1$a0j62R97$mYqFkloXH0/UOaUnAiV2b0 diff --git a/Godeps/_workspace/src/github.com/abbot/go-http-auth/users.go b/Godeps/_workspace/src/github.com/abbot/go-http-auth/users.go new file mode 100644 index 00000000000..5e7d0b8d8fd --- /dev/null +++ b/Godeps/_workspace/src/github.com/abbot/go-http-auth/users.go @@ -0,0 +1,136 @@ +package auth + +import "encoding/csv" +import "os" + +/* + SecretProvider is used by authenticators. Takes user name and realm + as an argument, returns secret required for authentication (HA1 for + digest authentication, properly encrypted password for basic). +*/ +type SecretProvider func(user, realm string) string + +/* + Common functions for file auto-reloading +*/ +type File struct { + Path string + Info os.FileInfo + /* must be set in inherited types during initialization */ + Reload func() +} + +func (f *File) ReloadIfNeeded() { + info, err := os.Stat(f.Path) + if err != nil { + panic(err) + } + if f.Info == nil || f.Info.ModTime() != info.ModTime() { + f.Info = info + f.Reload() + } +} + +/* + Structure used for htdigest file authentication. Users map realms to + maps of users to their HA1 digests. +*/ +type HtdigestFile struct { + File + Users map[string]map[string]string +} + +func reload_htdigest(hf *HtdigestFile) { + r, err := os.Open(hf.Path) + if err != nil { + panic(err) + } + csv_reader := csv.NewReader(r) + csv_reader.Comma = ':' + csv_reader.Comment = '#' + csv_reader.TrimLeadingSpace = true + + records, err := csv_reader.ReadAll() + if err != nil { + panic(err) + } + + hf.Users = make(map[string]map[string]string) + for _, record := range records { + _, exists := hf.Users[record[1]] + if !exists { + hf.Users[record[1]] = make(map[string]string) + } + hf.Users[record[1]][record[0]] = record[2] + } +} + +/* + SecretProvider implementation based on htdigest-formated files. Will + reload htdigest file on changes. Will panic on syntax errors in + htdigest files. +*/ +func HtdigestFileProvider(filename string) SecretProvider { + hf := &HtdigestFile{File: File{Path: filename}} + hf.Reload = func() { reload_htdigest(hf) } + return func(user, realm string) string { + hf.ReloadIfNeeded() + _, exists := hf.Users[realm] + if !exists { + return "" + } + digest, exists := hf.Users[realm][user] + if !exists { + return "" + } + return digest + } +} + +/* + Structure used for htdigest file authentication. Users map users to + their salted encrypted password +*/ +type HtpasswdFile struct { + File + Users map[string]string +} + +func reload_htpasswd(h *HtpasswdFile) { + r, err := os.Open(h.Path) + if err != nil { + panic(err) + } + csv_reader := csv.NewReader(r) + csv_reader.Comma = ':' + csv_reader.Comment = '#' + csv_reader.TrimLeadingSpace = true + + records, err := csv_reader.ReadAll() + if err != nil { + panic(err) + } + + h.Users = make(map[string]string) + for _, record := range records { + h.Users[record[0]] = record[1] + } +} + +/* + SecretProvider implementation based on htpasswd-formated files. Will + reload htpasswd file on changes. Will panic on syntax errors in + htpasswd files. Realm argument of the SecretProvider is ignored. +*/ +func HtpasswdFileProvider(filename string) SecretProvider { + h := &HtpasswdFile{File: File{Path: filename}} + h.Reload = func() { reload_htpasswd(h) } + return func(user, realm string) string { + h.ReloadIfNeeded() + password, exists := h.Users[user] + if !exists { + return "" + } + return password + } +} diff --git a/Godeps/_workspace/src/github.com/abbot/go-http-auth/users_test.go b/Godeps/_workspace/src/github.com/abbot/go-http-auth/users_test.go new file mode 100644 index 00000000000..4fbe8875103 --- /dev/null +++ b/Godeps/_workspace/src/github.com/abbot/go-http-auth/users_test.go @@ -0,0 +1,33 @@ +package auth + +import ( + "testing" +) + +func TestHtdigestFile(t *testing.T) { + secrets := HtdigestFileProvider("test.htdigest") + digest := secrets("test", "example.com") + if digest != "aa78524fceb0e50fd8ca96dd818b8cf9" { + t.Fatal("Incorrect digest for test user:", digest) + } + digest = secrets("test", "example1.com") + if digest != "" { + t.Fatal("Got digest for user in non-existant realm:", digest) + } + digest = secrets("test1", "example.com") + if digest != "" { + t.Fatal("Got digest for non-existant user:", digest) + } +} + +func TestHtpasswdFile(t *testing.T) { + secrets := HtpasswdFileProvider("test.htpasswd") + passwd := secrets("test", "blah") + if passwd != "{SHA}qvTGHdzF6KLavt4PO0gs2a6pQ00=" { + t.Fatal("Incorrect passwd for test user:", passwd) + } + passwd = secrets("test3", "blah") + if passwd != "" { + t.Fatal("Got passwd for non-existant user:", passwd) + } +} diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/api/handler.go b/Godeps/_workspace/src/github.com/google/cadvisor/api/handler.go new file mode 100644 index 00000000000..30ed51f3065 --- /dev/null +++ b/Godeps/_workspace/src/github.com/google/cadvisor/api/handler.go @@ -0,0 +1,251 @@ +// Copyright 2014 Google Inc. 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. + +// Package api provides a handler for /api/ +package api + +import ( + "encoding/json" + "errors" + "fmt" + "io" + "net/http" + "path" + "regexp" + "sort" + "strconv" + "strings" + "time" + + "github.com/golang/glog" + "github.com/google/cadvisor/events" + httpMux "github.com/google/cadvisor/http/mux" + info "github.com/google/cadvisor/info/v1" + "github.com/google/cadvisor/manager" +) + +const ( + apiResource = "/api/" +) + +func RegisterHandlers(mux httpMux.Mux, m manager.Manager) error { + apiVersions := getApiVersions() + supportedApiVersions := make(map[string]ApiVersion, len(apiVersions)) + for _, v := range apiVersions { + supportedApiVersions[v.Version()] = v + } + + mux.HandleFunc(apiResource, func(w http.ResponseWriter, r *http.Request) { + err := handleRequest(supportedApiVersions, m, w, r) + if err != nil { + http.Error(w, err.Error(), 500) + } + }) + return nil +} + +// Captures the API version, requestType [optional], and remaining request [optional]. +var apiRegexp = regexp.MustCompile("/api/([^/]+)/?([^/]+)?(.*)") + +const ( + apiVersion = iota + 1 + apiRequestType + apiRequestArgs +) + +func handleRequest(supportedApiVersions map[string]ApiVersion, m manager.Manager, w http.ResponseWriter, r *http.Request) error { + start := time.Now() + defer func() { + glog.V(2).Infof("Request took %s", time.Since(start)) + }() + + request := r.URL.Path + + const apiPrefix = "/api" + if !strings.HasPrefix(request, apiPrefix) { + return fmt.Errorf("incomplete API request %q", request) + } + + // If the request doesn't have an API version, list those. + if request == apiPrefix || request == apiResource { + versions := make([]string, 0, len(supportedApiVersions)) + for v := range supportedApiVersions { + versions = append(versions, v) + } + sort.Strings(versions) + fmt.Fprintf(w, "Supported API versions: %s", strings.Join(versions, ",")) + return nil + } + + // Verify that we have all the elements we expect: + // //[/] + requestElements := apiRegexp.FindStringSubmatch(request) + if len(requestElements) == 0 { + return fmt.Errorf("malformed request %q", request) + } + version := requestElements[apiVersion] + requestType := requestElements[apiRequestType] + requestArgs := strings.Split(requestElements[apiRequestArgs], "/") + + // Check supported versions. + versionHandler, ok := supportedApiVersions[version] + if !ok { + return fmt.Errorf("unsupported API version %q", version) + } + + // If no request type, list possible request types. + if requestType == "" { + requestTypes := versionHandler.SupportedRequestTypes() + sort.Strings(requestTypes) + fmt.Fprintf(w, "Supported request types: %q", strings.Join(requestTypes, ",")) + return nil + } + + // Trim the first empty element from the request. + if len(requestArgs) > 0 && requestArgs[0] == "" { + requestArgs = requestArgs[1:] + } + + return versionHandler.HandleRequest(requestType, requestArgs, m, w, r) + +} + +func writeResult(res interface{}, w http.ResponseWriter) error { + out, err := json.Marshal(res) + if err != nil { + return fmt.Errorf("failed to marshall response %+v with error: %s", res, err) + } + + w.Header().Set("Content-Type", "application/json") + w.Write(out) + return nil + +} + +func streamResults(results chan *events.Event, w http.ResponseWriter, r *http.Request) error { + cn, ok := w.(http.CloseNotifier) + if !ok { + return errors.New("could not access http.CloseNotifier") + } + flusher, ok := w.(http.Flusher) + if !ok { + return errors.New("could not access http.Flusher") + } + + w.Header().Set("Transfer-Encoding", "chunked") + w.WriteHeader(http.StatusOK) + flusher.Flush() + + enc := json.NewEncoder(w) + for { + select { + case <-cn.CloseNotify(): + glog.Infof("Client stopped listening") + return nil + case ev := <-results: + err := enc.Encode(ev) + if err != nil { + glog.Errorf("error encoding message %+v for result stream: %v", ev, err) + } + flusher.Flush() + } + } +} + +func getContainerInfoRequest(body io.ReadCloser) (*info.ContainerInfoRequest, error) { + var query info.ContainerInfoRequest + + // Default stats and samples is 64. + query.NumStats = 64 + + decoder := json.NewDecoder(body) + err := decoder.Decode(&query) + if err != nil && err != io.EOF { + return nil, fmt.Errorf("unable to decode the json value: %s", err) + } + + return &query, nil +} + +// The user can set any or none of the following arguments in any order +// with any twice defined arguments being assigned the first value. +// If the value type for the argument is wrong the field will be assumed to be +// unassigned +// bools: historical, subcontainers, oom_events, creation_events, deletion_events +// ints: max_events, start_time (unix timestamp), end_time (unix timestamp) +// example r.URL: http://localhost:8080/api/v1.3/events?oom_events=true&historical=true&max_events=10 +func getEventRequest(r *http.Request) (*events.Request, bool, error) { + query := events.NewRequest() + getHistoricalEvents := false + + urlMap := r.URL.Query() + + if val, ok := urlMap["historical"]; ok { + newBool, err := strconv.ParseBool(val[0]) + if err == nil { + getHistoricalEvents = newBool + } + } + if val, ok := urlMap["subcontainers"]; ok { + newBool, err := strconv.ParseBool(val[0]) + if err == nil { + query.IncludeSubcontainers = newBool + } + } + if val, ok := urlMap["oom_events"]; ok { + newBool, err := strconv.ParseBool(val[0]) + if err == nil { + query.EventType[events.TypeOom] = newBool + } + } + if val, ok := urlMap["creation_events"]; ok { + newBool, err := strconv.ParseBool(val[0]) + if err == nil { + query.EventType[events.TypeContainerCreation] = newBool + } + } + if val, ok := urlMap["deletion_events"]; ok { + newBool, err := strconv.ParseBool(val[0]) + if err == nil { + query.EventType[events.TypeContainerDeletion] = newBool + } + } + if val, ok := urlMap["max_events"]; ok { + newInt, err := strconv.Atoi(val[0]) + if err == nil { + query.MaxEventsReturned = int(newInt) + } + } + if val, ok := urlMap["start_time"]; ok { + newTime, err := time.Parse(time.RFC3339, val[0]) + if err == nil { + query.StartTime = newTime + } + } + if val, ok := urlMap["end_time"]; ok { + newTime, err := time.Parse(time.RFC3339, val[0]) + if err == nil { + query.EndTime = newTime + } + } + + glog.V(2).Infof( + "%v was returned in api/handler.go:getEventRequest from the url rawQuery %v", + query, r.URL.RawQuery) + return query, getHistoricalEvents, nil +} + +func getContainerName(request []string) string { + return path.Join("/", strings.Join(request, "/")) +} diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/api/versions.go b/Godeps/_workspace/src/github.com/google/cadvisor/api/versions.go new file mode 100644 index 00000000000..1553ddf979d --- /dev/null +++ b/Godeps/_workspace/src/github.com/google/cadvisor/api/versions.go @@ -0,0 +1,348 @@ +// Copyright 2015 Google Inc. 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. + +package api + +import ( + "fmt" + "net/http" + + "github.com/golang/glog" + "github.com/google/cadvisor/events" + info "github.com/google/cadvisor/info/v1" + "github.com/google/cadvisor/info/v2" + "github.com/google/cadvisor/manager" +) + +const ( + containersApi = "containers" + subcontainersApi = "subcontainers" + machineApi = "machine" + dockerApi = "docker" + summaryApi = "summary" + specApi = "spec" + eventsApi = "events" +) + +// Interface for a cAdvisor API version +type ApiVersion interface { + // Returns the version string. + Version() string + + // List of supported API endpoints. + SupportedRequestTypes() []string + + // Handles a request. The second argument is the parameters after /api// + HandleRequest(requestType string, request []string, m manager.Manager, w http.ResponseWriter, r *http.Request) error +} + +// Gets all supported API versions. +func getApiVersions() []ApiVersion { + v1_0 := &version1_0{} + v1_1 := newVersion1_1(v1_0) + v1_2 := newVersion1_2(v1_1) + v1_3 := newVersion1_3(v1_2) + v2_0 := newVersion2_0(v1_3) + + return []ApiVersion{v1_0, v1_1, v1_2, v1_3, v2_0} + +} + +// API v1.0 + +type version1_0 struct { +} + +func (self *version1_0) Version() string { + return "v1.0" +} + +func (self *version1_0) SupportedRequestTypes() []string { + return []string{containersApi, machineApi} +} + +func (self *version1_0) HandleRequest(requestType string, request []string, m manager.Manager, w http.ResponseWriter, r *http.Request) error { + switch requestType { + case machineApi: + glog.V(2).Infof("Api - Machine") + + // Get the MachineInfo + machineInfo, err := m.GetMachineInfo() + if err != nil { + return err + } + + err = writeResult(machineInfo, w) + if err != nil { + return err + } + case containersApi: + containerName := getContainerName(request) + glog.V(2).Infof("Api - Container(%s)", containerName) + + // Get the query request. + query, err := getContainerInfoRequest(r.Body) + if err != nil { + return err + } + + // Get the container. + cont, err := m.GetContainerInfo(containerName, query) + if err != nil { + return fmt.Errorf("failed to get container %q with error: %s", containerName, err) + } + + // Only output the container as JSON. + err = writeResult(cont, w) + if err != nil { + return err + } + default: + return fmt.Errorf("unknown request type %q", requestType) + } + return nil +} + +// API v1.1 + +type version1_1 struct { + baseVersion *version1_0 +} + +// v1.1 builds on v1.0. +func newVersion1_1(v *version1_0) *version1_1 { + return &version1_1{ + baseVersion: v, + } +} + +func (self *version1_1) Version() string { + return "v1.1" +} + +func (self *version1_1) SupportedRequestTypes() []string { + return append(self.baseVersion.SupportedRequestTypes(), subcontainersApi) +} + +func (self *version1_1) HandleRequest(requestType string, request []string, m manager.Manager, w http.ResponseWriter, r *http.Request) error { + switch requestType { + case subcontainersApi: + containerName := getContainerName(request) + glog.V(2).Infof("Api - Subcontainers(%s)", containerName) + + // Get the query request. + query, err := getContainerInfoRequest(r.Body) + if err != nil { + return err + } + + // Get the subcontainers. + containers, err := m.SubcontainersInfo(containerName, query) + if err != nil { + return fmt.Errorf("failed to get subcontainers for container %q with error: %s", containerName, err) + } + + // Only output the containers as JSON. + err = writeResult(containers, w) + if err != nil { + return err + } + return nil + default: + return self.baseVersion.HandleRequest(requestType, request, m, w, r) + } +} + +// API v1.2 + +type version1_2 struct { + baseVersion *version1_1 +} + +// v1.2 builds on v1.1. +func newVersion1_2(v *version1_1) *version1_2 { + return &version1_2{ + baseVersion: v, + } +} + +func (self *version1_2) Version() string { + return "v1.2" +} + +func (self *version1_2) SupportedRequestTypes() []string { + return append(self.baseVersion.SupportedRequestTypes(), dockerApi) +} + +func (self *version1_2) HandleRequest(requestType string, request []string, m manager.Manager, w http.ResponseWriter, r *http.Request) error { + switch requestType { + case dockerApi: + glog.V(2).Infof("Api - Docker(%v)", request) + + // Get the query request. + query, err := getContainerInfoRequest(r.Body) + if err != nil { + return err + } + + var containers map[string]info.ContainerInfo + // map requests for "docker/" to "docker" + if len(request) == 1 && len(request[0]) == 0 { + request = request[:0] + } + switch len(request) { + case 0: + // Get all Docker containers. + containers, err = m.AllDockerContainers(query) + if err != nil { + return fmt.Errorf("failed to get all Docker containers with error: %v", err) + } + case 1: + // Get one Docker container. + var cont info.ContainerInfo + cont, err = m.DockerContainer(request[0], query) + if err != nil { + return fmt.Errorf("failed to get Docker container %q with error: %v", request[0], err) + } + containers = map[string]info.ContainerInfo{ + cont.Name: cont, + } + default: + return fmt.Errorf("unknown request for Docker container %v", request) + } + + // Only output the containers as JSON. + err = writeResult(containers, w) + if err != nil { + return err + } + return nil + default: + return self.baseVersion.HandleRequest(requestType, request, m, w, r) + } +} + +// API v1.3 + +type version1_3 struct { + baseVersion *version1_2 +} + +// v1.3 builds on v1.2. +func newVersion1_3(v *version1_2) *version1_3 { + return &version1_3{ + baseVersion: v, + } +} + +func (self *version1_3) Version() string { + return "v1.3" +} + +func (self *version1_3) SupportedRequestTypes() []string { + return append(self.baseVersion.SupportedRequestTypes(), eventsApi) +} + +func (self *version1_3) HandleRequest(requestType string, request []string, m manager.Manager, w http.ResponseWriter, r *http.Request) error { + switch requestType { + case eventsApi: + query, eventsFromAllTime, err := getEventRequest(r) + if err != nil { + return err + } + glog.V(2).Infof("Api - Events(%v)", query) + if eventsFromAllTime { + pastEvents, err := m.GetPastEvents(query) + if err != nil { + return err + } + return writeResult(pastEvents, w) + } + eventsChannel := make(chan *events.Event, 10) + err = m.WatchForEvents(query, eventsChannel) + if err != nil { + return err + } + return streamResults(eventsChannel, w, r) + default: + return self.baseVersion.HandleRequest(requestType, request, m, w, r) + } +} + +// API v2.0 + +// v2.0 builds on v1.3 +type version2_0 struct { + baseVersion *version1_3 +} + +func newVersion2_0(v *version1_3) *version2_0 { + return &version2_0{ + baseVersion: v, + } +} + +func (self *version2_0) Version() string { + return "v2.0" +} + +func (self *version2_0) SupportedRequestTypes() []string { + return append(self.baseVersion.SupportedRequestTypes(), summaryApi) +} + +func (self *version2_0) HandleRequest(requestType string, request []string, m manager.Manager, w http.ResponseWriter, r *http.Request) error { + switch requestType { + case summaryApi: + containerName := getContainerName(request) + glog.V(2).Infof("Api - Summary(%v)", containerName) + + stats, err := m.GetContainerDerivedStats(containerName) + if err != nil { + return err + } + + return writeResult(stats, w) + case specApi: + containerName := getContainerName(request) + glog.V(2).Infof("Api - Spec(%v)", containerName) + spec, err := m.GetContainerSpec(containerName) + if err != nil { + return err + } + specV2 := convertSpec(spec) + return writeResult(specV2, w) + default: + return self.baseVersion.HandleRequest(requestType, request, m, w, r) + } +} + +// Convert container spec from v1 to v2. +func convertSpec(specV1 info.ContainerSpec) v2.ContainerSpec { + specV2 := v2.ContainerSpec{ + CreationTime: specV1.CreationTime, + HasCpu: specV1.HasCpu, + HasMemory: specV1.HasMemory, + } + if specV1.HasCpu { + specV2.Cpu.Limit = specV1.Cpu.Limit + specV2.Cpu.MaxLimit = specV1.Cpu.MaxLimit + specV2.Cpu.Mask = specV1.Cpu.Mask + } + if specV1.HasMemory { + specV2.Memory.Limit = specV1.Memory.Limit + specV2.Memory.Reservation = specV1.Memory.Reservation + specV2.Memory.SwapLimit = specV1.Memory.SwapLimit + } + return specV2 +} diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/api/versions_test.go b/Godeps/_workspace/src/github.com/google/cadvisor/api/versions_test.go new file mode 100644 index 00000000000..26709827acb --- /dev/null +++ b/Godeps/_workspace/src/github.com/google/cadvisor/api/versions_test.go @@ -0,0 +1,81 @@ +// Copyright 2015 Google Inc. 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. + +package api + +import ( + "io" + "net/http" + "reflect" + "testing" + + "github.com/google/cadvisor/events" + "github.com/stretchr/testify/assert" +) + +// returns an http.Request pointer for an input url test string +func makeHTTPRequest(requestURL string, t *testing.T) *http.Request { + dummyReader, _ := io.Pipe() + r, err := http.NewRequest("GET", requestURL, dummyReader) + assert.Nil(t, err) + return r +} + +func TestGetEventRequestBasicRequest(t *testing.T) { + r := makeHTTPRequest("http://localhost:8080/api/v1.3/events?oom_events=true&historical=true&max_events=10", t) + expectedQuery := &events.Request{ + EventType: map[events.EventType]bool{ + events.TypeOom: true, + }, + MaxEventsReturned: 10, + } + + receivedQuery, getHistoricalEvents, err := getEventRequest(r) + + if !reflect.DeepEqual(expectedQuery, receivedQuery) { + t.Errorf("expected %v but received %v", expectedQuery, receivedQuery) + } + assert.True(t, getHistoricalEvents) + assert.Nil(t, err) +} + +func TestGetEventEmptyRequest(t *testing.T) { + r := makeHTTPRequest("", t) + expectedQuery := events.NewRequest() + + receivedQuery, getHistoricalEvents, err := getEventRequest(r) + + if !reflect.DeepEqual(expectedQuery, receivedQuery) { + t.Errorf("expected %v but received %v", expectedQuery, receivedQuery) + } + assert.False(t, getHistoricalEvents) + assert.Nil(t, err) +} + +func TestGetEventRequestDoubleArgument(t *testing.T) { + r := makeHTTPRequest("http://localhost:8080/api/v1.3/events?historical=true&oom_events=true&oom_events=false", t) + expectedQuery := &events.Request{ + EventType: map[events.EventType]bool{ + events.TypeOom: true, + }, + } + + receivedQuery, getHistoricalEvents, err := getEventRequest(r) + + if !reflect.DeepEqual(expectedQuery, receivedQuery) { + t.Errorf("expected %v but received %v", expectedQuery, receivedQuery) + } + assert.True(t, getHistoricalEvents) + assert.Nil(t, err) +} diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/healthz/healthz.go b/Godeps/_workspace/src/github.com/google/cadvisor/healthz/healthz.go new file mode 100644 index 00000000000..ea61d865c31 --- /dev/null +++ b/Godeps/_workspace/src/github.com/google/cadvisor/healthz/healthz.go @@ -0,0 +1,32 @@ +// Copyright 2014 Google Inc. 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. + +package healthz + +import ( + "net/http" + + httpMux "github.com/google/cadvisor/http/mux" +) + +func handleHealthz(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(http.StatusOK) + w.Write([]byte("ok")) +} + +// Register simple HTTP /healthz handler to return "ok". +func RegisterHandler(mux httpMux.Mux) error { + mux.HandleFunc("/healthz", handleHealthz) + return nil +} diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/http/handlers.go b/Godeps/_workspace/src/github.com/google/cadvisor/http/handlers.go new file mode 100644 index 00000000000..53d862d8d18 --- /dev/null +++ b/Godeps/_workspace/src/github.com/google/cadvisor/http/handlers.go @@ -0,0 +1,101 @@ +// Copyright 2015 Google Inc. 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. + +package http + +import ( + "fmt" + "net/http" + + auth "github.com/abbot/go-http-auth" + "github.com/golang/glog" + "github.com/google/cadvisor/api" + "github.com/google/cadvisor/healthz" + httpMux "github.com/google/cadvisor/http/mux" + "github.com/google/cadvisor/manager" + "github.com/google/cadvisor/pages" + "github.com/google/cadvisor/pages/static" + "github.com/google/cadvisor/validate" +) + +func RegisterHandlers(mux httpMux.Mux, containerManager manager.Manager, httpAuthFile, httpAuthRealm, httpDigestFile, httpDigestRealm string) error { + // Basic health handler. + if err := healthz.RegisterHandler(mux); err != nil { + return fmt.Errorf("failed to register healthz handler: %s", err) + } + + // Validation/Debug handler. + mux.HandleFunc(validate.ValidatePage, func(w http.ResponseWriter, r *http.Request) { + err := validate.HandleRequest(w, containerManager) + if err != nil { + fmt.Fprintf(w, "%s", err) + } + }) + + // Register API handler. + if err := api.RegisterHandlers(mux, containerManager); err != nil { + return fmt.Errorf("failed to register API handlers: %s", err) + } + + // Redirect / to containers page. + mux.Handle("/", http.RedirectHandler(pages.ContainersPage, http.StatusTemporaryRedirect)) + + var authenticated bool = false + + // Setup the authenticator object + if httpAuthFile != "" { + glog.Infof("Using auth file %s", httpAuthFile) + secrets := auth.HtpasswdFileProvider(httpAuthFile) + authenticator := auth.NewBasicAuthenticator(httpAuthRealm, secrets) + mux.HandleFunc(static.StaticResource, authenticator.Wrap(staticHandler)) + if err := pages.RegisterHandlersBasic(mux, containerManager, authenticator); err != nil { + return fmt.Errorf("failed to register pages auth handlers: %s", err) + } + authenticated = true + } + if httpAuthFile == "" && httpDigestFile != "" { + glog.Infof("Using digest file %s", httpDigestFile) + secrets := auth.HtdigestFileProvider(httpDigestFile) + authenticator := auth.NewDigestAuthenticator(httpDigestRealm, secrets) + mux.HandleFunc(static.StaticResource, authenticator.Wrap(staticHandler)) + if err := pages.RegisterHandlersDigest(mux, containerManager, authenticator); err != nil { + fmt.Errorf("failed to register pages digest handlers: %s", err) + } + authenticated = true + } + + // Change handler based on authenticator initalization + if !authenticated { + mux.HandleFunc(static.StaticResource, staticHandlerNoAuth) + if err := pages.RegisterHandlersBasic(mux, containerManager, nil); err != nil { + return fmt.Errorf("failed to register pages handlers: %s", err) + } + } + + return nil +} + +func staticHandlerNoAuth(w http.ResponseWriter, r *http.Request) { + err := static.HandleRequest(w, r.URL) + if err != nil { + fmt.Fprintf(w, "%s", err) + } +} + +func staticHandler(w http.ResponseWriter, r *auth.AuthenticatedRequest) { + err := static.HandleRequest(w, r.URL) + if err != nil { + fmt.Fprintf(w, "%s", err) + } +} diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/http/mux/mux.go b/Godeps/_workspace/src/github.com/google/cadvisor/http/mux/mux.go new file mode 100644 index 00000000000..791580b4787 --- /dev/null +++ b/Godeps/_workspace/src/github.com/google/cadvisor/http/mux/mux.go @@ -0,0 +1,26 @@ +// Copyright 2015 Google Inc. 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. + +package mux + +import ( + "net/http" +) + +// Mux interface expected by cAdvisor components. +type Mux interface { + HandleFunc(pattern string, handler func(http.ResponseWriter, *http.Request)) + Handler(r *http.Request) (http.Handler, string) + Handle(pattern string, handler http.Handler) +} diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/manager/manager.go b/Godeps/_workspace/src/github.com/google/cadvisor/manager/manager.go index b7edeed9532..6b7006d922f 100644 --- a/Godeps/_workspace/src/github.com/google/cadvisor/manager/manager.go +++ b/Godeps/_workspace/src/github.com/google/cadvisor/manager/manager.go @@ -127,7 +127,7 @@ func New(memoryStorage *memory.InMemoryStorage, sysfs sysfs.SysFs) (Manager, err // Register the raw driver. err = raw.Register(newManager) if err != nil { - return nil, fmt.Errorf("registration of the raw container factory failed: %v", err) + glog.Errorf("Registration of the raw container factory failed: %v", err) } return newManager, nil diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/pages/containers.go b/Godeps/_workspace/src/github.com/google/cadvisor/pages/containers.go new file mode 100644 index 00000000000..6f7efaaafb1 --- /dev/null +++ b/Godeps/_workspace/src/github.com/google/cadvisor/pages/containers.go @@ -0,0 +1,247 @@ +// Copyright 2014 Google Inc. 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. + +// Page for /containers/ +package pages + +import ( + "fmt" + "html/template" + "math" + "net/http" + "net/url" + "path" + "strconv" + "strings" + "time" + + "github.com/golang/glog" + info "github.com/google/cadvisor/info/v1" + "github.com/google/cadvisor/manager" +) + +const ContainersPage = "/containers/" + +// from http://golang.org/doc/effective_go.html#constants +type ByteSize float64 + +const ( + _ = iota + // KB - kilobyte + KB ByteSize = 1 << (10 * iota) + // MB - megabyte + MB + // GB - gigabyte + GB + // TB - terabyte + TB + // PB - petabyte + PB + // EB - exabyte + EB + // ZB - zettabyte + ZB + // YB - yottabyte + YB +) + +func (b ByteSize) Size() string { + for _, i := range [...]ByteSize{YB, ZB, EB, PB, TB, GB, MB, KB} { + if b >= i { + return fmt.Sprintf("%.2f", b/i) + } + } + return fmt.Sprintf("%.2f", b) +} + +func (b ByteSize) Unit() string { + switch { + case b >= YB: + return "YB" + case b >= ZB: + return "ZB" + case b >= EB: + return "EB" + case b >= PB: + return "PB" + case b >= TB: + return "TB" + case b >= GB: + return "GB" + case b >= MB: + return "MB" + case b >= KB: + return "KB" + } + return "B" +} + +var funcMap = template.FuncMap{ + "printMask": printMask, + "printCores": printCores, + "printShares": printShares, + "printSize": printSize, + "printUnit": printUnit, +} + +func printMask(mask string, numCores int) interface{} { + masks := make([]string, numCores) + activeCores := getActiveCores(mask) + for i := 0; i < numCores; i++ { + coreClass := "inactive-cpu" + if activeCores[i] { + coreClass = "active-cpu" + } + masks[i] = fmt.Sprintf("%d", coreClass, i) + } + return template.HTML(strings.Join(masks, " ")) +} + +func getActiveCores(mask string) map[int]bool { + activeCores := make(map[int]bool) + for _, corebits := range strings.Split(mask, ",") { + cores := strings.Split(corebits, "-") + if len(cores) == 1 { + index, err := strconv.Atoi(cores[0]) + if err != nil { + // Ignore malformed strings. + continue + } + activeCores[index] = true + } else if len(cores) == 2 { + start, err := strconv.Atoi(cores[0]) + if err != nil { + continue + } + end, err := strconv.Atoi(cores[1]) + if err != nil { + continue + } + for i := start; i <= end; i++ { + activeCores[i] = true + } + } + } + return activeCores +} + +func printCores(millicores *uint64) string { + cores := float64(*millicores) / 1000 + return strconv.FormatFloat(cores, 'f', 3, 64) +} + +func printShares(shares *uint64) string { + return fmt.Sprintf("%d", *shares) +} + +func toMegabytes(bytes uint64) float64 { + return float64(bytes) / (1 << 20) +} + +func printSize(bytes uint64) string { + if bytes >= math.MaxInt64 { + return "unlimited" + } + return ByteSize(bytes).Size() +} + +func printUnit(bytes uint64) string { + if bytes >= math.MaxInt64 { + return "" + } + return ByteSize(bytes).Unit() +} + +func toMemoryPercent(usage uint64, spec *info.ContainerSpec, machine *info.MachineInfo) int { + // Saturate limit to the machine size. + limit := uint64(spec.Memory.Limit) + if limit > uint64(machine.MemoryCapacity) { + limit = uint64(machine.MemoryCapacity) + } + + return int((usage * 100) / limit) +} + +func serveContainersPage(m manager.Manager, w http.ResponseWriter, u *url.URL) error { + start := time.Now() + + // The container name is the path after the handler + containerName := u.Path[len(ContainersPage)-1:] + + // Get the container. + reqParams := info.ContainerInfoRequest{ + NumStats: 60, + } + cont, err := m.GetContainerInfo(containerName, &reqParams) + if err != nil { + return fmt.Errorf("failed to get container %q with error: %v", containerName, err) + } + displayName := getContainerDisplayName(cont.ContainerReference) + + // Get the MachineInfo + machineInfo, err := m.GetMachineInfo() + if err != nil { + return err + } + + // Make a list of the parent containers and their links + pathParts := strings.Split(string(cont.Name), "/") + parentContainers := make([]link, 0, len(pathParts)) + parentContainers = append(parentContainers, link{ + Text: "root", + Link: ContainersPage, + }) + for i := 1; i < len(pathParts); i++ { + // Skip empty parts. + if pathParts[i] == "" { + continue + } + parentContainers = append(parentContainers, link{ + Text: pathParts[i], + Link: path.Join(ContainersPage, path.Join(pathParts[1:i+1]...)), + }) + } + + // Build the links for the subcontainers. + subcontainerLinks := make([]link, 0, len(cont.Subcontainers)) + for _, sub := range cont.Subcontainers { + subcontainerLinks = append(subcontainerLinks, link{ + Text: getContainerDisplayName(sub), + Link: path.Join(ContainersPage, sub.Name), + }) + } + + data := &pageData{ + DisplayName: displayName, + ContainerName: cont.Name, + ParentContainers: parentContainers, + Subcontainers: subcontainerLinks, + Spec: cont.Spec, + Stats: cont.Stats, + MachineInfo: machineInfo, + IsRoot: cont.Name == "/", + ResourcesAvailable: cont.Spec.HasCpu || cont.Spec.HasMemory || cont.Spec.HasNetwork || cont.Spec.HasFilesystem, + CpuAvailable: cont.Spec.HasCpu, + MemoryAvailable: cont.Spec.HasMemory, + NetworkAvailable: cont.Spec.HasNetwork, + FsAvailable: cont.Spec.HasFilesystem, + } + err = pageTemplate.Execute(w, data) + if err != nil { + glog.Errorf("Failed to apply template: %s", err) + } + + glog.V(1).Infof("Request took %s", time.Since(start)) + return nil +} diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/pages/containers_html.go b/Godeps/_workspace/src/github.com/google/cadvisor/pages/containers_html.go new file mode 100644 index 00000000000..052abcf07c3 --- /dev/null +++ b/Godeps/_workspace/src/github.com/google/cadvisor/pages/containers_html.go @@ -0,0 +1,186 @@ +// Copyright 2014 Google Inc. 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. + +package pages + +const containersHtmlTemplate = ` + + + cAdvisor - {{.DisplayName}} + + + + + + + + + + + + + + + + +
+ +
+ + +
+ {{if .IsRoot}} + + {{end}} + {{if .Subcontainers}} +
+ +
+ {{range $subcontainer := .Subcontainers}} + {{$subcontainer.Text}} + {{end}} +
+
+ {{end}} + {{if .ResourcesAvailable}} +
+ + {{if .CpuAvailable}} +
    +
  • CPU
  • + {{if .Spec.Cpu.Limit}} +
  • Shares {{printShares .Spec.Cpu.Limit}} shares
  • + {{end}} + {{if .Spec.Cpu.MaxLimit}} +
  • Max Limit {{printCores .Spec.Cpu.MaxLimit}} cores
  • + {{end}} + {{if .Spec.Cpu.Mask}} +
  • Allowed Cores {{printMask .Spec.Cpu.Mask .MachineInfo.NumCores}}
  • + {{end}} +
+ {{end}} + {{if .MemoryAvailable}} +
    +
  • Memory
  • + {{if .Spec.Memory.Reservation}} +
  • Reservation {{printSize .Spec.Memory.Reservation}} {{printUnit .Spec.Memory.Reservation}}
  • + {{end}} + {{if .Spec.Memory.Limit}} +
  • Limit {{printSize .Spec.Memory.Limit}} {{printUnit .Spec.Memory.Limit}}
  • + {{end}} + {{if .Spec.Memory.SwapLimit}} +
  • Swap Limit {{printSize .Spec.Memory.SwapLimit}} {{printUnit .Spec.Memory.SwapLimit}}
  • + {{end}} +
+ {{end}} +
+
+ +
+
+

Overview

+
+
+
+ {{if .CpuAvailable}} +
+
+

CPU

+
+
+

Total Usage

+
+ +

Usage per Core

+
+

Usage Breakdown

+
+
+
+ {{end}} + {{if .MemoryAvailable}} +
+
+

Memory

+
+
+

Total Usage

+
+
+
+

Usage Breakdown

+
+
+
+ Hot Memory +
+
+ Cold Memory +
+
+
+
+
+
+
+ {{end}} + {{if .NetworkAvailable}} +
+
+

Network

+
+
+

Throughput

+
+
+
+

Errors

+
+
+
+ {{end}} + {{if .FsAvailable}} +
+
+

Filesystem

+
+
+
+
+ {{end}} +
+ {{end}} +
+ + + +` diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/pages/docker.go b/Godeps/_workspace/src/github.com/google/cadvisor/pages/docker.go new file mode 100644 index 00000000000..3fc23ecd6d0 --- /dev/null +++ b/Godeps/_workspace/src/github.com/google/cadvisor/pages/docker.go @@ -0,0 +1,116 @@ +// Copyright 2014 Google Inc. 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. + +package pages + +import ( + "fmt" + "net/http" + "net/url" + "path" + "time" + + "github.com/golang/glog" + "github.com/google/cadvisor/container/docker" + info "github.com/google/cadvisor/info/v1" + "github.com/google/cadvisor/manager" +) + +const DockerPage = "/docker/" + +func serveDockerPage(m manager.Manager, w http.ResponseWriter, u *url.URL) error { + start := time.Now() + + // The container name is the path after the handler + containerName := u.Path[len(DockerPage):] + + var data *pageData + if containerName == "" { + // Get the containers. + reqParams := info.ContainerInfoRequest{ + NumStats: 0, + } + conts, err := m.AllDockerContainers(&reqParams) + if err != nil { + return fmt.Errorf("failed to get container %q with error: %v", containerName, err) + } + subcontainers := make([]link, 0, len(conts)) + for _, cont := range conts { + subcontainers = append(subcontainers, link{ + Text: getContainerDisplayName(cont.ContainerReference), + Link: path.Join("/docker", docker.ContainerNameToDockerId(cont.ContainerReference.Name)), + }) + } + + dockerContainersText := "Docker Containers" + data = &pageData{ + DisplayName: dockerContainersText, + ParentContainers: []link{ + { + Text: dockerContainersText, + Link: DockerPage, + }}, + Subcontainers: subcontainers, + } + } else { + // Get the container. + reqParams := info.ContainerInfoRequest{ + NumStats: 60, + } + cont, err := m.DockerContainer(containerName, &reqParams) + if err != nil { + return fmt.Errorf("failed to get container %q with error: %v", containerName, err) + } + displayName := getContainerDisplayName(cont.ContainerReference) + + // Make a list of the parent containers and their links + var parentContainers []link + parentContainers = append(parentContainers, link{ + Text: "Docker containers", + Link: DockerPage, + }) + parentContainers = append(parentContainers, link{ + Text: displayName, + Link: path.Join(DockerPage, docker.ContainerNameToDockerId(cont.Name)), + }) + + // Get the MachineInfo + machineInfo, err := m.GetMachineInfo() + if err != nil { + return err + } + + data = &pageData{ + DisplayName: displayName, + ContainerName: cont.Name, + ParentContainers: parentContainers, + Spec: cont.Spec, + Stats: cont.Stats, + MachineInfo: machineInfo, + ResourcesAvailable: cont.Spec.HasCpu || cont.Spec.HasMemory || cont.Spec.HasNetwork, + CpuAvailable: cont.Spec.HasCpu, + MemoryAvailable: cont.Spec.HasMemory, + NetworkAvailable: cont.Spec.HasNetwork, + FsAvailable: cont.Spec.HasFilesystem, + } + } + + err := pageTemplate.Execute(w, data) + if err != nil { + glog.Errorf("Failed to apply template: %s", err) + } + + glog.V(1).Infof("Request took %s", time.Since(start)) + return nil +} diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/pages/pages.go b/Godeps/_workspace/src/github.com/google/cadvisor/pages/pages.go new file mode 100644 index 00000000000..89d1c113c54 --- /dev/null +++ b/Godeps/_workspace/src/github.com/google/cadvisor/pages/pages.go @@ -0,0 +1,152 @@ +// Copyright 2014 Google Inc. 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. + +package pages + +import ( + "fmt" + "html/template" + "net/http" + "strings" + + auth "github.com/abbot/go-http-auth" + "github.com/golang/glog" + httpMux "github.com/google/cadvisor/http/mux" + info "github.com/google/cadvisor/info/v1" + "github.com/google/cadvisor/manager" +) + +var pageTemplate *template.Template + +type link struct { + // Text to show in the link. + Text string + + // Web address to link to. + Link string +} + +type pageData struct { + DisplayName string + ContainerName string + ParentContainers []link + Subcontainers []link + Spec info.ContainerSpec + Stats []*info.ContainerStats + MachineInfo *info.MachineInfo + IsRoot bool + ResourcesAvailable bool + CpuAvailable bool + MemoryAvailable bool + NetworkAvailable bool + FsAvailable bool +} + +func init() { + pageTemplate = template.New("containersTemplate").Funcs(funcMap) + _, err := pageTemplate.Parse(containersHtmlTemplate) + if err != nil { + glog.Fatalf("Failed to parse template: %s", err) + } +} + +func containerHandlerNoAuth(containerManager manager.Manager) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + err := serveContainersPage(containerManager, w, r.URL) + if err != nil { + fmt.Fprintf(w, "%s", err) + } + } +} + +func containerHandler(containerManager manager.Manager) auth.AuthenticatedHandlerFunc { + return func(w http.ResponseWriter, r *auth.AuthenticatedRequest) { + err := serveContainersPage(containerManager, w, r.URL) + if err != nil { + fmt.Fprintf(w, "%s", err) + } + } +} + +func dockerHandlerNoAuth(containerManager manager.Manager) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + err := serveDockerPage(containerManager, w, r.URL) + if err != nil { + fmt.Fprintf(w, "%s", err) + } + } +} + +func dockerHandler(containerManager manager.Manager) auth.AuthenticatedHandlerFunc { + return func(w http.ResponseWriter, r *auth.AuthenticatedRequest) { + err := serveDockerPage(containerManager, w, r.URL) + if err != nil { + fmt.Fprintf(w, "%s", err) + } + } +} + +// Register http handlers +func RegisterHandlersDigest(mux httpMux.Mux, containerManager manager.Manager, authenticator *auth.DigestAuth) error { + // Register the handler for the containers page. + if authenticator != nil { + mux.HandleFunc(ContainersPage, authenticator.Wrap(containerHandler(containerManager))) + mux.HandleFunc(DockerPage, authenticator.Wrap(dockerHandler(containerManager))) + } else { + mux.HandleFunc(ContainersPage, containerHandlerNoAuth(containerManager)) + mux.HandleFunc(DockerPage, dockerHandlerNoAuth(containerManager)) + } + return nil +} + +func RegisterHandlersBasic(mux httpMux.Mux, containerManager manager.Manager, authenticator *auth.BasicAuth) error { + // Register the handler for the containers and docker age. + if authenticator != nil { + mux.HandleFunc(ContainersPage, authenticator.Wrap(containerHandler(containerManager))) + mux.HandleFunc(DockerPage, authenticator.Wrap(dockerHandler(containerManager))) + } else { + mux.HandleFunc(ContainersPage, containerHandlerNoAuth(containerManager)) + mux.HandleFunc(DockerPage, dockerHandlerNoAuth(containerManager)) + } + return nil +} + +func getContainerDisplayName(cont info.ContainerReference) string { + // Pick a user-added alias as display name. + displayName := "" + for _, alias := range cont.Aliases { + // ignore container id as alias. + if strings.Contains(cont.Name, alias) { + continue + } + // pick shortest display name if multiple aliases are available. + if displayName == "" || len(displayName) >= len(alias) { + displayName = alias + } + } + + if displayName == "" { + displayName = cont.Name + } else if len(displayName) > 50 { + // truncate display name to fit in one line. + displayName = displayName[:50] + "..." + } + + // Add the full container name to the display name. + if displayName != cont.Name { + displayName = fmt.Sprintf("%s (%s)", displayName, cont.Name) + } + + return displayName +} diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/pages/static/bootstrap_min_css.go b/Godeps/_workspace/src/github.com/google/cadvisor/pages/static/bootstrap_min_css.go new file mode 100644 index 00000000000..c72f34705ee --- /dev/null +++ b/Godeps/_workspace/src/github.com/google/cadvisor/pages/static/bootstrap_min_css.go @@ -0,0 +1,25 @@ +// Copyright 2014 Google Inc. 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. + +package static + +const bootstrapCss = ` +/*! + * Bootstrap v3.1.1 (http://getbootstrap.com) + * Copyright 2011-2014 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ + +/*! normalize.css v3.0.0 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:0 0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}@media print{*{text-shadow:none!important;color:#000!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered th,.table-bordered td{border:1px solid #ddd!important}}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:before,:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#428bca;text-decoration:none}a:hover,a:focus{color:#2a6496;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:400;line-height:1;color:#999}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:200;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}cite{font-style:normal}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-muted{color:#999}.text-primary{color:#428bca}a.text-primary:hover{color:#3071a9}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#428bca}a.bg-primary:hover{background-color:#3071a9}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#999}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}blockquote:before,blockquote:after{content:""}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;white-space:nowrap;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:0}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:0}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:0}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:0}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:0}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:0}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:0}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:0}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{max-width:100%;background-color:transparent}th{text-align:left}.table{width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*=col-]{position:static;float:none;display:table-column}table td[class*=col-],table th[class*=col-]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}@media (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;overflow-x:scroll;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd;-webkit-overflow-scrolling:touch}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=radio],input[type=checkbox]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=radio]:focus,input[type=checkbox]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}input[type=date]{line-height:34px}.form-group{margin-bottom:15px}.radio,.checkbox{display:block;min-height:20px;margin-top:10px;margin-bottom:10px;padding-left:20px}.radio label,.checkbox label{display:inline;font-weight:400;cursor:pointer}.radio input[type=radio],.radio-inline input[type=radio],.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox]{float:left;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type=radio][disabled],input[type=checkbox][disabled],.radio[disabled],.radio-inline[disabled],.checkbox[disabled],.checkbox-inline[disabled],fieldset[disabled] input[type=radio],fieldset[disabled] input[type=checkbox],fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg{height:46px;line-height:46px}textarea.input-lg,select[multiple].input-lg{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.has-feedback .form-control-feedback{position:absolute;top:25px;right:0;display:block;width:34px;height:34px;line-height:34px;text-align:center}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback{color:#a94442}.form-control-static{margin-bottom:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle}.form-inline .radio input[type=radio],.form-inline .checkbox input[type=checkbox]{float:none;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .form-control-static{padding-top:7px}@media (min-width:768px){.form-horizontal .control-label{text-align:right}}.form-horizontal .has-feedback .form-control-feedback{top:0;right:15px}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#333;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{color:#333;background-color:#ebebeb;border-color:#adadad}.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd}.btn-primary .badge{color:#428bca;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{color:#428bca;font-weight:400;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%;padding-left:0;padding-right:0}.btn-block+.btn-block{margin-top:5px}input[type=submit].btn-block,input[type=reset].btn-block,input[type=button].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;outline:0;background-color:#428bca}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#999}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}[data-toggle=buttons]>.btn>input[type=radio],[data-toggle=buttons]>.btn>input[type=checkbox]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=radio],.input-group-addon input[type=checkbox]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#428bca}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{max-height:340px;overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}.navbar-nav.navbar-right:last-child{margin-right:-15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin-top:8px;margin-bottom:8px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;vertical-align:middle}.navbar-form .radio input[type=radio],.navbar-form .checkbox input[type=checkbox]{float:none;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}.navbar-form.navbar-right:last-child{margin-right:-15px}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}.navbar-text.navbar-right:last-child{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#e7e7e7;color:#555}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#999}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .navbar-nav>li>a{color:#999}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#080808;color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.42857143;text-decoration:none;color:#428bca;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{color:#2a6496;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;background-color:#fff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label[href]:hover,.label[href]:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#999}.label-default[href]:hover,.label-default[href]:focus{background-color:gray}.label-primary{background-color:#428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;color:#fff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#999;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.container .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#428bca}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;background-color:#f5f5f5}a.list-group-item.active,a.list-group-item.active:hover,a.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}a.list-group-item.active .list-group-item-heading,a.list-group-item.active:hover .list-group-item-heading,a.list-group-item.active:focus .list-group-item-heading{color:inherit}a.list-group-item.active .list-group-item-text,a.list-group-item.active:hover .list-group-item-text,a.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px;overflow:hidden}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#faebcc}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#ebccd1}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ebccd1}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:auto;overflow-y:scroll;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{margin-top:15px;padding:19px 20px 20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;right:5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);white-space:normal}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999;border-top-color:rgba(0,0,0,.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#fff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999;border-right-color:rgba(0,0,0,.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#fff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#fff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:.5;filter:alpha(opacity=50);font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.5) 0),color-stop(rgba(0,0,0,.0001) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,.0001) 0),color-stop(rgba(0,0,0,.5) 100%));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #fff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-size:30px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important;visibility:hidden!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}}@media print{.hidden-print{display:none!important}} +` diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/pages/static/bootstrap_min_js.go b/Godeps/_workspace/src/github.com/google/cadvisor/pages/static/bootstrap_min_js.go new file mode 100644 index 00000000000..e9d7e2ebcf4 --- /dev/null +++ b/Godeps/_workspace/src/github.com/google/cadvisor/pages/static/bootstrap_min_js.go @@ -0,0 +1,24 @@ +// Copyright 2014 Google Inc. 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. + +package static + +const bootstrapJs = ` +/*! + * Bootstrap v3.1.1 (http://getbootstrap.com) + * Copyright 2011-2014 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ +if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one(a.support.transition.end,function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b()})}(jQuery),+function(a){"use strict";var b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype.close=function(b){function c(){f.trigger("closed.bs.alert").remove()}var d=a(this),e=d.attr("data-target");e||(e=d.attr("href"),e=e&&e.replace(/.*(?=#[^\s]*$)/,""));var f=a(e);b&&b.preventDefault(),f.length||(f=d.hasClass("alert")?d:d.parent()),f.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one(a.support.transition.end,c).emulateTransitionEnd(150):c())};var d=a.fn.alert;a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data("bs.alert");e||d.data("bs.alert",e=new c(this)),"string"==typeof b&&e[b].call(d)})},a.fn.alert.Constructor=c,a.fn.alert.noConflict=function(){return a.fn.alert=d,this},a(document).on("click.bs.alert.data-api",b,c.prototype.close)}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.isLoading=!1};b.DEFAULTS={loadingText:"loading..."},b.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",f.resetText||d.data("resetText",d[e]()),d[e](f[b]||this.options[b]),setTimeout(a.proxy(function(){"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},b.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")&&(c.prop("checked")&&this.$element.hasClass("active")?a=!1:b.find(".active").removeClass("active")),a&&c.prop("checked",!this.$element.hasClass("active")).trigger("change")}a&&this.$element.toggleClass("active")};var c=a.fn.button;a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof c&&c;e||d.data("bs.button",e=new b(this,f)),"toggle"==c?e.toggle():c&&e.setState(c)})},a.fn.button.Constructor=b,a.fn.button.noConflict=function(){return a.fn.button=c,this},a(document).on("click.bs.button.data-api","[data-toggle^=button]",function(b){var c=a(b.target);c.hasClass("btn")||(c=c.closest(".btn")),c.button("toggle"),b.preventDefault()})}(jQuery),+function(a){"use strict";var b=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,"hover"==this.options.pause&&this.$element.on("mouseenter",a.proxy(this.pause,this)).on("mouseleave",a.proxy(this.cycle,this))};b.DEFAULTS={interval:5e3,pause:"hover",wrap:!0},b.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},b.prototype.getActiveIndex=function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},b.prototype.to=function(b){var c=this,d=this.getActiveIndex();return b>this.$items.length-1||0>b?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},b.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},b.prototype.next=function(){return this.sliding?void 0:this.slide("next")},b.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},b.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g="next"==b?"left":"right",h="next"==b?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}if(e.hasClass("active"))return this.sliding=!1;var j=a.Event("slide.bs.carousel",{relatedTarget:e[0],direction:g});return this.$element.trigger(j),j.isDefaultPrevented()?void 0:(this.sliding=!0,f&&this.pause(),this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid.bs.carousel",function(){var b=a(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass("active")})),a.support.transition&&this.$element.hasClass("slide")?(e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid.bs.carousel")},0)}).emulateTransitionEnd(1e3*d.css("transition-duration").slice(0,-1))):(d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid.bs.carousel")),f&&this.cycle(),this)};var c=a.fn.carousel;a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c),g="string"==typeof c?c:f.slide;e||d.data("bs.carousel",e=new b(this,f)),"number"==typeof c?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.Constructor=b,a.fn.carousel.noConflict=function(){return a.fn.carousel=c,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(b){var c,d=a(this),e=a(d.attr("data-target")||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"")),f=a.extend({},e.data(),d.data()),g=d.attr("data-slide-to");g&&(f.interval=!1),e.carousel(f),(g=d.attr("data-slide-to"))&&e.data("bs.carousel").to(g),b.preventDefault()}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var b=a(this);b.carousel(b.data())})})}(jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS={toggle:!0},b.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},b.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b=a.Event("show.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.$parent&&this.$parent.find("> .panel > .in");if(c&&c.length){var d=c.data("bs.collapse");if(d&&d.transitioning)return;c.collapse("hide"),d||c.data("bs.collapse",null)}var e=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[e](0),this.transitioning=1;var f=function(){this.$element.removeClass("collapsing").addClass("collapse in")[e]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return f.call(this);var g=a.camelCase(["scroll",e].join("-"));this.$element.one(a.support.transition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][g])}}},b.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?void this.$element[c](0).one(a.support.transition.end,a.proxy(d,this)).emulateTransitionEnd(350):d.call(this)}}},b.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c);!e&&f.toggle&&"show"==c&&(c=!c),e||d.data("bs.collapse",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return a.fn.collapse=c,this},a(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(b){var c,d=a(this),e=d.attr("data-target")||b.preventDefault()||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.collapse"),h=g?"toggle":d.data(),i=d.attr("data-parent"),j=i&&a(i);g&&g.transitioning||(j&&j.find('[data-toggle=collapse][data-parent="'+i+'"]').not(d).addClass("collapsed"),d[f.hasClass("in")?"addClass":"removeClass"]("collapsed")),f.collapse(h)})}(jQuery),+function(a){"use strict";function b(b){a(d).remove(),a(e).each(function(){var d=c(a(this)),e={relatedTarget:this};d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown",e)),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown",e))})}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}var d=".dropdown-backdrop",e="[data-toggle=dropdown]",f=function(b){a(b).on("click.bs.dropdown",this.toggle)};f.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(''}),b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),b.prototype.constructor=b,b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content")[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},b.prototype.hasContent=function(){return this.getTitle()||this.getContent()},b.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},b.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof c&&c;(e||"destroy"!=c)&&(e||d.data("bs.popover",e=new b(this,f)),"string"==typeof c&&e[c]())})},a.fn.popover.Constructor=b,a.fn.popover.noConflict=function(){return a.fn.popover=c,this}}(jQuery),+function(a){"use strict";function b(c,d){var e,f=a.proxy(this.process,this);this.$element=a(a(c).is("body")?window:c),this.$body=a("body"),this.$scrollElement=this.$element.on("scroll.bs.scroll-spy.data-api",f),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||(e=a(c).attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.offsets=a([]),this.targets=a([]),this.activeTarget=null,this.refresh(),this.process()}b.DEFAULTS={offset:10},b.prototype.refresh=function(){var b=this.$element[0]==window?"offset":"position";this.offsets=a([]),this.targets=a([]);{var c=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[b]().top+(!a.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){c.offsets.push(this[0]),c.targets.push(this[1])})}},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,d=c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(b>=d)return g!=(a=f.last()[0])&&this.activate(a);if(g&&b<=e[0])return g!=(a=f[0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parentsUntil(this.options.target,".active").removeClass("active");var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")};var c=a.fn.scrollspy;a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=c,this},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(jQuery),+function(a){"use strict";var b=function(b){this.element=a(b)};b.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.parent("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},b.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),g?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one(a.support.transition.end,e).emulateTransitionEnd(150):e(),f.removeClass("in")};var c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new b(this)),"string"==typeof c&&e[c]()})},a.fn.tab.Constructor=b,a.fn.tab.noConflict=function(){return a.fn.tab=c,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})}(jQuery),+function(a){"use strict";var b=function(c,d){this.options=a.extend({},b.DEFAULTS,d),this.$window=a(window).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(c),this.affixed=this.unpin=this.pinnedOffset=null,this.checkPosition()};b.RESET="affix affix-top affix-bottom",b.DEFAULTS={offset:0},b.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(b.RESET).addClass("affix");var a=this.$window.scrollTop(),c=this.$element.offset();return this.pinnedOffset=c.top-a},b.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},b.prototype.checkPosition=function(){if(this.$element.is(":visible")){var c=a(document).height(),d=this.$window.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"top"==this.affixed&&(e.top+=d),"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top(this.$element)),"function"==typeof h&&(h=f.bottom(this.$element));var i=null!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=c-h?"bottom":null!=g&&g>=d?"top":!1;if(this.affixed!==i){this.unpin&&this.$element.css("top","");var j="affix"+(i?"-"+i:""),k=a.Event(j+".bs.affix");this.$element.trigger(k),k.isDefaultPrevented()||(this.affixed=i,this.unpin="bottom"==i?this.getPinnedOffset():null,this.$element.removeClass(b.RESET).addClass(j).trigger(a.Event(j.replace("affix","affixed"))),"bottom"==i&&this.$element.offset({top:c-h-this.$element.height()}))}}};var c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof c&&c;e||d.data("bs.affix",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.noConflict=function(){return a.fn.affix=c,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(jQuery); +` diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/pages/static/bootstrap_theme_min_css.go b/Godeps/_workspace/src/github.com/google/cadvisor/pages/static/bootstrap_theme_min_css.go new file mode 100644 index 00000000000..8f28161bb52 --- /dev/null +++ b/Godeps/_workspace/src/github.com/google/cadvisor/pages/static/bootstrap_theme_min_css.go @@ -0,0 +1,25 @@ +// Copyright 2014 Google Inc. 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. + +package static + +const bootstrapThemeCss = ` +/*! + * Bootstrap v3.1.1 (http://getbootstrap.com) + * Copyright 2011-2014 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ + +.btn-default,.btn-primary,.btn-success,.btn-info,.btn-warning,.btn-danger{text-shadow:0 -1px 0 rgba(0,0,0,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-default:active,.btn-primary:active,.btn-success:active,.btn-info:active,.btn-warning:active,.btn-danger:active,.btn-default.active,.btn-primary.active,.btn-success.active,.btn-info.active,.btn-warning.active,.btn-danger.active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn:active,.btn.active{background-image:none}.btn-default{background-image:-webkit-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:linear-gradient(to bottom,#fff 0,#e0e0e0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#dbdbdb;text-shadow:0 1px 0 #fff;border-color:#ccc}.btn-default:hover,.btn-default:focus{background-color:#e0e0e0;background-position:0 -15px}.btn-default:active,.btn-default.active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-primary{background-image:-webkit-linear-gradient(top,#428bca 0,#2d6ca2 100%);background-image:linear-gradient(to bottom,#428bca 0,#2d6ca2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff2d6ca2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#2b669a}.btn-primary:hover,.btn-primary:focus{background-color:#2d6ca2;background-position:0 -15px}.btn-primary:active,.btn-primary.active{background-color:#2d6ca2;border-color:#2b669a}.btn-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:linear-gradient(to bottom,#5cb85c 0,#419641 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#3e8f3e}.btn-success:hover,.btn-success:focus{background-color:#419641;background-position:0 -15px}.btn-success:active,.btn-success.active{background-color:#419641;border-color:#3e8f3e}.btn-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:linear-gradient(to bottom,#5bc0de 0,#2aabd2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#28a4c9}.btn-info:hover,.btn-info:focus{background-color:#2aabd2;background-position:0 -15px}.btn-info:active,.btn-info.active{background-color:#2aabd2;border-color:#28a4c9}.btn-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#e38d13}.btn-warning:hover,.btn-warning:focus{background-color:#eb9316;background-position:0 -15px}.btn-warning:active,.btn-warning.active{background-color:#eb9316;border-color:#e38d13}.btn-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:linear-gradient(to bottom,#d9534f 0,#c12e2a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#b92c28}.btn-danger:hover,.btn-danger:focus{background-color:#c12e2a;background-position:0 -15px}.btn-danger:active,.btn-danger.active{background-color:#c12e2a;border-color:#b92c28}.thumbnail,.img-thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-color:#e8e8e8}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{background-image:-webkit-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);background-color:#357ebd}.navbar-default{background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075)}.navbar-default .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f3f3f3 100%);background-image:linear-gradient(to bottom,#ebebeb 0,#f3f3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff3f3f3', GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.075);box-shadow:inset 0 3px 9px rgba(0,0,0,.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top,#222 0,#282828 100%);background-image:linear-gradient(to bottom,#222 0,#282828 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff282828', GradientType=0);-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.25);box-shadow:inset 0 3px 9px rgba(0,0,0,.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}.navbar-static-top,.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}.alert{text-shadow:0 1px 0 rgba(255,255,255,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05)}.alert-success{background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);border-color:#b2dba1}.alert-info{background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);border-color:#9acfea}.alert-warning{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:linear-gradient(to bottom,#fcf8e3 0,#f8efc0 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);border-color:#f5e79e}.alert-danger{background-image:-webkit-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:linear-gradient(to bottom,#f2dede 0,#e7c3c3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);border-color:#dca7a7}.progress{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0)}.progress-bar{background-image:-webkit-linear-gradient(top,#428bca 0,#3071a9 100%);background-image:linear-gradient(to bottom,#428bca 0,#3071a9 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0)}.progress-bar-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0)}.progress-bar-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0)}.progress-bar-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0)}.progress-bar-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{text-shadow:0 -1px 0 #3071a9;background-image:-webkit-linear-gradient(top,#428bca 0,#3278b3 100%);background-image:linear-gradient(to bottom,#428bca 0,#3278b3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0);border-color:#3278b3}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.panel-default>.panel-heading{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0)}.panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top,#428bca 0,#357ebd 100%);background-image:linear-gradient(to bottom,#428bca 0,#357ebd 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0)}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0)}.panel-info>.panel-heading{background-image:-webkit-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0)}.panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0)}.panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0)}.well{background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);border-color:#dcdcdc;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1)} +` diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/pages/static/containers_css.go b/Godeps/_workspace/src/github.com/google/cadvisor/pages/static/containers_css.go new file mode 100644 index 00000000000..48da8a9d61d --- /dev/null +++ b/Godeps/_workspace/src/github.com/google/cadvisor/pages/static/containers_css.go @@ -0,0 +1,50 @@ +// Copyright 2014 Google Inc. 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. + +package static + +const containersCss = ` + +.google-visualization-toolbar{font-size:100%}.google-visualization-toolbar .google-visualization-toolbar-export-igoogle,.google-visualization-toolbar .google-visualization-toolbar-export-data,.google-visualization-toolbar .google-visualization-toolbar-html-code{margin-right:.1em}.google-visualization-toolbar-html-code-explanation{font-weight:bold}.google-visualization-toolbar-ok-button{padding:2px}.google-visualization-toolbar-triangle{position:absolute;right:0;top:0}.google-visualization-toolbar-caption-table{width:100%;padding:0;margin:0;border:0;border-collapse:collapse}.google-visualization-toolbar-small-dialog{width:500px}.google-visualization-toolbar-big-dialog{width:800px}.google-visualization-toolbar-small-dialog,.google-visualization-toolbar-big-dialog{position:absolute;background-color:#c1d9ff;border:1px solid #3a5774;padding:8px}.google-visualization-toolbar-small-dialog-bg,.google-visualization-toolbar-big-dialog-bg{background-color:#ddd;position:absolute;top:0;left:0}.google-visualization-toolbar-small-dialog-title,.google-visualization-toolbar-big-dialog-title{background-color:#e0edfe;color:#000;cursor:pointer;padding:8px;position:relative;font-size:12pt;font-weight:bold;vertical-align:middle}.google-visualization-toolbar-small-dialog-content,.google-visualization-toolbar-big-dialog-content{background-color:#fff;padding:4px;font-weight:normal;overflow:auto}.google-visualization-toolbar-small-dialog-title-close,.google-visualization-toolbar-big-dialog-title-close{background:transparent url(close_box.gif) no-repeat scroll center;height:15px;position:absolute;right:10px;top:8px;width:15px}.google-visualization-toolbar-small-dialog-content iframe,.google-visualization-toolbar-big-dialog-content iframe{width:500px;height:700px;border:1px solid black}.charts-inline-block{position:relative;display:-moz-inline-box;display:inline-block}* html .charts-inline-block,*:first-child+html .charts-inline-block{display:inline}.charts-menu{background:#fff;border-color:#ccc #666 #666 #ccc;border-style:solid;border-width:1px;cursor:default;font:normal 13px Arial,sans-serif;margin:0;outline:none;padding:4px 0;position:absolute;z-index:20000}.charts-menu-button{background:#ddd url(//ssl.gstatic.com/editor/button-bg.png) repeat-x top left;border:0;color:#000;cursor:pointer;list-style:none;margin:2px;outline:none;padding:0;text-decoration:none;vertical-align:middle}.charts-menu-button-outer-box,.charts-menu-button-inner-box{border-style:solid;border-color:#aaa;vertical-align:top}.charts-menu-button-outer-box{margin:0;border-width:1px 0;padding:0}.charts-menu-button-inner-box{margin:0 -1px;border-width:0 1px;padding:3px 4px}* html .charts-menu-button-inner-box{left:-1px}* html .charts-menu-button-rtl .charts-menu-button-outer-box{left:-1px;right:auto}* html .charts-menu-button-rtl .charts-menu-button-inner-box{right:auto}*:first-child+html .charts-menu-button-inner-box{left:-1px}*:first-child+html .charts-menu-button-rtl .charts-menu-button-inner-box{left:1px;right:auto}::root .charts-menu-button{line-height:0}::root .charts-menu-button-outer-box{line-height:0}::root .charts-menu-button-inner-box{line-height:0}::root .charts-menu-button-caption{line-height:normal}::root .charts-menu-button-dropdown{line-height:normal}.charts-menu-button-disabled{background-image:none!important;opacity:.3;-moz-opacity:.3;filter:alpha(opacity=30)}.charts-menu-button-disabled .charts-menu-button-outer-box,.charts-menu-button-disabled .charts-menu-button-inner-box,.charts-menu-button-disabled .charts-menu-button-caption,.charts-menu-button-disabled .charts-menu-button-dropdown{color:#333!important;border-color:#999!important}* html .charts-menu-button-disabled,*:first-child+html .charts-menu-button-disabled{margin:2px 1px!important;padding:0 1px!important}.charts-menu-button-hover .charts-menu-button-outer-box,.charts-menu-button-hover .charts-menu-button-inner-box{border-color:#9cf #69e #69e #7af!important}.charts-menu-button-active,.charts-menu-button-open{background-color:#bbb;background-position:bottom left}.charts-menu-button-focused .charts-menu-button-outer-box,.charts-menu-button-focused .charts-menu-button-inner-box{border-color:orange}.charts-menu-button-caption{padding:0 4px 0 0;vertical-align:top}.charts-menu-button-dropdown{height:15px;width:7px;background:url(//ssl.gstatic.com/editor/editortoolbar.png) no-repeat -388px 0;vertical-align:top}.charts-menu-button-collapse-right,.charts-menu-button-collapse-right .charts-menu-button-outer-box,.charts-menu-button-collapse-right .charts-menu-button-inner-box{margin-right:0}.charts-menu-button-collapse-left,.charts-menu-button-collapse-left .charts-menu-button-outer-box{margin-left:0}.charts-menu-button-collapse-left .charts-menu-button-inner-box{margin-left:0;border-left:1px solid #fff}.charts-menu-button-collapse-left.charts-menu-button-checked .charts-menu-button-inner-box{border-left:1px solid #ddd}.charts-menuitem{color:#000;font:normal 13px Arial,sans-serif;list-style:none;margin:0;padding:4px 7em 4px 28px;white-space:nowrap}.charts-menuitem.charts-menuitem-rtl{padding-left:7em;padding-right:28px}.charts-menu-nocheckbox .charts-menuitem,.charts-menu-noicon .charts-menuitem{padding-left:12px}.charts-menu-noaccel .charts-menuitem{padding-right:20px}.charts-menuitem-content{color:#000;font:normal 13px Arial,sans-serif}.charts-menuitem-disabled .charts-menuitem-accel,.charts-menuitem-disabled .charts-menuitem-content{color:#ccc!important}.charts-menuitem-disabled .charts-menuitem-icon{opacity:.3;-moz-opacity:.3;filter:alpha(opacity=30)}.charts-menuitem-highlight,.charts-menuitem-hover{background-color:#d6e9f8;border-color:#d6e9f8;border-style:dotted;border-width:1px 0;padding-bottom:3px;padding-top:3px}.charts-menuitem-checkbox,.charts-menuitem-icon{background-repeat:no-repeat;height:16px;left:6px;position:absolute;right:auto;vertical-align:middle;width:16px}.charts-menuitem-rtl .charts-menuitem-checkbox,.charts-menuitem-rtl .charts-menuitem-icon{left:auto;right:6px}.charts-option-selected .charts-menuitem-checkbox,.charts-option-selected .charts-menuitem-icon{background:url(//ssl.gstatic.com/editor/editortoolbar.png) no-repeat -512px 0}.charts-menuitem-accel{color:#999;direction:ltr;left:auto;padding:0 6px;position:absolute;right:0;text-align:right}.charts-menuitem-rtl .charts-menuitem-accel{left:0;right:auto;text-align:left}.charts-menuitem-mnemonic-hint{text-decoration:underline}.charts-menuitem-mnemonic-separator{color:#999;font-size:12px;padding-left:4px} + +.stat-label { + font-weight:bold; +} +.unit-label { + color:#888888; + font-style:italic; +} +.active-cpu { + font-weight:bold; + color:#000000; +} +.inactive-cpu { + color:#888888; +} +.raw-stats { + font-family: "Courier New"; + white-space: pre-wrap; +} +.isolation-title { + color:#FFFFFF; +} +#logo { + height: 200px; + margin-top: 20px; + background-repeat: no-repeat; + background-size: contain; + background-position: center; + background-image:url("data:image/png;base64,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AAAAAOQRxscBAAAAAAAAAAAAQB5hfBwAAAAAAAAAAAAA5BHGxwEAAAAAAAAAAABAHmF8HAAAAAAAAAAAAADkEcbHAQAAAAAAAAAAAEAeYXwcAAAAAAAAAAAAAOQRxscBAAAAAAAAAAAAQB5hfBwAAAAAAAAAAAAA5BHGxwEAAAAAAAAAAABAHmF8HAAAAAAAAAAAAADkEcbHAQAAAAAAAAAAAEAeYXwcAAAAAAAAAAAAAOQRxscBAAAAAAAAAAAAQB5hfBwAAAAAAAAAAAAA5BHGxwEAAAAAAAAAAABAHmF8HAAAAAAAAAAAAADkEcbHAQAAAAAAAAAAAEAeYXwcAAAAAAAAAAAAAOQRxscBAAAAAAAAAAAAQB5hfBwAAAAAAAAAAAAA5BHGxwEAAAAAAAAAAABAHmF8HAAAAAAAAAAAAADkEcbHAQAAAAAAAAAAAEAeYXwcAAAAAAAAAAAAAOQRxscBAAAAAAAAAAAAQB5hfBwAAAAAAAAAAAAA5BHGxwEAAAAAAAAAAABAHmF8HAAAAAAAAAAAAADkEcbHAQAAAAAAAAAAAEAeYXwcAAAAAAAAAAAAAOQRxscBAAAAAAAAAAAAQB5hfBwAAAAAAAAAAAAA5BHGxwEAAAAAAAAAAABAHv0fr+hlXOtHm2kAAAAASUVORK5CYII="); +} +` diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/pages/static/containers_js.go b/Godeps/_workspace/src/github.com/google/cadvisor/pages/static/containers_js.go new file mode 100644 index 00000000000..45c2afdbd3e --- /dev/null +++ b/Godeps/_workspace/src/github.com/google/cadvisor/pages/static/containers_js.go @@ -0,0 +1,1918 @@ +// Copyright 2014 Google Inc. 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. + +package static + +const containersJs = ` +(function() { +var aa=encodeURIComponent,ba=window,ca=Object,da=Infinity,ea=document,fa=isNaN,h=Math,ga=Array,ha=Number,ia=NaN,m=Error,ja=Boolean,ka=parseInt,la=parseFloat,na=isFinite,oa=decodeURIComponent;function pa(a,b){return a.width=b}function qa(a,b){return a.data=b}function ra(a,b){return a.ceil=b}function sa(a,b){return a.floor=b}function ta(a,b){return a.format=b}function ua(a,b){return a.remove=b}function va(a,b){return a.clear=b}function wa(a,b){return a.getColumnIndex=b} +function xa(a,b){return a.stroke=b}function ya(a,b){return a.getTime=b}function za(a,b){return a.fill=b}function Aa(a,b){return a.toString=b}function Ba(a,b){return a.position=b}function Ca(a,b){return a.toJSON=b}function Da(a,b){return a.next=b}function Ea(a,b){return a.constructor=b}function Fa(a,b){return a.fontSize=b}function Ga(a,b){return a.message=b}function Ia(a,b){return a.clone=b}function Ka(a,b){return a.start=b}function La(a,b){return a.init=b}function Ma(a,b){return a.bottom=b} +function Na(a,b){return a.scale=b}function Oa(a,b){return a.rows=b}function Pa(a,b){return a.contains=b}function Qa(a,b){return a.label=b}function Ra(a,b){return a.display=b}function Sa(a,b){return a.height=b}function Ta(a,b){return a.right=b}function Ua(a,b){return a.isEmpty=b}function Wa(a,b){return a.round=b}function Xa(a,b){return a.innerHTML=b}function Ya(a,b){return a.color=b}function Za(a,b){return a.left=b}function $a(a,b){return a.equals=b}function ab(a,b){return a.cssText=b} +function bb(a,b){return a.getHeight=b}function cb(a,b){return a.type=b}function db(a,b){return a.tabIndex=b}function eb(a,b){return a.translate=b}function fb(a,b){return a.name=b}function gb(a,b){return a.getValue=b}function hb(a,b){return a.parse=b}function ib(a,b){return a.visibility=b}function jb(a,b){return a.bold=b}function kb(a,b){return a.length=b}function lb(a,b){return a.prototype=b}function mb(a,b){return a.className=b}function nb(a,b){return a.opacity=b} +function ob(a,b){return a.sort=b} +var q="appendChild",pb="filter",qb="activeElement",rb="getBoundingClientRect",sb="shift",tb="exec",r="width",ub="collapse",vb="pattern",wb="replace",xb="toFixed",yb="ceil",t="floor",zb="content",Ab="offsetWidth",Bb="concat",Cb="charAt",Db="createTextNode",Eb="getDate",Fb="insertBefore",Gb="interval",Hb="targetTouches",Ib="screenX",Kb="screenY",Lb="match",Mb="getUTCFullYear",Nb="format",Ob="getBoxObjectFor",Pb="cols",Qb="remove",Rb="querySelector",Sb="createElement",Tb="scrollHeight",Ub="firstChild", +Vb="forEach",Wb="clientLeft",w="setAttribute",Xb="clientTop",Yb="clear",Zb="childNodes",$b="stroke",ac="bind",bc="getHours",cc="names",dc="nextSibling",ec="getTime",fc="getElementsByTagName",gc="documentElement",hc="substr",ic="fill",jc="previousSibling",kc="toString",lc="propertyIsEnumerable",mc="position",nc="getDay",oc="sourceIndex",pc="index",qc="next",rc="split",tc="offsetParent",uc="constructor",vc="userAgent",wc="stack",xc="location",yc="fontSize",zc="hasOwnProperty",x="style",Ac="ownerDocument", +Bc="clone",Cc="search",Dc="lastChild",Ec="getUTCMonth",Fc="getYear",Gc="scrollWidth",y="start",Hc="random",Ic="setProperty",Jc="getFullYear",Kc="init",Lc="scrollLeft",Mc="bottom",Nc="href",Oc="setTime",Pc="rows",Rc="contains",Sc="apply",Tc="tagName",Uc="removeAttribute",Vc="getMinutes",Wc="label",Xc="display",Yc="offsetTop",A="height",Zc="offsetHeight",$c="Range",ad="execScript",bd="nodeValue",cd="right",C="push",dd="isEmpty",fd="valueOf",gd="stringify",hd="test",id="text",E="round",jd="slice",kd= +"nodeType",ld="load",md="getElementById",nd="innerHTML",od="value",pd="item",qd="indexOf",F="color",rd="compareDocumentPosition",sd="nodeName",td="createRange",G="left",ud="setMonth",vd="fromCharCode",wd="setFullYear",xd="atan2",yd="children",zd="sqrt",Ad="Format",H="type",Bd="defaultView",Cd="name",I="getValue",Dd="clientX",Ed="clientY",Fd="setDate",Gd="scrollTop",Hd="getMonth",Id="bold",J="length",K="prototype",Jd="className",Kd="clientWidth",Ld="document",Md="getSeconds",Nd="getUTCDate",Od="opacity", +Pd="getMilliseconds",Qd="visualization",Rd="disabled",Sd="offsetLeft",Td="body",Ud="removeChild",L="call",Vd="some",Wd="lastIndexOf",Xd="getAttribute",Yd="querySelectorAll",Zd="setUTCMonth",$d="clientHeight",ae="charCodeAt",be="compatMode",ce="sort",de="currentStyle",ee="substring",fe="documentMode",ge="every",he="getUTCMinutes",ie="getUTCHours",je="parentNode",ke="toUpperCase",le="splice",me="join",oe="unshift",pe="toLowerCase",qe="getTimezoneOffset",O="",aaa="\x00",re="\n",se=" ",te=" and ",baa= +" does not match type ",caa=' name="',daa=' type="',ue='"',ve='" />',we="#",eaa="#$1$1$2$2$3$3",xe="#000000",ye="#808080",ze="#fff",Ae="#ffffff",Be="$",Ce="$1",De="%",Ee="&",Fe="�",He="'",Ie="&",faa="&client=google-gviz",Je=">",Ke="<",Le=""",Me="'",gaa="''",Ne="(",haa="(^",Oe=")",iaa=")([a-z])",Pe="*",Qe="+",Re=",",Se=", ",Te="-",jaa="-moz",kaa="-ms",laa="-o",maa="-transform",naa="-webkit",Ue=".",Ve="...",We=".SSS",oaa='.png" height="12" width="',paa="//ajax.googleapis.com/ajax", +qaa="/static/modules/gviz/",raa="/util/bar_",saa="/util/format.css",Xe="0",Ye="0.5",Ze="0.6",taa="00",$e="000",uaa="0000000000000000",af="1",vaa="1.0",waa="1.9",bf="10",cf="3",df="9",ef=":",ff=":ss",gf=";",hf="<",xaa="\u00a0",yaa="",zaa="",jf="
",Aaa='',Caa="",Daa="",Eaa="",kf="",lf="=",mf=">",nf="?",Faa="@",of="A",Gaa="APPLET",Haa="AREA",Iaa="BASE", +pf="BR",qf="BUTTON",Jaa="COL",Kaa="COMMAND",rf="CSS1Compat",Laa="Can't combine significant digits and minimum fraction digits",sf="Column ",tf="Container is not defined",uf="DAY",vf="DIV",Maa="Date(",yf="December",zf="E",Naa="EMBED",Oaa="Etc/GMT",Af="F",Paa="FRAME",Bf="February",Qaa="G",Raa="GMT",Saa="H",Cf="HH:mm",Taa="HOUR",Df="HR",Uaa="IFRAME",Vaa="IMG",Ef="INPUT",Waa="ISINDEX",Xaa="JavaScript",Yaa="K",Zaa="KEYGEN",Ff="L",$aa="LINK",Gf="M",aba="META",Hf="MILLISECOND",bba="MINUTE",If="MMM d",Jf= +"MONTH",Kf="MSIE",cba="Moz",dba="MozOpacity",Lf="N",eba="NOFRAMES",fba="NOSCRIPT",Mf="November",Nf="O",gba="OBJECT",hba="PARAM",Of="Q",iba="Q yyyy",Pf="QUARTER",Qf="S",Rf="SCRIPT",jba="SECOND",Sf="SELECT",Tf="SOURCE",kba="STYLE",lba="SVG",Uf="Saturday",Vf="September",mba="Style",Wf="T",Xf="TEXTAREA",Yf="TL",Zf="TR",nba="TRACK",bg="Thursday",oba="Too many percent/permill",pba="Type mismatch. Value ",qba="UTC",rba="Uneven number of arguments",eg="W",sba="WBR",tba="WEEK",uba="Webkit",fg="Wednesday", +vba="Width",gg="YEAR",hg="Z",wba="[",xba="[object Array]",yba="[object Function]",zba="[object Window]",Aba="\\",Bba="\\$1",ig="\\\\",jg="\\s",Cba="\\u",Dba="\\x08",kg="]",Eba="]+",Fba="_bar_format_old_value",lg="_default_",mg="a",pg="absolute",Gba="alpha(opacity=",Hba="amp",qg="aria-",rg="array",sg="auto",tg="b",ug="background-color:",Iba="bar.groupWidth",vg="body",wg="boolean",Jba="borderBottom",Kba="borderBottomWidth",Lba="borderLeft",Mba="borderLeftWidth",Nba="borderRight",Oba="borderRightWidth", +Pba="borderTop",Qba="borderTopWidth",xg="both",yg="c",Rba="call",Sba="callee",Tba="class",Uba="className",Vba="clearMinutes",Wba="color:",zg="column",Xba="columnFilters[",Yba="compare",Ag="d",Zba="data-",Bg="date",Cg="datetime",$ba="decimalSymbol",aca="desc",Dg="direction",Eg="display",P="div",bca="document",Fg="f",Gg="false",Ig="filter",Jg="fixed",Kg="focus",cca="for",dca="formatType",eca="fractionDigits",Lg="full",Mg="function",Ng="g",fca="google-visualization-formatters-arrow-dr",gca="google-visualization-formatters-arrow-empty", +hca="google-visualization-formatters-arrow-ug",ica="google.charts.",jca="google.loader.GoogleApisBase",kca="google.maps.DirectionsService",lca="google.visualization.",mca="google.visualization.ModulePath",nca="google.visualization.NumberFormat",oca="google.visualization.Version",pca="groupingSymbol",qca="gt",Og="h",Pg="h:mm a",Qg="head",Rg="height",rca="hex",Sg="hidden",Tg="horizontal",Ug="href",Vg="html",Wg="https",Zg="inline",sca="innerText",$g="k",ah="left",bh="link",ch="long",tca="lt",dh="m", +uca="maps",eh="maxValue",fh="medium",gh="minValue",vca="ms",wca="named",xca="native code",yca="negativeColor",zca="negativeParens",Aca="new ",Q="none",hh="null",T="number",ih="o",jh="object",kh="on",lh="opacity",Bca="outerHTML",oh="overflow",Cca="paddingBottom",Dca="paddingLeft",Eca="paddingRight",Fca="paddingTop",ph="pattern",Gca="pixelHeight",Hca="pixelLeft",Ica="pixelWidth",qh="position",rh="prefix",U="px",Jca="quot",sh="r",th="relative",uh="rgb",vh="role",wh="rtl",xh="s",Kca="scaleFactor",yh= +"script",zh="selection",Lca="sensor=false",Ah="short",Bh="single",Ch="solid",Mca="sortColumns",Nca="sortColumns[",Oca="sourceIndex",Pca="splice",Dh="static",Eh="string",Fh="style",Qca="stylesheet",Gh="suffix",Rca="tabIndex",Sca="tabindex",Tca="text/css",Hh="text/javascript",Uca="textContent",Ih="time",Vca="timeZone",Jh="timeofday",Kh="transform",Lh="transparent",Mh="true",Nh="type",Oh="unselectable",Ph="v",Qh="value",Wca="valueType",Xca="var ",Yca="var _et_ = 1;",Rh="vertical",Sh="visible",Zca="visualization", +Th="w",Uh="white",Vh="width",Wh="y",Xh="z",$ca="zoomButtonsOrder",Yh="{",ada="{0}",bda="{1}",cda="|[",Zh="}",$h="\u00a0",dda="\u00a4",eda="\u2030",W,ai=ai||{},bi=this;function ci(a){return void 0!==a}function di(a,b,c){a=a[rc](Ue);c=c||bi;a[0]in c||!c[ad]||c[ad](Xca+a[0]);for(var d;a[J]&&(d=a[sb]());)!a[J]&&ci(b)?c[d]=b:c=c[d]?c[d]:c[d]={}}function ei(a,b){for(var c=a[rc](Ue),d=b||bi,e;e=c[sb]();)if(null!=d[e])d=d[e];else return null;return d}function fi(){} +function gi(a){a.Vb=function(){return a.bfa?a.bfa:a.bfa=new a}}function hi(a){var b=typeof a;if(b==jh)if(a){if(a instanceof ga)return rg;if(a instanceof ca)return b;var c=ca[K][kc][L](a);if(c==zba)return jh;if(c==xba||typeof a[J]==T&&"undefined"!=typeof a[le]&&"undefined"!=typeof a[lc]&&!a[lc](Pca))return rg;if(c==yba||"undefined"!=typeof a[L]&&"undefined"!=typeof a[lc]&&!a[lc](Rba))return Mg}else return hh;else if(b==Mg&&"undefined"==typeof a[L])return jh;return b} +function ii(a){return null===a}function ji(a){return null!=a}function ki(a){return hi(a)==rg}function li(a){var b=hi(a);return b==rg||b==jh&&typeof a[J]==T}function mi(a){return ni(a)&&typeof a[Jc]==Mg}function oi(a){return typeof a==Eh}function pi(a){return typeof a==wg}function qi(a){return typeof a==T}function ri(a){return hi(a)==Mg}function ni(a){var b=typeof a;return b==jh&&null!=a||b==Mg}function ti(a){return a[fda]||(a[fda]=++gda)}var fda="closure_uid_"+(1E9*h[Hc]()>>>0),gda=0; +function hda(a,b,c){return a[L][Sc](a[ac],arguments)}function ida(a,b,c){if(!a)throw m();if(2/g,qda=/"/g,rda=/'/g,sda=/\x00/g,tda=/[\x00&<>"']/;function uda(a){return Fi(a,Ee)?bca in bi?vda(a):wda(a):a} +function vda(a){var b={"&":Ee,"<":hf,">":mf,""":ue},c;c=bi[Ld][Sb](P);return a[wb](xda,function(a,e){var f=b[a];if(f)return f;if(e[Cb](0)==we){var g=ha(Xe+e[hc](1));fa(g)||(f=String[vd](g))}f||(Xa(c,a+se),f=c[Ub][bd][jd](0,-1));return b[a]=f})}function wda(a){return a[wb](/&([^;]+);/g,function(a,c){switch(c){case Hba:return Ee;case tca:return hf;case qca:return mf;case Jca:return ue;default:if(c[Cb](0)==we){var d=ha(Xe+c[hc](1));if(!fa(d))return String[vd](d)}return a}})}var xda=/&([^;\s<&]+);?/g; +function Gi(a,b){a[J]>b&&(a=a[ee](0,b-3)+Ve);return a}function Fi(a,b){return-1!=a[qd](b)}function Hi(a,b){return ga(b+1)[me](a)}function Ii(a,b){var c=ci(void 0)?a[xb](void 0):String(a),d=c[qd](Ue);-1==d&&(d=c[J]);return Hi(Xe,h.max(0,b-d))+c}function Bi(a){return null==a?O:String(a)}function yda(a){return ga[K][me][L](arguments,O)} +function Ji(a,b){for(var c=0,d=Di(String(a))[rc](Ue),e=Di(String(b))[rc](Ue),f=h.max(d[J],e[J]),g=0;0==c&&gb?1:0}function Li(a){for(var b=0,c=0;cc?h.max(0,a[J]+c):c;if(oi(a))return oi(b)&&1==b[J]?a[qd](b,c):-1;for(;cc&&(c=h.max(0,a[J]+c));if(oi(a))return oi(b)&&1==b[J]?a[Wd](b,c):-1;for(;0<=c;c--)if(c in a&&a[c]===b)return c;return-1},Z=Pi[Vb]?function(a,b,c){Pi[Vb][L](a,b,c)}:function(a,b,c){for(var d= +a[J],e=oi(a)?a[rc](O):a,f=0;fb?null:oi(a)?a[Cb](b):a[b]} +function Yi(a,b,c){for(var d=a[J],e=oi(a)?a[rc](O):a,f=0;fc?null:oi(a)?a[Cb](c):a[c]}function $i(a,b){return 0<=Qi(a,b)}function aj(a){return 0==a[J]}function bj(a){if(!ki(a))for(var b=a[J]-1;0<=b;b--)delete a[b];kb(a,0)}function cj(a,b,c){dj(a,c,0,b)} +function ej(a,b){var c=Qi(a,b),d;(d=0<=c)&&Pi[le][L](a,c,1);return d}function fj(a){return Pi[Bb][Sc](Pi,arguments)}function gj(a){var b=a[J];if(0=arguments[J]?Pi[jd][L](a,b):Pi[jd][L](a,b,c)}function Dda(a){for(var b={},c=0,d=0;d>1,n;n=c?b[L](e,a[l],l,a):b(d,a[l]);0b?1:a1*(a-0))return[];for(var c=0;c=f[J])return b;d[C](f[c])}b[C](d)}};function xj(a){return function(){return a}}var Jda=xj(!0),yj=xj(null);function zj(a){return a}function Kda(a){var b;b=b||0;return function(){return a[Sc](this,ga[K][jd][L](arguments,0,b))}}function Lda(){return function(){return!ii[Sc](this,arguments)}};function Aj(a,b,c){return h.min(h.max(a,b),c)}function Bj(a,b){var c=a%b;return 0>c*b?c+b:c}function Cj(a,b,c){return a+c*(b-a)}function Dj(a){return a*h.PI/180}function Ej(a,b){return b*h.cos(Dj(a))}function Fj(a,b){return b*h.sin(Dj(a))}function Gj(a,b,c,d){return Bj(180*h[xd](d-b,c-a)/h.PI,360)}function Hj(a){return 0==a?0:0>a?-1:1}function Ij(a){return Ui(arguments,function(a,c){return a+c},0)}function Jj(a){return Ij[Sc](null,arguments)/arguments[J]}function Kj(a){return na(a)&&0==a%1} +function Lj(a){return na(a)&&!fa(a)};var Mj="StopIteration"in bi?bi.StopIteration:m("StopIteration");function Nj(){}Da(Nj[K],function(){throw Mj;});Nj[K].at=function(){return this};function Pj(a){if(a instanceof Nj)return a;if(typeof a.at==Mg)return a.at(!1);if(li(a)){var b=0,c=new Nj;Da(c,function(){for(;;){if(b>=a[J])throw Mj;if(b in a)return a[b++];b++}});return c}throw m("Not implemented");} +function Qj(a,b,c){if(li(a))try{Z(a,b,c)}catch(d){if(d!==Mj)throw d;}else{a=Pj(a);try{for(;;)b[L](c,a[qc](),void 0,a)}catch(e){if(e!==Mj)throw e;}}}function Rj(a,b,c){var d=0,e=a,f=c||1;1=e||0>f&&d<=e)throw Mj;var a=d;d+=f;return a});return g}function Mda(a,b,c){var d=Pj(a);a=new Nj;Da(a,function(){var a=d[qc]();return b[L](c,a,void 0,d)});return a} +function Nda(a){var b=Pj(arguments),c=new Nj,d=null;Da(c,function(){for(;;){if(null==d){var a=b[qc]();d=Pj(a)}try{return d[qc]()}catch(c){if(c!==Mj)throw c;d=null}}});return c}function Oda(a){if(li(a))return gj(a);a=Pj(a);var b=[];Qj(a,function(a){b[C](a)});return b}function Pda(a){try{return Pj(a)[qc]()}catch(b){if(b!=Mj)throw b;return null}};function Sj(a,b,c){for(var d in a)b[L](c,a[d],d,a)}function Vj(a,b,c){var d={},e;for(e in a)d[e]=b[L](c,a[e],e,a);return d}function Wj(a,b){for(var c in a)if(b[L](void 0,a[c],c,a))return!0;return!1}function Xj(a,b,c){for(var d in a)if(!b[L](c,a[d],d,a))return!1;return!0}function Qda(a){var b=0,c;for(c in a)b++;return b}function Yj(a){for(var b in a)return a[b]}function Zj(a){var b=[],c=0,d;for(d in a)b[c++]=a[d];return b}function ak(a){var b=[],c=0,d;for(d in a)b[c++]=d;return b} +function bk(a,b){for(var c in a)if(a[c]==b)return!0;return!1}function ck(a){for(var b in a)return!1;return!0}function dk(a,b){b in a&&delete a[b]}function ek(a,b,c){if(b in a)throw m('The object already contains the key "'+b+ue);a[b]=c}function fk(a,b,c){return b in a?a[b]:a[b]=c}function gk(a){var b={},c;for(c in a)b[c]=a[c];return b}function hk(a){var b=hi(a);if(b==jh||b==rg){if(a[Bc])return a[Bc]();var b=b==rg?[]:{},c;for(c in a)b[c]=hk(a[c]);return b}return a} +function ik(a){var b={},c;for(c in a)b[a[c]]=c;return b}var Rda="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function jk(a,b){for(var c,d,e=1;e2*this.Tb&&mk(this),!0):!1}); +function mk(a){if(a.Tb!=a.ne[J]){for(var b=0,c=0;b=c[J])throw Mj;var g=c[b++];return a?g:d[g]}});return g}; +function nk(a,b){return ca[K][zc][L](a,b)};function Uda(a){return typeof a.dc==Mg?a.dc():li(a)||oi(a)?a[J]:Qda(a)}function ok(a){if(typeof a.Ua==Mg)return a.Ua();if(oi(a))return a[rc](O);if(li(a)){for(var b=[],c=a[J],d=0;db)return!1;!(a instanceof sk)&&5la(a))?String(b):a}(),dea={};function Ik(a){return dea[a]||(dea[a]=0<=Ji(Hk,a))}function Jk(a){return Ak&&eea>=a}var fea=bi[Ld],eea=fea&&Ak?cea()||(fea[be]==rf?ka(Hk,10):5):void 0;function Kk(a,b){this.x=ci(a)?a:0;this.y=ci(b)?b:0}W=Kk[K];Ia(W,function(){return new Kk(this.x,this.y)});function Lk(a,b){return a==b?!0:a&&b?a.x==b.x&&a.y==b.y:!1}function Mk(a,b){var c=a.x-b.x,d=a.y-b.y;return h[zd](c*c+d*d)}function Nk(a,b){return new Kk(a.x-b.x,a.y-b.y)}function Ok(a,b){return new Kk(a.x+b.x,a.y+b.y)}ra(W,function(){this.x=h[yb](this.x);this.y=h[yb](this.y);return this});sa(W,function(){this.x=h[t](this.x);this.y=h[t](this.y);return this}); +Wa(W,function(){this.x=h[E](this.x);this.y=h[E](this.y);return this});eb(W,function(a,b){a instanceof Kk?(this.x+=a.x,this.y+=a.y):(this.x+=a,qi(b)&&(this.y+=b));return this});Na(W,function(a,b){var c=qi(b)?b:a;this.x*=a;this.y*=c;return this});function Pk(a,b){pa(this,a);Sa(this,b)}function Qk(a,b){return a==b?!0:a&&b?a[r]==b[r]&&a[A]==b[A]:!1}W=Pk[K];Ia(W,function(){return new Pk(this[r],this[A])});function Rk(a){return h.min(a[r],a[A])}W.area=function(){return this[r]*this[A]};Ua(W,function(){return!this.area()});ra(W,function(){pa(this,h[yb](this[r]));Sa(this,h[yb](this[A]));return this});sa(W,function(){pa(this,h[t](this[r]));Sa(this,h[t](this[A]));return this});Wa(W,function(){pa(this,h[E](this[r]));Sa(this,h[E](this[A]));return this}); +Na(W,function(a,b){var c=qi(b)?b:a;pa(this,this[r]*a);Sa(this,this[A]*c);return this});var gea=!Ak||Jk(9),hea=!Bk&&!Ak||Ak&&Jk(9)||Bk&&Ik("1.9.1"),iea=Ak&&!Ik(df),jea=Ak||zk||Ek;function Sk(a){return a?new Tk(Uk(a)):kda||(kda=new Tk)}function Vk(a){return oi(a)?ea[md](a):a}function Wk(a,b,c){return Xk(ea,a,b,c)}function Yk(a,b){var c=b||ea;return c[Yd]&&c[Rb]?c[Yd](Ue+a):Xk(ea,Pe,a,b)}function Zk(a,b){var c=b||ea,d=null;return(d=c[Yd]&&c[Rb]?c[Rb](Ue+a):Xk(ea,Pe,a,b)[0])||null} +function Xk(a,b,c,d){a=d||a;b=b&&b!=Pe?b[ke]():O;if(a[Yd]&&a[Rb]&&(b||c))return a[Yd](b+(c?Ue+c:O));if(c&&a.getElementsByClassName){a=a.getElementsByClassName(c);if(b){d={};for(var e=0,f=0,g;g=a[f];f++)b==g[sd]&&(d[e++]=g);kb(d,e);return d}return a}a=a[fc](b||Pe);if(c){d={};for(f=e=0;g=a[f];f++)b=g[Jd],typeof b[rc]==Mg&&$i(b[rc](/\s+/),c)&&(d[e++]=g);kb(d,e);return d}return a} +function $k(a,b){Sj(b,function(b,d){d==Fh?ab(a[x],b):d==Tba?mb(a,b):d==cca?a.htmlFor=b:d in kea?a[w](kea[d],b):yi(d,qg)||yi(d,Zba)?a[w](d,b):a[d]=b})}var kea={cellpadding:"cellPadding",cellspacing:"cellSpacing",colspan:"colSpan",frameborder:"frameBorder",height:Rg,maxlength:"maxLength",role:vh,rowspan:"rowSpan",type:Nh,usemap:"useMap",valign:"vAlign",width:Vh};function al(a){a=a[Ld];a=a[be]==rf?a[gc]:a[Td];return new Pk(a[Kd],a[$d])}function lea(a){return Ek||a[be]!=rf?a[Td]||a[gc]:a[gc]} +function bl(a){return a?a.parentWindow||a[Bd]:ba}function cl(a,b,c){return mea(ea,arguments)}function mea(a,b){var c=b[0],d=b[1];if(!gea&&d&&(d[Cd]||d[H])){c=[hf,c];d[Cd]&&c[C](caa,Ei(d[Cd]),ue);if(d[H]){c[C](daa,Ei(d[H]),ue);var e={};jk(e,d);delete e[H];d=e}c[C](mf);c=c[me](O)}c=a[Sb](c);d&&(oi(d)?mb(c,d):ki(d)?mb(c,d[me](se)):$k(c,d));2a} +function xl(a){if(iea&&sca in a)a=a.innerText[wb](/(\r\n|\r|\n)/g,re);else{var b=[];yl(a,b,!0);a=b[me](O)}a=a[wb](/ \xAD /g,se)[wb](/\xAD/g,O);a=a[wb](/\u200B/g,O);iea||(a=a[wb](/ +/g,se));a!=se&&(a=a[wb](/^\s*/,O));return a}function zl(a){var b=[];yl(a,b,!1);return b[me](O)}function yl(a,b,c){if(!(a[sd]in xea))if(3==a[kd])c?b[C](String(a[bd])[wb](/(\r\n|\r|\n)/g,O)):b[C](a[bd]);else if(a[sd]in yea)b[C](yea[a[sd]]);else for(a=a[Ub];a;)yl(a,b,c),a=a[dc]} +function oea(a){if(a&&typeof a[J]==T){if(ni(a))return typeof a[pd]==Mg||typeof a[pd]==Eh;if(ri(a))return typeof a[pd]==Mg}return!1}function zea(a){return Al(a,function(a){return a[sd]==lba&&!0},!0)}function Al(a,b,c){c||(a=a[je]);for(c=0;a;){if(b(a))return a;a=a[je];c++}return null}function Bl(a){try{return a&&a[qb]}catch(b){}return null}function Tk(a){this.qf=a||bi[Ld]||ea}W=Tk[K];W.ia=Sk;W.gc=function(){return this.qf};W.a=function(a){return oi(a)?this.qf[md](a):a}; +W.St=function(a,b){return Zk(a,b||this.qf)};W.f8=function(a,b){return Zk(a,b||this.qf)};W.jw=$k;W.j=function(a,b,c){return mea(this.qf,arguments)};W.createElement=function(a){return this.qf[Sb](a)};W.createTextNode=function(a){return this.qf[Db](String(a))};W.ega=function(a,b,c){var d=this.qf,e=!!c;c=[kf];for(var f=0;f=this[G]&&a[cd]<=this[cd]&&a.top>=this.top&&a[Mc]<=this[Mc]:a.x>=this[G]&&a.x<=this[cd]&&a.y>=this.top&&a.y<=this[Mc]:!1}); +W.expand=function(a,b,c,d){ni(a)?(this.top-=a.top,Ta(this,this[cd]+a[cd]),Ma(this,this[Mc]+a[Mc]),Za(this,this[G]-a[G])):(this.top-=a,Ta(this,this[cd]+b),Ma(this,this[Mc]+c),Za(this,this[G]-d));return this};function Gl(a,b){Za(a,h.min(a[G],b[G]));a.top=h.min(a.top,b.top);Ta(a,h.max(a[cd],b[cd]));Ma(a,h.max(a[Mc],b[Mc]))}function Hl(a,b){return a[G]<=b[cd]&&b[G]<=a[cd]&&a.top<=b[Mc]&&b.top<=a[Mc]} +ra(W,function(){this.top=h[yb](this.top);Ta(this,h[yb](this[cd]));Ma(this,h[yb](this[Mc]));Za(this,h[yb](this[G]));return this});sa(W,function(){this.top=h[t](this.top);Ta(this,h[t](this[cd]));Ma(this,h[t](this[Mc]));Za(this,h[t](this[G]));return this});Wa(W,function(){this.top=h[E](this.top);Ta(this,h[E](this[cd]));Ma(this,h[E](this[Mc]));Za(this,h[E](this[G]));return this}); +eb(W,function(a,b){a instanceof Kk?(Za(this,this[G]+a.x),Ta(this,this[cd]+a.x),this.top+=a.y,Ma(this,this[Mc]+a.y)):(Za(this,this[G]+a),Ta(this,this[cd]+a),qi(b)&&(this.top+=b,Ma(this,this[Mc]+b)));return this});Na(W,function(a,b){var c=qi(b)?b:a;Za(this,this[G]*a);Ta(this,this[cd]*a);this.top*=c;Ma(this,this[Mc]*c);return this});function Il(a,b,c,d){Za(this,a);this.top=b;pa(this,c);Sa(this,d)}W=Il[K];Ia(W,function(){return new Il(this[G],this.top,this[r],this[A])});function Jl(a){return new Fl(a.top,a[G]+a[r],a.top+a[A],a[G])}function Kl(a){return new Il(a[G],a.top,a[cd]-a[G],a[Mc]-a.top)}function Ll(a,b){return a==b?!0:a&&b?a[G]==b[G]&&a[r]==b[r]&&a.top==b.top&&a[A]==b[A]:!1} +W.Nz=function(a){var b=h.max(this[G],a[G]),c=h.min(this[G]+this[r],a[G]+a[r]);if(b<=c){var d=h.max(this.top,a.top);a=h.min(this.top+this[A],a.top+a[A]);if(d<=a)return Za(this,b),this.top=d,pa(this,c-b),Sa(this,a-d),!0}return!1};function Cea(a,b){var c=h.max(a[G],b[G]),d=h.min(a[G]+a[r],b[G]+b[r]);if(c<=d){var e=h.max(a.top,b.top),f=h.min(a.top+a[A],b.top+b[A]);if(e<=f)return new Il(c,e,d-c,f-e)}return null} +W.im=function(a){var b=Cea(this,a);if(b&&b[A]&&b[r]){var b=[],c=this.top,d=this[A],e=this[G]+this[r],f=this.top+this[A],g=a[G]+a[r],k=a.top+a[A];a.top>this.top&&(b[C](new Il(this[G],this.top,this[r],a.top-this.top)),c=a.top,d-=a.top-this.top);kthis[G]&&b[C](new Il(this[G],c,a[G]-this[G],d));g=a[G]+a[r]&&this.top<=a.top&&this.top+this[A]>=a.top+a[A]:a.x>=this[G]&&a.x<=this[G]+this[r]&&a.y>=this.top&&a.y<=this.top+this[A]});function Dea(a,b){var c=b.xa[Kd]||a[Tb]>a[$d]||c==Jg||c==pg||c==th))return a;return null} +function Vl(a){for(var b=new Fl(0,da,da,0),c=Sk(a),d=c.gc()[Td],e=c.gc()[gc],f=lea(c.qf);a=Hea(a);)if(!(Ak&&0==a[Kd]||Ek&&0==a[$d]&&a==d)&&a!=d&&a!=e&&Ol(a,oh)!=Sh){var g=Wl(a),k;k=a;if(Bk&&!Ik(waa)){var l=la(Nl(k,Mba));if(Xl(k))var n=k[Ab]-k[Kd]-l-la(Nl(k,Oba)),l=l+n;k=new Kk(l,la(Nl(k,Qba)))}else k=new Kk(k[Wb],k[Xb]);g.x+=k.x;g.y+=k.y;b.top=h.max(b.top,g.y);Ta(b,h.min(b[cd],g.x+a[Kd]));Ma(b,h.min(b[Mc],g.y+a[$d]));Za(b,h.max(b[G],g.x))}d=f[Lc];f=f[Gd];Za(b,h.max(b[G],d));b.top=h.max(b.top,f);c= +c.QB();c=al(c||ba);Ta(b,h.min(b[cd],d+c[r]));Ma(b,h.min(b[Mc],f+c[A]));return 0<=b.top&&0<=b[G]&&b[Mc]>b.top&&b[cd]>b[G]?b:null} +function Wl(a){var b,c=Uk(a),d=Ol(a,qh),e=Bk&&c[Ob]&&!a[rb]&&d==pg&&(b=c[Ob](a))&&(0>b[Ib]||0>b[Kb]),f=new Kk(0,0),g=Tl(c);if(a==g)return f;if(a[rb])b=Ul(a),a=El(Sk(c)),f.x=b[G]+a.x,f.y=b.top+a.y;else if(c[Ob]&&!e)b=c[Ob](a),a=c[Ob](g),f.x=b[Ib]-a[Ib],f.y=b[Kb]-a[Kb];else{b=a;do{f.x+=b[Sd];f.y+=b[Yc];b!=a&&(f.x+=b[Wb]||0,f.y+=b[Xb]||0);if(Ek&&Pl(b)==Jg){f.x+=c[Td][Lc];f.y+=c[Td][Gd];break}b=b[tc]}while(b&&b!=a);if(zk||Ek&&d==pg)f.y-=c[Td][Yc];for(b=a;(b=Hea(b))&&b!=c[Td]&&b!=g;)f.x-=b[Lc],zk&&b[Tc]== +Zf||(f.y-=b[Gd])}return f}function Yl(a,b){var c=Zl(a),d=Zl(b);return new Kk(c.x-d.x,c.y-d.y)}function Iea(a){var b;if(a[rb])b=Ul(a),b=new Kk(b[G],b.top);else{b=El(Sk(a));var c=Wl(a);b=new Kk(c.x-b.x,c.y-b.y)}if(Bk&&!Ik(12)){i:{c=Ni(Kh);if(void 0===a[x][c]&&(c=Aea()+Ada(c),void 0!==a[x][c])){c=Bea()+maa;break i}c=Kh}a=(a=Ol(a,c)||Ol(a,Kh))?(a=a[Lb](Jea))?new Kk(la(a[1]),la(a[2])):new Kk(0,0):new Kk(0,0);a=Ok(b,a)}else a=b;return a} +function Zl(a){if(1==a[kd])return Iea(a);var b=ri(a.vsa),c=a;a[Hb]?c=a[Hb][0]:b&&a.Qa[Hb]&&(c=a.Qa[Hb][0]);return new Kk(c[Dd],c[Ed])}function $l(a,b,c){if(b instanceof Pk)c=b[A],b=b[r];else if(void 0==c)throw m("missing height argument");am(a,b);cm(a,c)}function Rl(a,b){typeof a==T&&(a=(b?h[E](a):a)+U);return a}function cm(a,b){Sa(a[x],Rl(b,!0))}function am(a,b){pa(a[x],Rl(b,!0))}function dm(a){return em(a)} +function em(a){var b=Kea;if(Ol(a,Eg)!=Q)return b(a);var c=a[x],d=c[Xc],e=c.visibility,f=c[mc];ib(c,Sg);Ba(c,pg);Ra(c,Zg);a=b(a);Ra(c,d);Ba(c,f);ib(c,e);return a}function Kea(a){var b=a[Ab],c=a[Zc],d=Ek&&!b&&!c;return ci(b)&&!d||!a[rb]?new Pk(b,c):(a=Ul(a),new Pk(a[cd]-a[G],a[Mc]-a.top))}function fm(a){var b=Wl(a);a=em(a);return new Il(b.x,b.y,a[r],a[A])}function gm(a,b){var c=a[x];lh in c?nb(c,b):dba in c?c.MozOpacity=b:Ig in c&&(c.filter=b===O?O:Gba+100*b+Oe)}function hm(a,b){Ra(a[x],b?O:Q)} +function im(a){var b=Sk(void 0),c=null,c=b.gc();if(Ak&&c.createStyleSheet)b=c=c.createStyleSheet(),Ak&&ci(b.cssText)?ab(b,a):Xa(b,a);else{var d=Xk(b.qf,Qg,void 0,void 0)[0];d||(c=Xk(b.qf,vg,void 0,void 0)[0],d=b.j(Qg),c[je][Fb](d,c));var e=c=b.j(Fh);Ak&&ci(e.cssText)?ab(e,a):Xa(e,a);b[q](d,c)}return c}function Xl(a){return wh==Ol(a,Dg)}var jm=Bk?"MozUserSelect":Ek?"WebkitUserSelect":null; +function km(a,b,c){c=c?null:a[fc](Pe);if(jm){if(b=b?Q:O,a[x][jm]=b,c){a=0;for(var d;d=c[a];a++)d[x][jm]=b}}else if(Ak||zk)if(b=b?kh:O,a[w](Oh,b),c)for(a=0;d=c[a];a++)d[w](Oh,b)}function lm(a){var b=Uk(a),c=Ak&&a[de];if(c&&Dl(Sk(b))&&c[r]!=sg&&c[A]!=sg&&!c.boxSizing)return b=mm(a,c[r],Vh,Ica),a=mm(a,c[A],Rg,Gca),new Pk(b,a);c=new Pk(a[Ab],a[Zc]);b=nm(a);a=om(a);return new Pk(c[r]-a[G]-b[G]-b[cd]-a[cd],c[A]-a.top-b.top-b[Mc]-a[Mc])} +function mm(a,b,c,d){if(/^\d+px?$/[hd](b))return ka(b,10);var e=a[x][c],f=a.runtimeStyle[c];a.runtimeStyle[c]=a[de][c];a[x][c]=b;b=a[x][d];a[x][c]=e;a.runtimeStyle[c]=f;return b}function pm(a,b){var c=a[de]?a[de][b]:null;return c?mm(a,c,ah,Hca):0}function nm(a){if(Ak){var b=pm(a,Dca),c=pm(a,Eca),d=pm(a,Fca);a=pm(a,Cca);return new Fl(d,c,a,b)}b=Nl(a,Dca);c=Nl(a,Eca);d=Nl(a,Fca);a=Nl(a,Cca);return new Fl(la(d),la(c),la(a),la(b))}var Lea={thin:2,medium:4,thick:6}; +function qm(a,b){if((a[de]?a[de][b+mba]:null)==Q)return 0;var c=a[de]?a[de][b+vba]:null;return c in Lea?Lea[c]:mm(a,c,ah,Hca)}function om(a){if(Ak&&!Jk(9)){var b=qm(a,Lba),c=qm(a,Nba),d=qm(a,Pba);a=qm(a,Jba);return new Fl(d,c,a,b)}b=Nl(a,Mba);c=Nl(a,Oba);d=Nl(a,Qba);a=Nl(a,Kba);return new Fl(la(d),la(c),la(a),la(b))}function rm(a){var b={};Z(a[rc](/\s*;\s*/),function(a){a=a[rc](/\s*:\s*/);2==a[J]&&(b[Ni(a[0][pe]())]=a[1])});return b}var Jea=/matrix\([0-9\.\-]+, [0-9\.\-]+, [0-9\.\-]+, [0-9\.\-]+, ([0-9\.\-]+)p?x?, ([0-9\.\-]+)p?x?\)/;var Mea=/^(?:([^:/?#.]+):)?(?:\/\/(?:([^/?#]*)@)?([^/#?]*?)(?::([0-9]+))?(?=[/#?]|$))?([^?#]+)?(?:\?([^#]*))?(?:#(.*))?$/;function sm(a){if(tm){tm=!1;var b=bi[xc];if(b){var c=b[Nc];if(c&&(c=um(c))&&c!=b.hostname)throw tm=!0,m();}}return a[Lb](Mea)}var tm=Ek;function um(a){return(a=sm(a)[3]||null)&&oa(a)}function vm(a){return(a=sm(a)[5]||null)&&oa(a)} +function wm(a,b,c,d){for(var e=c[J];0<=(b=a[qd](c,b))&&bd)return null;var e=a[qd](Ee,d);if(0>e||e>c)e=c;d+=b[J]+1;return oa(a[hc](d,e-d)[wb](/\+/g,se))}var Nea=/[?&]($|#)/;function zm(a,b){for(var c=a[Cc](xm),d=0,e,f=[];0<=(e=wm(a,d,b,c));)f[C](a[ee](d,e)),d=h.min(a[qd](Ee,e)+1||c,c);f[C](a[hc](d));return f[me](O)[wb](Nea,Ce)} +function Am(a,b,c){a=[zm(a,b),Ee,b];null!=c&&a[C](lf,aa(String(c)));a[1]&&(c=a[0],b=c[qd](we),0<=b&&(a[C](c[hc](b)),a[0]=c=c[hc](0,b)),b=c[qd](nf),0>b?a[1]=nf:b==c[J]-1&&(a[1]=void 0));return a[me](O)};var Bm={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:xe,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:ye,green:"#008000",greenyellow:"#adff2f",grey:ye,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:Ae,whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};function Cm(a){var b={};a=String(a);var c=a[Cb](0)==we?a:we+a;if(Dm[hd](c))return b.od=Em(c),cb(b,rca),b;c=Oea(a);if(c[J])return b.od=Fm(c),cb(b,uh),b;if(Bm&&(c=Bm[a[pe]()]))return b.od=c,cb(b,wca),b;throw m(a+" is not a valid color string");}function Gm(a){return!!(Dm[hd](a[Cb](0)==we?a:we+a)||Oea(a)[J]||Bm&&Bm[a[pe]()])}var Pea=/#(.)(.)(.)/;function Em(a){if(!Dm[hd](a))throw m(Me+a+"' is not a valid hex color");4==a[J]&&(a=a[wb](Pea,eaa));return a[pe]()} +function Hm(a){a=Em(a);return[ka(a[hc](1,2),16),ka(a[hc](3,2),16),ka(a[hc](5,2),16)]}function Im(a,b,c){a=ha(a);b=ha(b);c=ha(c);if(fa(a)||0>a||255b||255c||255=k?(d-e)/(2*k):(d-e)/(2-2*k));return[h[E](f+360)%360,g,k]}function Km(a,b,c){0>c?c+=1:16*c?a+6*(b-a)*c:1>2*c?b:2>3*c?a+(b-a)*(2/3-c)*6:a} +function Rea(a){var b=a[1],c=a[2],d=0,e=0,f=0;a=a[0]/360;if(0==b)d=e=f=255*c;else var g=f=0,g=.5>c?c*(1+b):c+b-b*c,f=2*c-g,d=255*Km(f,g,a+1/3),e=255*Km(f,g,a),f=255*Km(f,g,a-1/3);return[h[E](d),h[E](e),h[E](f)]}var Dm=/^#(?:[0-9a-f]{3}){1,2}$/i,Sea=/^(?:rgb)?\((0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2}),\s?(0|[1-9]\d{0,2})\)$/i;function Oea(a){var b=a[Lb](Sea);if(b){a=ha(b[1]);var c=ha(b[2]),b=ha(b[3]);if(0<=a&&255>=a&&0<=c&&255>=c&&0<=b&&255>=b)return[a,c,b]}return[]} +function Jm(a){return 1==a[J]?Xe+a:a}function Lm(a,b,c){c=Aj(c,0,1);return[h[E](c*a[0]+(1-c)*b[0]),h[E](c*a[1]+(1-c)*b[1]),h[E](c*a[2]+(1-c)*b[2])]}function Mm(a,b){return Lm([0,0,0],a,b)}function Nm(a,b){return Lm([255,255,255],a,b)}function Om(a,b){for(var c=[],d=0;d=b};function Tm(a,b){a&&(a.logicalname=b)}function Vea(a){return(a=Al(a,function(a){return null!=a.logicalname},!0))?a.logicalname:lg};function Um(a){return a==Q||a==O||a==Lh?Q:Cm(a).od}function Vm(a){if(a==Q)return Q;a=Hm(a);a=h[E]((a[0]+a[1]+a[2])/3);return Im(a,a,a)}function Wea(a){a=gk(a);null==a[Id]&&jb(a,!0);return a}function Xea(a,b){var c=a.j(b[Cd],b.Sc);a.jw(c,{style:b[x]});if(null!=b[zb]){var d=ki(b[zb])?b[zb]:[b[zb]];Z(d,function(b){if(oi(b))a[q](c,a[Db](b));else b=oi(b[zb])&&b.Fna?Cl(a,b[zb]):Xea(a,b),a[q](c,b)})}null!=b.id&&Tm(c,b.id);return c};function Wm(a,b){a=a||{};if(2==arguments[J]){var c=arguments[1],d;for(d in c)if(ki(c[d]))a[d]=gj(c[d]);else if(typeof a[d]===jh&&null!=a[d])a[d]=Wm(a[d],c[d]);else if(typeof c[d]===jh&&null!=c[d])a[d]=Wm({},c[d]);else if(null==a[d]||null!=c[d])a[d]=c[d]}else if(2a.end?b:a?a.end:null;return null!=d&&null!=a?new Pm(d,a):null}function Zm(a){if(0==a[J])return null;for(var b=a[0][Bc](),c=1;ca&&b[wd](b[Jc]()-1900);return b}W=wn[K];W.Qea=tn.FIRSTDAYOFWEEK;W.Rea=tn.FIRSTWEEKCUTOFFDAY;Ia(W,function(){var a=new wn(this.tb);a.Qea=this.Qea;a.Rea=this.Rea;return a});W.getFullYear=function(){return this.tb[Jc]()};W.getYear=function(){return this[Jc]()};W.getMonth=function(){return this.tb[Hd]()};W.getDate=function(){return this.tb[Eb]()};ya(W,function(){return this.tb[ec]()});W.getDay=function(){return this.tb[nc]()};W.getUTCFullYear=function(){return this.tb[Mb]()}; +W.getUTCMonth=function(){return this.tb[Ec]()};W.getUTCDate=function(){return this.tb[Nd]()};W.getUTCHours=function(){return this.tb[ie]()};W.getUTCMinutes=function(){return this.tb[he]()};W.getTimezoneOffset=function(){return this.tb[qe]()};W.set=function(a){this.tb=new Date(a[Jc](),a[Hd](),a[Eb]())};W.setFullYear=function(a){this.tb[wd](a)};W.setMonth=function(a){this.tb[ud](a)};W.setDate=function(a){this.tb[Fd](a)};W.setTime=function(a){this.tb[Oc](a)};W.setUTCFullYear=function(a){this.tb.setUTCFullYear(a)}; +W.setUTCMonth=function(a){this.tb[Zd](a)};W.setUTCDate=function(a){this.tb.setUTCDate(a)};W.add=function(a){if(a.years||a.months){var b=this[Hd]()+a.months+12*a.years,c=this[Fc]()+h[t](b/12),b=b%12;0>b&&(b+=12);var d=h.min(vn(c,b),this[Eb]());this[Fd](1);this[wd](c);this[ud](b);this[Fd](d)}a.days&&(a=new Date((new Date(this[Fc](),this[Hd](),this[Eb](),12))[ec]()+864E5*a.days),this[Fd](1),this[wd](a[Jc]()),this[ud](a[Hd]()),this[Fd](a[Eb]()),xn(this,a[Eb]()))}; +W.awa=function(){return[this[Jc](),Ii(this[Hd]()+1,2),Ii(this[Eb](),2)][me](O)+O};$a(W,function(a){return!(!a||this[Fc]()!=a[Fc]()||this[Hd]()!=a[Hd]()||this[Eb]()!=a[Eb]())});Aa(W,function(){return this.awa()});function xn(a,b){a[Eb]()!=b&&a.tb.setUTCHours(a.tb[ie]()+(a[Eb]()=(e||30)&&(!d||b<=d))||a&&(b=a[$d],b>=(e||30)&&(!d||b<=d))?b:c||200}function sfa(a){var b=tfa,c=a&&a.colors;c&&0!=c[J]||(c=(a=a&&a[F])?[a]:b);return c} +function mo(){var a=ei(mca);if(null!=a)return a;a=ei(jca);null!=a||(a=paa);var b=ei(oca);null!=b||(b=vaa);return a+qaa+b}function ufa(){if(0==ea[fc](Qg)[J]){var a=ea[fc](Vg)[0],b=ea[fc](vg)[0],c=ea[Sb](Qg);a[Fb](c,b)}return ea[fc](Qg)[0]}function no(a){a=mo()+a;for(var b=ea[fc]($aa),c=0;cc?hca:gca;a[Ic](d,b,Uba,f)}});function vo(a){a=String(a);if(/^\s*$/[hd](a)?0:/^[\],:{}\s\u2028\u2029]*$/[hd](a[wb](/\\["\\\/bfnrtu]/g,Faa)[wb](/"[^"\\\n\r\u2028\u2029\x00-\x08\x0a-\x1f]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,kg)[wb](/(?:^|:|,)(?:[\s\u2028\u2029]*\[)+/g,O)))try{return eval(Ne+a+Oe)}catch(b){}throw m("Invalid JSON string: "+a);}function zo(a){return eval(Ne+a+Oe)}function dn(a){return(new yfa(void 0)).rg(a)}function yfa(a){this.WU=a}yfa[K].rg=function(a){var b=[];Ao(this,a,b);return b[me](O)}; +function Ao(a,b,c){switch(typeof b){case Eh:zfa(b,c);break;case T:c[C](na(b)&&!fa(b)?b:hh);break;case wg:c[C](b);break;case "undefined":c[C](hh);break;case jh:if(null==b){c[C](hh);break}if(ki(b)){var d=b[J];c[C](wba);for(var e=O,f=0;fb?e+=$e:256>b?e+=taa:4096>b&&(e+=Xe);return Bo[a]=e+b[kc](16)}),ue)};function Co(a){return dn(Do(a,Eo))}function Fo(a){vo(a);return Bfa(a)}function Bfa(a){a=Go(a);return eval(Ne+a+Oe)}function Do(a,b){a=b(a);var c=hi(a);if(c==jh||c==rg){var c=c==rg?[]:{},d;for(d in a)if(a[zc](d)){var e=Do(a[d],b);ci(e)&&(c[d]=e)}}else c=a;return c}function Go(a){return a[wb](/"(Date\([\d,\s]*\))"/g,function(a,c){return Aca+c})} +function Eo(a){mi(a)&&(a=0!==a[Pd]()?[a[Jc](),a[Hd](),a[Eb](),a[bc](),a[Vc](),a[Md](),a[Pd]()]:0!==a[Md]()||0!==a[Vc]()||0!==a[bc]()?[a[Jc](),a[Hd](),a[Eb](),a[bc](),a[Vc](),a[Md]()]:[a[Jc](),a[Hd](),a[Eb]()],a=Maa+a[me](Se)+Oe);return a};var Cfa={qxa:wg,Gya:T,jza:Eh,Gua:Bg,rza:Jh,Hua:Cg};var Dfa={zya:Hf,Wya:jba,Aya:bba,Xxa:Taa,Mxa:uf,Cza:tba,Cya:Jf,Sya:Pf,Gza:gg};function Ho(a){switch(a){case Hf:return 1;case jba:return 1E3;case bba:return 6E4;case Taa:return 36E5;case uf:return 864E5;case tba:return 6048E5;case Jf:return 2629746E3;case Pf:return 7889238E3;case gg:return 31556952E3}return 0};function Io(){}function Jo(a){if(typeof a==T){var b=new Io;b.xfa=a;var c;c=a;if(0==c)c=Oaa;else{var d=[Oaa,0>c?Te:Qe];c=h.abs(c);d[C](h[t](c/60)%100);c%=60;0!=c&&d[C](ef,Ii(c,2));c=d[me](O)}b.yfa=c;0==a?a=qba:(c=[qba,0>a?Qe:Te],a=h.abs(a),c[C](h[t](a/60)%100),a%=60,0!=a&&c[C](ef,a),a=c[me](O));b.m4=[a,a];b.PD=[];return b}b=new Io;b.yfa=a.id;b.xfa=-a.std_offset;b.m4=a[cc];b.PD=a.transitions;return b}W=Io[K]; +W.getDaylightAdjustment=function(a){a=Date.UTC(a[Mb](),a[Ec](),a[Nd](),a[ie](),a[he]())/36E5;for(var b=0;b=this.PD[b];)b+=2;return 0==b?0:this.PD[b-1]};W.getGMTString=function(a){a=this.getOffset(a);var b=[Raa];b[C](0>=a?Qe:Te);a=h.abs(a);b[C](Ii(h[t](a/60)%100,2),ef,Ii(a%60,2));return b[me](O)};W.getLongName=function(a){return this.m4[this.isDaylightTime(a)?3:1]};W.getOffset=function(a){return this.xfa-this.getDaylightAdjustment(a)}; +W.getRFCTimeZoneString=function(a){a=-this.getOffset(a);var b=[0>a?Te:Qe];a=h.abs(a);b[C](Ii(h[t](a/60)%100,2),Ii(a%60,2));return b[me](O)};W.getShortName=function(a){return this.m4[this.isDaylightTime(a)?2:0]};W.getTimeZoneId=function(){return this.yfa};W.isDaylightTime=function(a){return 0a)b=this.uf.DATEFORMATS[a];else if(8>a)b=this.uf.TIMEFORMATS[a-4];else if(12>a)b=this.uf.DATETIMEFORMATS[a-8],b=b[wb](bda,this.uf.DATEFORMATS[a-8]),b=b[wb](ada,this.uf.TIMEFORMATS[a-8]);else{this.hT(10);return}this.ft(b)};function Lo(a,b){var c;c=String(b);var d=a.uf||tn;if(void 0!==d.ita){for(var e=[],f=0;f=g?String[vd](d.ita+g-48):c[Cb](f))}c=e[me](O)}return c} +function Mo(a){if(!(a[bc]&&a[Md]&&a[Vc]))throw m("The date to format has no time (probably a goog.date.Date). Use Date or goog.date.DateTime, or use a pattern without time fields.");} +function Ffa(a,b,c,d,e,f){var g=b[J];switch(b[Cb](0)){case Qaa:return c=0c&&(c=-c),2==g&&(c%=100),Lo(a,Ii(c,g));case Gf:t:switch(c=d[Hd](),g){case 5:a=a.uf.NARROWMONTHS[c];break t;case 4:a=a.uf.MONTHS[c];break t;case 3:a=a.uf.SHORTMONTHS[c];break t;default:a=Lo(a,Ii(c+1,g))}return a;case $g:return Mo(e),Lo(a,Ii(e[bc]()||24,g));case Qf:return c=e[ec]()%1E3/1E3,Lo(a,c[xb](h.min(3,g))[hc](2)+(3g?1:0];case Og:return Mo(e),Lo(a,Ii(e[bc]()%12||12,g));case Yaa:return Mo(e),Lo(a,Ii(e[bc]()%12,g));case Saa:return Mo(e),Lo(a,Ii(e[bc](),g));case yg:t:switch(c=d[nc](),g){case 5:a=a.uf.STANDALONENARROWWEEKDAYS[c];break t;case 4:a=a.uf.STANDALONEWEEKDAYS[c];break t;case 3:a=a.uf.STANDALONESHORTWEEKDAYS[c];break t;default:a=Lo(a,Ii(c,1))}return a;case Ff:t:switch(c=d[Hd](),g){case 5:a=a.uf.STANDALONENARROWMONTHS[c]; +break t;case 4:a=a.uf.STANDALONEMONTHS[c];break t;case 3:a=a.uf.STANDALONESHORTMONTHS[c];break t;default:a=Lo(a,Ii(c+1,g))}return a;case Of:return c=h[t](d[Hd]()/3),4>g?a.uf.SHORTQUARTERS[c]:a.uf.QUARTERS[c];case Ag:return Lo(a,Ii(d[Eb](),g));case dh:return Mo(e),Lo(a,Ii(e[Vc](),g));case xh:return Mo(e),Lo(a,Ii(e[Md](),g));case Ph:return a=f||Jo(c[qe]()),a.getTimeZoneId();case Th:return c=new Date(e[Jc](),e[Hd](),e[Eb]()),b=a.uf.FIRSTDAYOFWEEK||0,c=c[fd]()+864E5*(((a.uf.FIRSTWEEKCUTOFFDAY||3)-b+7)% +7-((c[nc]()+6)%7-b+7)%7),c=h[t](h[E]((c-(new Date((new Date(c))[Jc](),0,1))[fd]())/864E5)/7)+1,Lo(a,Ii(c,g));case Xh:return a=f||Jo(c[qe]()),4>g?a.getShortName(c):a.getLongName(c);case hg:return b=f||Jo(c[qe]()),4>g?b.getRFCTimeZoneString(c):Lo(a,b.getGMTString(c));default:return O}};var Gfa={YEAR_FULL:Wh,YEAR_FULL_WITH_ERA:"y G",YEAR_MONTH_ABBR:"MMM y",YEAR_MONTH_FULL:"MMMM y",MONTH_DAY_ABBR:If,MONTH_DAY_FULL:"MMMM dd",MONTH_DAY_SHORT:"M/d",MONTH_DAY_MEDIUM:"MMMM d",MONTH_DAY_YEAR_MEDIUM:"MMM d, y",WEEKDAY_MONTH_DAY_MEDIUM:"EEE, MMM d",WEEKDAY_MONTH_DAY_YEAR_MEDIUM:"EEE, MMM d, y",DAY_ABBR:Ag},No=Gfa,No=Gfa;var Hfa={Tta:{1E3:{other:"0K"},1E4:{other:"00K"},1E5:{other:"000K"},1E6:{other:"0M"},1E7:{other:"00M"},1E8:{other:"000M"},1E9:{other:"0B"},1E10:{other:"00B"},1E11:{other:"000B"},1E12:{other:"0T"},1E13:{other:"00T"},1E14:{other:"000T"}},Sta:{1E3:{other:"0 thousand"},1E4:{other:"00 thousand"},1E5:{other:"000 thousand"},1E6:{other:"0 million"},1E7:{other:"00 million"},1E8:{other:"000 million"},1E9:{other:"0 billion"},1E10:{other:"00 billion"},1E11:{other:"000 billion"},1E12:{other:"0 trillion"},1E13:{other:"00 trillion"}, +1E14:{other:"000 trillion"}}},Oo=Hfa,Oo=Hfa;function Ifa(a){var b=Po.Eua,c=[Xe];a=Qo[a][0]&7;if(0d&&k++;break;case Xe:if(0d&&k++;break;case Re:k=0;break;case Ue:if(0<=d)throw m('Multiple decimal separators in pattern "'+a+ue);d=e+f+g;break;case zf:if(this.XS)throw m('Multiple exponential symbols in pattern "'+a+ue);this.XS=!0;this.bT=0;b[0]+1e+f||1>this.bT)throw m('Malformed exponential pattern "'+a+ue);n=!1;break;default:b[0]--,n=!1}0==f&&0d&&0e+f)||0==k)throw m('Malformed pattern "'+a+ue);g=e+f+g;this.Uy=0<=d?g-d:0;0<=d&&(this.ct=e+f-d,0>this.ct&&(this.ct=0));this.Uo=(0<=d?d:g)-e;this.XS&&(this.TS=e+this.Uo,0==this.Uy&&0==this.Uo&&(this.Uo=1));this.Z1=h.max(0,k);this.vca=0==d||d==g;c= +b[0]-c;this.kK=To(this,a,b);b[0]this.Av[J]?f=!1:this.Qy[J]=B)v+=B,l=!0;else if(z==p[Cb](0)){if(g||k)break;v+=Ue;g=!0}else if(z==s[Cb](0)&&($h!=s[Cb](0)||c[0]+1=d?0:Vo(d)).divisorBase,e/=h.pow(10,c),Wo(this,e),d/=h.pow(10,c),d=Wo(this,d),c=Mfa(this,c+Vo(d.uda)));a/=h.pow(10,c.divisorBase);b[C](c.prefix);d=0>a||0==a&&0>1/a;b[C](d?this.Av:this.Qy);if(na(a))if(a=a*(d?-1:1)*this.tj,this.XS)if(0==a)Xo(this,a,this.Uo,b),Nfa(this,0,b);else{e=h.log(a)/h.log(10);e=h[t](e+2E-15);a/=h.pow(10,e);var f=this.Uo;if(1 +this.Uo){for(;0!=e%this.TS;)a*=10,e--;f=1}else 1>this.Uo?(e++,a/=10):(e-=this.Uo-1,a*=h.pow(10,this.Uo-1));Xo(this,a,f,b);Nfa(this,e,b)}else Xo(this,a,this.Uo,b);else b[C](Po.c3);b[C](d?this.ND:this.kK);b[C](c.suffix);return b[me](O)});function Wo(a,b){var c=h.pow(10,a.Uy),d=0>=a.bz?h[E](b*c):h[E](Ofa(b*c,a.bz,a.Uy)),e;na(d)?(e=h[t](d/c),c=h[t](d-e*c)):(e=b,c=0);return{uda:e,Gsa:c}} +function Xo(a,b,c,d){if(a.ct>a.Uy)throw m("Min value must be less than max value");b=Wo(a,b);var e=h.pow(10,a.Uy),f=b.uda,g=b.Gsa,k=0==f?0:Vo(f)+1,l=0b+1;)c--;for(f=1;fb?(b=-b,c[C](Po.qta)):a.wca&&c[C](Po.rta);b=O+b;for(var d=So?Xe:Po.y3,e=b[J];ea)return a-48;var b=Po.y3[ae](0);return b<=a&&ab)return Uo;b=h.min(14,b);c=c[h.pow(10,b)];if(!c)return Uo;c=c.other;return c&&c!=Xe?(c=/([^0]*)(0+)(.*)/[tb](c))?{prefix:c[1],suffix:c[3],divisorBase:b-(c[2][J]-1)}:Uo:Uo}function Vo(a){for(var b=0;1<=(a/=10);)b++;return b}function Ofa(a,b,c){if(!a)return a;b=b-Vo(a)-1;if(b<-c)return c=h.pow(10,c),h[E](a/c)*c;c=h.pow(10,b);return h[E](a*c)/c};ta(Ko[K],Ko[K][Nb]);Ko.Format={FULL_DATE:0,LONG_DATE:1,MEDIUM_DATE:2,SHORT_DATE:3,FULL_TIME:4,LONG_TIME:5,MEDIUM_TIME:6,SHORT_TIME:7,FULL_DATETIME:8,LONG_DATETIME:9,MEDIUM_DATETIME:10,SHORT_DATETIME:11};var Yo=No;Ro.Format={Iua:1,Sua:2,eL:3,Dua:4,Cua:5,Bua:6};ta(Ro[K],Ro[K][Nb]);Ro.setEnforceAsciiDigits=function(a){So=a};Ro.isEnforceAsciiDigits=function(){return So};var Zo=Po;Io.createTimeZone=Jo;function $o(){}$o[K].getStringValue=function(a,b){var c=this.D(b);if(c!==Eh)throw m(sf+b+" must be of type string, was "+c);return this[I](a,b)};function ap(){}ap[K].Oc=function(a){return this.PU(a)};function bp(a){this[Kc](a)}Y(bp,ap);La(bp[K],function(a){a=new Bn([a||{},{formatType:Ah,valueType:Cg}]);this.vd=a.S(ph);this.sd=null;this.Wpa=ao(a,dca,Pfa);this.Ppa=ao(a,Wca,Qfa);this.Vpa=In(a,Vba,!1);this.Qca=null;a=Nn(a,Vca);null!=a&&(this.Qca=Io.createTimeZone(60*-a))});var cp=Ko[Ad],Pfa={Sxa:Lg,nya:ch,tya:fh,SHORT:Ah},Qfa={Gua:Bg,Hua:Cg,pza:Ih}; +function Rfa(a,b){switch(a){case Bg:switch(b){case Lg:return Ko[Ad].FULL_DATE;case ch:return Ko[Ad].LONG_DATE;case fh:return Ko[Ad].MEDIUM_DATE;case Ah:return Ko[Ad].SHORT_DATE}case Cg:switch(b){case Lg:return Ko[Ad].FULL_DATETIME;case ch:return Ko[Ad].LONG_DATETIME;case fh:return Ko[Ad].MEDIUM_DATETIME;case Ah:return Ko[Ad].SHORT_DATETIME}case Ih:switch(b){case Lg:return Ko[Ad].FULL_TIME;case ch:return Ko[Ad].LONG_TIME;case fh:return Ko[Ad].MEDIUM_TIME;case Ah:return Ko[Ad].SHORT_TIME}default:return Ko[Ad].FULL_DATETIME}} +bp[K].gl=function(a){switch(a){case gg:a=Yo.YEAR_FULL;break;case Pf:a=iba;break;case Jf:a=Yo.YEAR_MONTH_ABBR;break;case uf:a=Ko[Ad].SHORT_DATE;break;default:a=Ko[Ad].SHORT_DATETIME}this[Kc]({pattern:a,timeZone:0})};ta(bp[K],function(a,b){var c=Zn(Qfa,a.D(b));if(c==Bg||c==Cg)for(var c=this.QO(c),d=a.M(),e=0;e=this.iI)throw m("Scale factor must be a positive number.");}Y(dp,ap); +var Vfa={decimal:Ro[Ad].Iua,scientific:Ro[Ad].Sua,percent:Ro[Ad].eL,currency:Ro[Ad].Dua,"short":Ro[Ad].Cua,"long":Ro[Ad].Bua},Wfa=!1,Tfa=Zo.DECIMAL_SEP,Ufa=Zo.GROUP_SEP,ep=Zo.DECIMAL_PATTERN;ta(dp[K],function(a,b){if(a.D(b)==T)for(var c=0;cd&&a[Ic](c,b,Fh,Wba+this.oba+gf)}}}); +dp[K].PU=function(a){var b=null,b=a/this.iI;if(null===this.vd){if(fa(this.nz))return String(a);this.uea&&(b=h.abs(b));var c=b;0==this.nz&&(c=h[E](c));b=[];0>c&&(c=-c,b[C](Te));var d=h.pow(10,this.nz),e=h[E](c*d),c=String(h[t](e/d)),d=String(e%d);if(3a&&(b= +Ne+b+Oe)}else c=new Ro(this.vd),a=Ro.isEnforceAsciiDigits(),Ro.setEnforceAsciiDigits(!Wfa),b=c[Nb](b),b=this.vea+b+this.wea,Ro.setEnforceAsciiDigits(a);return b};function Xfa(a){return null==a?null:ri(a.Fy)?a:ki(a)?Yfa(a):new fp(a)}function Zfa(a){var b={};if(hi(a)!=jh||mi(a))b.v=null!=a?a:null,b.f=null;else{b.v="undefined"==typeof a.v?null:a.v;var c=typeof a.f;if("undefined"==c||c==hh)b.f=null;else if(c==Eh)b.f=a.f;else throw m("Formatted value ('f'), if specified, must be a string.");c=typeof a.p;if(c==jh)b.p=a.p;else if(c!=hh&&"undefined"!=c)throw m("Properties ('p'), if specified, must be an Object.");}return{v:b.v,f:b.f,p:b.p}} +function $fa(a,b,c){if(typeof b==jh&&zg in b){if(aca in b&&typeof b.desc!=wg)throw m('Property "desc" in '+c+" must be boolean.");if(Yba in b&&!ri(b.compare))throw m('Property "compare" in '+c+" must be a function.");}else throw m(c+' must be an object with a "column" property.');gp(a,b.column)} +function aga(a,b,c){function d(d,e){for(var f=0;fc[J])throw m("sortColumns is an empty array. Must have at least one element.");for(var e={},f=[],g=0;gb||b>=c)throw m("Invalid row index "+b+". Should be in the range [0-"+(c-1)+"].");}else throw m("Table has no rows.");} +function gp(a,b){var c=a.H();if(0b||b>=c)throw m("Invalid column index "+b+". Should be an integer in the range [0-"+(c-1)+"].");}else throw m("Table has no columns.");}function jp(a,b,c){a=a.D(b);if(!bga(c,a))throw m(pba+c+baa+a+" in column index "+b);} +function bga(a,b){if(null==a)return!0;var c=typeof a;switch(b){case T:if(c==T)return!0;break;case Eh:if(c==Eh)return!0;break;case wg:if(c==wg)return!0;break;case Bg:case Cg:if(mi(a))return!0;break;case Jh:if(li(a)&&2a[J]){for(var c=!0,d=0;da[0]||0>a[1]||59a[2]||59a[3]||999a;a++){if(b[a]b[J]?0:b[3];c=4>c[J]?0:c[3];return bhp(c,g,d)?d=g:0>hp(c,e,g)&&(e=g));return{min:d,max:e}} +function dga(a,b){for(var c=aga(a,function(b,c){return a[I](b,c)},b),d=[],e=a.M(),f=0;fhp(k,g,e.minValue)||null!=e.maxValue&&0b)throw m("Invalid value for numOrArray: "+b+". If numOrArray is a number it should be a nonnegative integer.");c=qj(null,b)}else throw m("Invalid value for numOrArray. Should be a number or an array of arrays of cells.");for(var d=[],e=0;e=b||(this.Gc=[],ip(this,a),a+b>this.Nf[J]&&(b=this.Nf[J]-a),this.Nf[le](a,b))};W.sC=function(a){this.qga(a,1)};W.pga=function(a,b){if(!(0>=b)){this.Gc=[];gp(this,a);a+b>this.Pf[J]&&(b=this.Pf[J]-a);this.Pf[le](a,b);for(var c=0;c=e&&(f=f||a.Sp(b),e=f.max,d=f.min);d==e&&(0==d?e=1:0=b)&&(null==c||a=this.I3&&(this.I3=1);this.Isa=Hm(Cm(d).od);this.Jsa=Hm(Cm(e).od)}Y(qp,op); +qp[K].hs=function(a){if(!qi(a))return O;a=Lm(this.Isa,this.Jsa,1-(a-this.iN)/this.I3);return Im(a[0],a[1],a[2])};function rp(){this.uS=[]}rp[K].addRange=function(a,b,c,d){this.uS[C](new op(a,b,c,d))};rp[K].eva=function(a,b,c,d,e){this.uS[C](new qp(a,b,c,d,e))}; +ta(rp[K],function(a,b){var c=a.D(b);if(c==T||c==Eh||c==Bg||c==Cg||c==Jh)for(c=0;c/g,Je)[wb](/\"/g,Le):O;d.detailed_message=c}}} +var ria=/^[^<]*([^<]*<\/a>[^<]*)*$/,sia=/javascript((s)?( )?)*:/;function pia(a){a=a.version||Ze;return bk(jga,a)?a:Ze}W=qt[K];W.V1=null;W.t=null;W.lj=function(){return this.m2==ps};W.l3=function(){return this.m2==bt};function tia(a){for(var b=0;b=a[lq])&&Gp(a,-1)}catch(b){}};W.vsa=function(){return this.Qa};W.B=function(){};var Dt="closure_listenable_"+(1E6*h[Hc]()|0);function Et(a){return!(!a||!a[Dt])}var Cia=0;function Dia(a,b,c,d,e){this.Vo=a;this.OT=null;this.src=b;cb(this,c);this.hE=!!d;this.Ta=e;this.key=++Cia;this.eE=this.FT=!1}function Ft(a){a.eE=!0;a.Vo=null;a.OT=null;a.src=null;a.Ta=null};function Gt(a){this.src=a;this.Bh={};this.mL=0}W=Gt[K];W.add=function(a,b,c,d,e){var f=a[kc]();a=this.Bh[f];a||(a=this.Bh[f]=[],this.mL++);var g=Ht(a,b,d,e);-1c[lq]||void 0!=c.returnValue)){t:{var f=!1;if(0==c[lq])try{Gp(c,-1);break t}catch(g){f=!0}if(f||void 0==c.returnValue)c.returnValue=!0}c=[];for(f=d[Sq];f;f=f[je])c[C](f);for(var f=a[H],k=c[J]-1;!d.zz&&0<=k;k--)Tp(d,c[k]),e&=Kia(c[k],f,!0,d);for(k=0;!d.zz&&k>>0);function Mt(a){if(ri(a))return a;a[St]||(a[St]=function(b){return a[nq](b)});return a[St]};function Tt(){this.Yl=new Gt(this);this.Xsa=this;this.$C=null}Y(Tt,ut);Tt[K][Dt]=!0;W=Tt[K];W.IA=function(a){this.$C=a};W.addEventListener=function(a,b,c,d){Lt(this,a,b,c,d)};W.removeEventListener=function(a,b,c,d){Pt(this,a,b,c,d)}; +up(W,function(a){var b,c=this.$C;if(c)for(b=[];c;c=c.$C)b[C](c);var c=this.Xsa,d=a[H]||a;if(oi(a))a=new xt(a,c);else if(a instanceof xt)$p(a,a[ar]||c);else{var e=a;a=new xt(d,c);jk(a,e)}var e=!0,f;if(b)for(var g=b[J]-1;!a.zz&&0<=g;g--)f=Tp(a,b[g]),e=Ut(f,d,!0,a)&&e;a.zz||(f=Tp(a,c),e=Ut(f,d,!0,a)&&e,a.zz||(e=Ut(f,d,!1,a)&&e));if(b)for(g=0;!a.zz&&gb)throw m("Bad port number "+b);a.Lv=b}else a.Lv=null}W.getPath=function(){return this.$k};vp(W,function(a,b){fu(this);this.$k=b?ju(a):a;return this}); +function iu(a,b,c){fu(a);b instanceof ku?(a.mj=b,a.mj.T3(a.Dn)):(c||(b=lu(b,cja)),a.mj=new ku(b,0,a.Dn));return a}W.Ik=function(a,b){return iu(this,a,b)};W.ro=function(){return this.mj[kc]()};W.Yc=function(a,b){fu(this);this.mj.set(a,b);return this};function dja(a,b,c){fu(a);ki(c)||(c=[String(c)]);a.mj.setValues(b,c)}function mu(a,b){return a.mj.get(b)}W.u3=function(a){fu(this);this.mj[Qb](a);return this};function fu(a){if(a.Cva)throw m("Tried to modify a read-only Uri");} +W.T3=function(a){this.Dn=a;this.mj&&this.mj.T3(a);return this};function eja(a){return a instanceof du?a[Bc]():new du(a,void 0)}function ju(a){return a?oa(a):O}function lu(a,b){return oi(a)?encodeURI(a)[wb](b,fja):null}function fja(a){a=a[ae](0);return De+(a>>4&15)[kc](16)+(a&15)[kc](16)}var Zia=/[#\/\?@]/g,aja=/[\#\?:]/g,$ia=/[\#\?]/g,cja=/[\#\?@]/g,bja=/#/g;function ku(a,b,c){this.gm=a||null;this.Dn=!!c} +function nu(a){if(!a.ig&&(a.ig=new lk,a.Tb=0,a.gm))for(var b=a.gm[rc](Ee),c=0;ce||90=b||0>c?null:new Kk(c,b)};var wja={firstLineIsHeader:!1};function ru(a,b,c,d){b=b[rc](/\r?\n/)[c];Ga(this,a+sga+(c+1)+Hga+b);Ga(this,this[Aq]+(re+Hi(se,-1==d?b[J]:d)+$r))}Y(ru,m);di("vis.csv.ParseError",ru,void 0);fb(ru[K],"ParseError");function su(a){this.b=a||{};Sj(wja,function(a,c){fk(this.b,c,a)},this)}di("vis.csv.Parser",su,void 0); +hb(su[K],function(a){function b(a){a==xr&&(l--,n=p);s=a}function c(){p=n;if(null!=s){var b=s;b==xr&&(l++,n=0);s=null;return b}if(k>=g)return yr;b=a[Cb](k++);n++;var c=!1;b==re?c=!0:b==qga&&(k=g)return yr;for(var a=[],b=d();b!=zr;b=d())a[C](b);return a}var f=this.b.firstLineIsHeader,g=a[J],k=0,l=0,n=0,p=0,s=null,u=!1,v=[],z=[],B=null;f&&(v=e(),B=v[J]);for(var D=e();D!=yr;D= +e()){null==B&&(B=D[J]);if(D[J]!=B)throw new ru("Record has "+D[J]+" field"+(1==D[J]?O:xh)+", but expected "+B,a,l-1,-1);if(f){for(var N={},M=0;Ma)throw m("Refresh interval must be a non-negative number");this.Il=a;zu(this)}; +function Au(a){a.KU&&(ba[cq](a.KU),a.KU=null)}function yu(a,b,c,d){a.qE({version:Ze,status:ps,errors:[{reason:b,message:c,detailed_message:d}]})} +W.fu=function(){var a;a=this.aoa;var b={};this.Lj&&(b.tq=String(this.Lj));var c=Xha+String(this.d1),d=this.LJ;d&&(c+=Iga+d);this.p1&&(c+=Jga+this.p1);b.tqx=c;if(this.vD){var c=[],e;for(e in this.vD)c[C](e+ef+this.vD[e]);b.tqh=c[me](gf)}a=Dja(a,b);this.Il&&(a=new du(a),Ek&&(fu(a),a.Yc(nia,h[t](2147483648*h[Hc]())[kc](36)+h.abs(h[t](2147483648*h[Hc]())^vi())[kc](36))),a=a[kc]());e={};vu[String(this.d1)]=this;c=this.e1;b=Qga;c==dt&&(c=ct,b=Sr);c==sg&&(c={},/[?&]alt=gviz(&[^&]*)*$/[hd](a)?e=Cs:(d=ym(a, +iia)||sg,d=d[rc](ef),e=d[0],e!==ct&&e!==dt||!$i(d,mia)||(c.xhrWithCredentials=!0),bk(zja,e)||(e=sg)),e={sendMethod:e,options:c},c=e.sendMethod,e=e[Eq]);if(c==Cs)if(ei(tha))b=this.cba,null==b[wu.io[Oq].CONTENT_TYPE]&&(b[wu.io[Oq].CONTENT_TYPE]=wu.io.ContentType.TEXT),null==b[wu.io[Oq].AUTHORIZATION]&&(b[wu.io[Oq].AUTHORIZATION]=wu.io.AuthorizationType.SIGNED),null==b.OAUTH_ENABLE_PRIVATE_NETWORK&&(b.OAUTH_ENABLE_PRIVATE_NETWORK=!0),null==b.OAUTH_ADD_EMAIL&&(b.OAUTH_ADD_EMAIL=!0),wu.io.makeRequest(a, +X(this.roa,this),b),Bu(this);else throw m("gadgets.io.makeRequest is not defined.");else{if(!(d=c==ct)){if(c=c==sg)d=bi[xc][Nc],c=(new du(d)).resolve(new du(a))[kc](),d=sm(d),c=sm(c),c=d[3]==c[3]&&d[1]==c[1]&&d[4]==c[4];d=c}if(d){c=void 0;d=a;b==Sr&&(a=a[rc](nf),1<=a[J]&&(d=a[0]),2<=a[J]&&(c=a[1]));a=d;d=X(ui(this.soa,this.d1),this);e=this.coa||!!e.xhrWithCredentials;var f=new $t;Ria[C](f);d&&f.m(hs,d);f.AC(Ls,f.poa);e&&(f.daa=e);f[iq](a,b,c,Bja)}else{if(this.maa)throw m("CSV files on other domains are not supported. Please use sendMethod: 'xhr' or 'auto' and serve your .csv file from the same domain as this page."); +b=ea[fc](vg)[0];e=null===this.LJ;this.boa&&e?(e=ea[Sb](xs),Eja(this,e,a),b[q](e)):(Bu(this),tt(a),zu(this))}}};function Eja(a,b,c){b.onerror=function(){Bu(a);tt(c);zu(a)};tp(b,function(){Bu(a);tt(c);zu(a)});Ra(b[x],Q);var d=c+Aga+(new Date)[ec]();b.src=d}W.roa=function(a){if(null!=a&&a[$])jda(Go(a[$]));else{var b=O;a&&a.errors&&(b=a.errors[me](se));yu(this,Jha,uha,b)}};function Bu(a){Au(a);a.KU=ba[xq](function(){yu(a,hia,aha)},1E3*a.Ofa)}function Fja(a){a.uU&&(ba[cq](a.uU),a.uU=null)} +function zu(a){Fja(a);0!=a.Il&&a.J3&&a.Rk&&(a.uU=ba[xq](function(){a.fu()},1E3*a.Il))}yp(W,function(a){this.Rk=!0;this.nv=a;this.fu()});W.makeRequest=function(a,b){this.Rk=!0;this.nv=a;this.Xwa=Cs;this.cba=b||{};this.fu()};Yp(W,function(){this.Rk=!1;Au(this);Fja(this)});W.qE=function(a){Au(this);a=new qt(a);if(!tia(a)){this.LJ=a.lj()?null:a.V1;var b=this.nv;b[L](b,a)}};W.setTimeout=function(a){if(typeof a!=T||fa(a)||0>=a)throw m("Timeout must be a positive number");this.Ofa=a}; +W.Vva=function(a){if(typeof a!=wg)throw m("Refreshable must be a boolean");return this.J3=a};W.Ik=function(a){if(typeof a!=Eh)throw m("queryString must be a string");this.Lj=a};W.Rva=function(a){this.p1=a;null!=a&&this.Pfa(Nh,a)};W.Pfa=function(a,b){a=a[wb](/\\/g,ig);b=b[wb](/\\/g,ig);a=a[wb](/:/g,eha);b=b[wb](/:/g,eha);a=a[wb](/;/g,jg);b=b[wb](/;/g,jg);this.vD||(this.vD={});this.vD[a]=b};function Cu(){Gja||(Gja=!0,bi.Vta&&bi.Vta.$wa(Cja,{pollingInterval:100}),bi[Lq]&&(Hja(),this.Dfa()));var a=Wk(vg)[0];this.Yta=uia(a)}var Gja=!1;Cu[K].Sfa=200;function Du(){return!!bi[Lq]&&!!bi[Lq].rpc}Cu[K].Dfa=function(){if(Du()){var a=bi[Lq];ri(a.rpc.register)&&a.rpc.register(Wha,Cja)}else 0c)throw m("The first parameter (min) must be smaller than or equal to the second parameter (max).");ip(a.t,b);ip(a.t,c);a=[];for(d=b;d<=c;d++)a[C](d);return a}throw m("First parameter must be a number or an array."); +}W.Wn=function(a,b){this.Is=Lja(this,a,b);this.Js=!1;this.by=!0};W.Kaa=function(){return hk(this.Qb)};W.sea=function(){if(this.Js){for(var a=[],b=this.t.M(),c=0;ca||a>=this.t.M()?-1:a:Qi(this.Is,a)};W.wG=function(a){gp(this,a);a=this.Qb[a];return qi(a)?a:ni(a)&&qi(a.sourceColumn)?a.sourceColumn:-1};W.uT=function(a){a=this.wG(a);return-1==a?a:a=this.t.uT(a)};W.um=function(a){ip(this,a);return this.Js?a:this.Is[a]};W.sT=function(a){a=this.um(a);return a=this.t.sT(a)};W.M=function(){return this.Js?this.t.M():this.Is[J]}; +W.H=function(){return this.Qb[J]};W.Xe=function(a){gp(this,a);a=this.Qb[a];return qi(a)?this.t.Xe(a):a.id||O};wa(W,function(a){for(var b=0;bb)return ej(this.Cn,a);Pi[le][L](this.nm,b,1);return!0}); +W.Ua=function(){for(var a=[],b=this.nm[J]-1;0<=b;--b)a[C](this.nm[b]);for(var c=this.Cn[J],b=0;b=this.kt[J]&&this[Nq]())}};function Yu(){this.kt=[];this.lE=null}Yu[K].add=function(a){this.kt[C](a)}; +Yu[K].create=function(a,b,c){if(null!=this.lE){var d=new Xu(a,b,c);this.add(d);this.lE.geocode(d)}else vfa(X(function(){null==this.lE&&(this.lE=Wu.Vb());this[sq](a,b,c)},this))};Rp(Yu[K],function(){Z(this.kt,function(a){a[Nq]()});this.kt=[]});Wu[K].geocode=function(a){Z(a.kt,X(function(b){var c=dn(b);c in this.Gc?a.finish(b,this.Gc[c]):(this.yv.bf(c)||(this.KD.Cn[C](b),this.yv.set(c,[])),this.yv.get(c)[C](a))},this));this.Rda()}; +Wu[K].Rda=function(){if(0!==this.KD.dc()||0!==this.yn.dc()){var a=0b&&c==a.D(b)};function Sja(a,b,c,d){for(var e=0;e=a.H()||a.D(e)!=c[d])return!1}return!0} +function bv(a,b,c){return a.$a(b,c,T)?cv(b,c,function(a){return 0<=a}):!1}function cv(a,b,c){for(var d=h.min(a.M(),20),e=0;eb)throw m(Uga);for(var c=!0,d=[],e=0;eb)return!1;var c=a.D(0);if(c!=Bg&&c!=Cg||a.D(1)!=T)return!1;for(var c=0,d=1;df?k:f;b=0!=e&&50c)return!1;if(!this.$a(a,0,T)&&(b++,this.Aba))for(;bb||5c}else b=!1;a=b?3:this.$a(a,3,Eh)?1:2}else a=0;return a};function iv(){}Y(iv,Zu);iv[K].Pb=function(a){try{this.gd(a)}catch(b){return!1}return!0};iv[K].gd=function(a){$u(a);var b=a.H();if(2!==b&&3!==b)throw m("Invalid data table format: must have 2 or 3 columns.");var c=1,d=2;2===b&&(c--,d--);this.Kb(a,0,Eh);this.Kb(a,c,Eh);this.Kb(a,d,T);return{ou:c,dma:0,yC:d}};iv[K].Kb=function(a,b,c){if(!this.$a(a,b,c))throw m(Nr+b+dr+c+er);};function jv(a){this.rn=a;this.n$=new lk}Kp(jv[K],function(){return this.rn});function kv(){}Y(kv,Zu);kv[K].Pb=function(a){try{this.gd(a)}catch(b){return!1}return!0};kv[K].gd=function(a){$u(a);for(var b=[],c=a.H(),d=0;db[J])throw m("At least 1 data column must come before any role column.");Oi(b).n$.set(e,d)}}if(2!=b[J])throw m("Invalid data table format: must have 2 data columns.");c=b[0];b=b[1];this.Kb(a,c[pc](),oha);this.Kb(a,b[pc](),T);return{OZ:c,yC:b}}; +kv[K].Kb=function(a,b,c){if(!Vi(c[rc](et),function(c){return this.$a(a,b,c)},this))throw m(Nr+b+dr+c+er);};function lv(){}Y(lv,Zu);lv[K].Pb=function(a){$u(a);var b=a.H();if(5>b||6c?1:2:0};function nv(){this.Us=null}Y(nv,Zu);nv[K].Pb=function(a){return!!Vja(this,a)};nv[K].gd=function(a){a=Vja(this,a);if(null!=a)return a;throw m(this.Us);};function Vja(a,b){var c=new jv(0),d=new jv(1),e=new jv(2),f=new jv(3),g=new jv(4),k=new jv(5),l=new jv(6);return a.Kb(b,c[pc](),Eh)&&a.Kb(b,d[pc](),Eh)&&a.Kb(b,e[pc](),Bg)&&a.Kb(b,f[pc](),Bg)&&a.Kb(b,g[pc](),T)&&a.Kb(b,k[pc](),T)&&a.Kb(b,l[pc](),Eh)?{Xra:c,ou:d,$G:e,ZG:f,Wra:g,Yra:k,Ura:l}:null} +nv[K].Kb=function(a,b,c){return this.$a(a,b,c)?!0:(this.Us=Nr+b+dr+c+er,!1)};function ov(){}Y(ov,Zu);ov[K].Pb=function(a){$u(a);var b;b=a.H();if(1>b||2b||2c?1:2>d&&0==e?3:2:0};function sv(){}Y(sv,Zu);sv[K].Pb=function(a){return Xja(this,a)||Yja(this,a)};sv[K].jk=function(a){var b=Xja(this,a);a=Yja(this,a);return b||a?a?1:3:0};function Xja(a,b){$u(b);var c=b.H();if(2>c||3c||2b||a.D(0)!=Eh)return!1;var c=a.D(1);if(c!=T&&c!=Bg&&c!=Eh||c==Eh&&!Zja(a)&&!$ja(a)||c==T&&!cv(a,1,function(a){return Kj(a)}))return!1;for(c=2;ca})} +function Zja(a){return cv(a,1,function(a){return 7!=a[J]||fa(a[ee](0,3))||a[Cb](4)!=eg||fa(a[ee](6,7))?!1:!0})}function $ja(a){return cv(a,1,function(a){return 6!=a[J]||fa(a[ee](0,3))||a[Cb](4)!=Of||fa(a[Cb](5))?!1:!0})};function uv(){}Y(uv,Zu);uv[K].Pb=function(a){$u(a);var b=a.H();if(2>b||3b||2b||.97b)}a=b?2:3}else a=0;return a};function wv(){}Y(wv,Zu);wv[K].Pb=function(a){$u(a);var b=a.H();if(0==b)return!1;for(var c=this.$a(a,0,Eh)?1:0,d=b>c;cb||this.$a(a,0,wg)||this.$a(a,0,Eh))return!1;for(var c=1,d=0,e=0;ca.H()?1:2:0};function Av(){}Y(Av,Zu);Av[K].Pb=function(a){try{this.gd(a)}catch(b){return!1}return!0};Av[K].gd=function(a){$u(a);var b=a.H();if(1>b)throw m("Invalid data table format: must have at least 1 column.");this.Kb(a,0,Bg);for(var c=[],d=1;da)throw m(Uga);return{numColumns:a}};function Ev(a){this.b=a||new Bn([])}Y(Ev,Zu);var cka=[Bg,T,Cg];Ev[K].Pb=function(a){try{this.gd(a)}catch(b){return!1}return!0}; +Ev[K].gd=function(a){$u(a);for(var b=[],c=a.H(),d=0;db[J])throw m("At least 1 data column must come before any role columns");Oi(b).qg[e]=d}}c=b[J];if(3!==c&&4!==c)throw m("Invalid data table format: must have 3 or 4 data columns.");d=4==c;this.Kb(a,b[0][pc],Eh);d&&this.Kb(a,b[1][pc],Eh);this.Kb(a,b[d?2:1][pc],cka);this.Kb(a,b[d?3:2][pc],cka);return 4===c?(a=!In(this.b,gia,!0),{ou:b[a?1:0],EB:b[a?0:1],$G:b[2],ZG:b[3]}):{ou:b[0],EB:null, +$G:b[1],ZG:b[2]}};Ev[K].Kb=function(a,b,c){ki(c)||(c=[c]);if(!Sja(this,a,b,c))throw m(Nr+b+dr+c+er);};function Lv(){}Y(Lv,Zu);Lv[K].Pb=function(a){try{this.gd(a)}catch(b){return!1}return!0};Lv[K].gd=function(a){$u(a);if(2>a.H())throw m("Invalid data table format: must have 2 columns.");this.Kb(a,0,Bg);this.Kb(a,1,T);return{Owa:0,Pwa:1}};Lv[K].Kb=function(a,b,c){ki(c)||(c=[c]);if(!Sja(this,a,b,c))throw m(Nr+b+dr+c+er);};function Mv(){}Y(Mv,Zu);Mv[K].Pb=function(a){$u(a);var b=a.H();if(2>b||4c.H()||(b=c.$u(1),d=a.hAxis||{},Ov(d,[b]),a.hAxis=d,c=c.$u(2),b=a.vAxes||{},d=b[0]||{},Ov(d,[c]),b[0]=d,a.vAxes=b);else{d=a.vAxes||[{},{}];for(var e=a.hAxis||{},f=d[0]||{},g=d[1]||{},k=[],l=[],n=c&&c.H()||0,p=0;p/g,Je);return b=b+a+pga},void 0);di("google.visualization.createWrapper",iw,void 0);di("google.visualization.ChartWrapper",Tv,void 0);va(Tv[K],Tv[K][Yb]);aq(Tv[K],Tv[K][br]);Ia(Tv[K],Tv[K][Bc]);Ca(Tv[K],Tv[K][uq]);Tv[K].getSnapshot=Tv[K].ZS;Tv[K].getDataSourceUrl=Tv[K].SU;Tv[K].getDataTable=Tv[K].Va;Tv[K].getChartName=Tv[K].cZ;Tv[K].getChartType=Tv[K].eb; +Tv[K].getChart=Tv[K].ge;Tv[K].getContainerId=Tv[K].QU;Tv[K].getPackages=Tv[K].N4;Tv[K].getQuery=Tv[K].ro;Tv[K].getRefreshInterval=Tv[K].TU;Tv[K].getView=Tv[K].UU;Mp(Tv[K],Tv[K][Cq]);Tv[K].getOptions=Tv[K].kd;Pp(Tv[K],Tv[K][Hq]);Tv[K].getCustomRequestHandler=Tv[K].tva;Tv[K].isDefaultVisualization=Tv[K].Yca;Tv[K].pushView=Tv[K].Fva;Tv[K].sendQuery=Tv[K].zS;Tv[K].setDataSourceUrl=Tv[K].Ni;Tv[K].setDataTable=Tv[K].Fh;Tv[K].setChart=Tv[K].bO;Tv[K].setChartName=Tv[K].dZ;Tv[K].setChartType=Tv[K].Nd; +Tv[K].setContainerId=Tv[K].XU;Tv[K].setIsDefaultVisualization=Tv[K].j6;Tv[K].setPackages=Tv[K].AJ;Tv[K].setQuery=Tv[K].Ik;Tv[K].setRefreshInterval=Tv[K].Bn;Tv[K].setView=Tv[K].cD;Tv[K].setOption=Tv[K].K;Lp(Tv[K],Tv[K][zq]);Tv[K].setState=Tv[K].Cc;Tv[K].setCustomRequestHandler=Tv[K].Nva;di("google.visualization.ControlWrapper",Uv,void 0);va(Uv[K],Uv[K][Yb]);aq(Uv[K],Uv[K][br]);Ca(Uv[K],Uv[K][uq]);Uv[K].getSnapshot=Uv[K].ZS;Uv[K].getDataSourceUrl=Uv[K].SU;Uv[K].getDataTable=Uv[K].Va; +Uv[K].getControlName=Uv[K].rva;Uv[K].getControlType=Uv[K].sva;Uv[K].getControl=Uv[K].gT;Uv[K].getContainerId=Uv[K].QU;Uv[K].getPackages=Uv[K].N4;Uv[K].getQuery=Uv[K].ro;Uv[K].getRefreshInterval=Uv[K].TU;Uv[K].getView=Uv[K].UU;Mp(Uv[K],Uv[K][Cq]);Uv[K].getOptions=Uv[K].kd;Pp(Uv[K],Uv[K][Hq]);Uv[K].sendQuery=Uv[K].zS;Uv[K].setDataSourceUrl=Uv[K].Ni;Uv[K].setDataTable=Uv[K].Fh;Uv[K].setControlName=Uv[K].Kva;Uv[K].setControlType=Uv[K].Lva;Uv[K].setContainerId=Uv[K].XU;Uv[K].setPackages=Uv[K].AJ; +Uv[K].setQuery=Uv[K].Ik;Uv[K].setRefreshInterval=Uv[K].Bn;Uv[K].setView=Uv[K].cD;Uv[K].setOption=Uv[K].K;Lp(Uv[K],Uv[K][zq]);Uv[K].setState=Uv[K].Cc;di("google.visualization.DashboardWrapper",gw,void 0);va(gw[K],gw[K][Yb]);aq(gw[K],gw[K][br]);Ca(gw[K],gw[K][uq]);gw[K].getBindings=gw[K].nva;gw[K].getDataSourceUrl=gw[K].SU;gw[K].getDataTable=gw[K].Va;gw[K].getDashboard=gw[K].uva;gw[K].getDashboardName=gw[K].vva;gw[K].getContainerId=gw[K].QU;gw[K].getPackages=gw[K].N4;gw[K].getQuery=gw[K].ro; +gw[K].getRefreshInterval=gw[K].TU;gw[K].getView=gw[K].UU;gw[K].getWrappers=gw[K].yva;gw[K].setBindings=gw[K].Iva;gw[K].setDataSourceUrl=gw[K].Ni;gw[K].setDataTable=gw[K].Fh;gw[K].setDashboardName=gw[K].Pva;gw[K].setContainerId=gw[K].XU;gw[K].setPackages=gw[K].AJ;gw[K].setQuery=gw[K].Ik;gw[K].setRefreshInterval=gw[K].Bn;gw[K].setView=gw[K].cD;gw[K].getSnapshot=gw[K].ZS;gw[K].setWrappers=gw[K].$va;di("google.visualization.data.avg",Ska,void 0);di("google.visualization.data.count",Rka,void 0);di("google.visualization.data.group",nw,void 0); +di("google.visualization.data.join",function(a,b,c,d,e,f){var g=c==ah||c==Lg,k=c==Os||c==Lg,l=new fp,n=[];Z(d,function(c){var d=a.D(c[0]),e=b.D(c[1]);if(d!=e)throw m("Key types do not match:"+d+Se+e);lw(l,a,c[0]);n[C](d)});var p=[],s=[];Z(d,function(a){p[C]({column:a[0]});s[C]({column:a[1]})});var u=a.dp(p),v=b.dp(s);Z(e,function(b){lw(l,a,b)});Z(f,function(a){lw(l,b,a)});for(var z=!1,B=0,D=0,N=0;B=v[J])if(g)R[0]=u[B],M=-1;else break;else if(B>=u[J])if(k)R[1]=v[D], +M=1;else break;else{R[0]=u[B];R[1]=v[D];for(var S=0;Sb&&(b=d)}return b},void 0);di("google.visualization.data.min",function(a){if(0==a[J])return null;for(var b=a[0],c=1;c\n \n \n
\n \n',bma=") translate(",cma=",0,",dma="--",ema="-10000px",fma="-1000px",gma="-active",hma="-bg",ima="-buttons",oB="-caption",jma="-checkbox",kma="-checked",lma="-collapse-left",mma="-collapse-right",pB="-content", +qB="-default",rB="-disabled",sB="-dropdown",nma="-focused",oma="-highlight",pma="-horizontal",qma="-hover",tB="-inner-box",rma="-mag",sma="-open",uB="-outer-box",tma="-rtl",uma="-selected",vma="-title",wma="-title-close",xma="-title-draggable",yma="-title-text",zma="-unchecked",Ama="-undetermined",Bma="-vertical",Cma="-webkit-user-select:none;",Dma="../../shapes/rect-util",Ema="../../shapes/shapes",vB="./abstract_shape",wB="./circle",xB="./ellipse",Fma="./group",yB="./line",zB="./path",Gma="./path-util", +AB="./rect",Hma="./shapes",BB="./svg-util",CB="./text",Ima=".annotations.",Jma=".gif",Kma=".gradient.from",Lma=".gradient.to",Mma=".gradient.x1",Nma=".gradient.x2",Oma=".gradient.y1",Pma=".gradient.y2",Qma=".js",Rma=".lbl",Sma=".offset",Tma=".style",Uma=".type",Vma="//chart.googleapis.com/chart",Wma="/>",Xma="/core/patterns/",DB="/core/tooltip.css",EB="0 0",Yma="0 0 4 4",FB="0%",Zma="0.###E0",$ma="1.8",ana="1/",GB="100%",bna="12pt Times New Roman",HB="15px",IB="1e12",JB="1px",cna="1px solid infotext", +KB="2",dna="200px",LB="2d",MB="4",ena="420+",fna="49.99%",gna="5.5",hna="50%",ina="525",jna="531",kna="532.0",lna="533.17.9",NB="6",OB="7",mna="808080",nna="9.0",ona="90%",PB=": ",pna=":m",QB=":mm",qna=":|",rna=";color: #333333;margin:0;font-style:",sna=";font-weight:",tna=";height:",una=";overflow-y:",vna=";stop-opacity:",wna=";text-decoration:",xna=";width:",yna="< ",RB="",SB="",TB="",UB="",VB="",zna="",Ana="\x3c/script>",WB="",XB="",Bna="", +Cna="
\n",Dna='',Ena=']*>|&[^;]+;/g;function IK(a,b){return b?a[wb](RBa,O):a}var SBa=/[A-Za-z\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02b8\u0300-\u0590\u0800-\u1fff\u200e\u2c00-\ufb1c\ufe00-\ufe6f\ufefd-\uffff]/,TBa=/^[^A-Za-z\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02b8\u0300-\u0590\u0800-\u1fff\u200e\u2c00-\ufb1c\ufe00-\ufe6f\ufefd-\uffff]*[\u0591-\u07ff\u200f\ufb1d-\ufdff\ufe70-\ufefc]/,UBa=/^http:\/\/.*/,VBa=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Arab|Hebr|Thaa|Nkoo|Tfng))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i; +function JK(){return VBa[hd](po(gsa)||pF)}var WBa=/\s+/,XBa=/\d/;function YBa(a,b){for(var c=0,d=0,e=!1,f=IK(a,b)[rc](WBa),g=0;g=e[cd])&&(f&=-2),132==(f&132)&&(k.y=e[Mc])&&(f&=-5),k.xe[cd]&&f&16&&(pa(g,h.max(g[r]-(k.x+g[r]-e[cd]),0)),d|=4),k.x+g[r]>e[cd]&&f&1&&(k.x=h.max(e[cd]-g[r],e[G]),d|=1),f&2&&(d=d|(k.xe[cd]?32:0)),k.y< +e.top&&f&4&&(k.y=e.top,d|=2),k.y<=e.top&&k.y+g[A]=e.top&&k.y+g[A]>e[Mc]&&f&32&&(Sa(g,h.max(g[A]-(k.y+g[A]-e[Mc]),0)),d|=8),k.y+g[A]>e[Mc]&&f&4&&(k.y=h.max(e[Mc]-g[A],e.top),d|=2),f&8&&(d=d|(k.ye[Mc]?128:0)),k=d):k=256,k&496))return k;Ql(b,a);Qk(c,g)||(a=Uk(b),e=Dl(Sk(a)),!Ak||Ik(bf)||e&&Ik(wr)?(b=b[x],Bk?b.MozBoxSizing=OD:Ek?b.WebkitBoxSizing=OD:b.boxSizing=OD,pa(b,h.max(g[r],0)+U),Sa(b,h.max(g[A],0)+U)):(a= +b[x],e?(e=nm(b),b=om(b),a.pixelWidth=g[r]-b[G]-e[G]-e[cd]-b[cd],a.pixelHeight=g[A]-b.top-e.top-e[Mc]-b[Mc]):(a.pixelWidth=g[r],a.pixelHeight=g[A])));return k}function VK(a,b){return(b&4&&Xl(a)?b^2:b)&-5};function XK(){}XK[K].Ze=function(){};function YK(a,b,c){Ix(this,a);this.EI=b;this.$ta=c}Y(YK,XK);YK[K].Ze=function(a,b,c){TK(this[yA],this.EI,a,b,void 0,c,this.$ta)};function ZK(a,b){this.X=a instanceof Kk?a:new Kk(a,b)}Y(ZK,XK);ZK[K].Ze=function(a,b,c,d){TK(Tl(a),0,a,b,this.X,c,null,d)};function $K(a,b,c,d){YK[L](this,a,b);this.ZP=c?5:0;this.t4=d||void 0}Y($K,YK);$K[K].vla=function(){return this.ZP};$K[K].Ze=function(a,b,c,d){var e=TK(this[yA],this.EI,a,b,null,c,10,d,this.t4);if(e&496){var f=aL(e,this.EI);b=aL(e,b);e=TK(this[yA],f,a,b,null,c,10,d,this.t4);e&496&&(f=aL(e,f),b=aL(e,b),TK(this[yA],f,a,b,null,c,this.ZP,d,this.t4))}};function aL(a,b){a&48&&(b^=2);a&192&&(b^=1);return b};function bL(a,b){this.X=a instanceof Kk?a:new Kk(a,b)}Y(bL,XK);bL[K].Ze=function(a,b,c,d){var e;e=Uk(a);var f=e[Td];e=e[gc];e=new Kk(f[Lc]||e[Lc],f[Gd]||e[Gd]);f=this.X.x+e.x;e=this.X.y+e.y;var g=UK(a),f=f-g.x;e-=g.y;WK(new Kk(f,e),a,b,c,null,null,d)};function lCa(a){if(a[rq]&&!a[Yq]||a[Rq]||112<=a[lq]&&123>=a[lq])return!1;switch(a[lq]){case 18:case 20:case 93:case 17:case 40:case 35:case 27:case 36:case 45:case 37:case 224:case 91:case 144:case 12:case 34:case 33:case 19:case 255:case 44:case 39:case 145:case 16:case 38:case 224:case 92:return!1;case 0:return!Bk;default:return 166>a[lq]||183=a||96<=a&&106>=a||65<=a&&90>=a||Ek&&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 dL(a){if(Bk)a=nCa(a);else if(vk&&Ek)t:switch(a){case 93:a=91;break t}return a} +function nCa(a){switch(a){case 61:return 187;case 59:return 186;case 173:return 189;case 224:return 91;case 0:return 224;default:return a}};function eL(a,b){Tt[L](this);this.he=new Vv(this);this.Iw(a||null);b&&this.wv(b)}Y(eL,Tt);W=eL[K];W.q=null;W.xaa=!0;W.f$=null;W.Zca=null;W.ZC=!1;W.Opa=!1;W.d0=-1;W.Wma=!1;W.Ypa=!0;W.Mg=YJ;W.bc=function(){return this.Mg};W.wv=function(a){this.Mg=a};W.a=function(){return this.q};W.Iw=function(a){oCa(this);this.q=a};W.kN=function(a){oCa(this);this.xaa=a};W.LO=function(a,b){this.WB=a;this.rC=b};W.tc=function(){return this.he}; +function oCa(a){if(a.ZC)throw m("Can not change this state of the popup while showing.");}W.R=function(){return this.ZC};Jw(W,function(a){this.WB&&this.WB[Wq]();this.rC&&this.rC[Wq]();a?this.U2():this.DD()});W.Ze=fi; +W.U2=function(){if(!this.ZC&&this.JY()){if(!this.q)throw m("Caller must call setElement before trying to show the popup");this.Ze();var a=Uk(this.q);this.Wma&&this.he.m(a,CG,this.Xma,!0);if(this.xaa)if(this.he.m(a,Gs,this.Aaa,!0),Ak){var b;try{b=a[qb]}catch(c){}for(;b&&b[sd]==Uaa;){try{var d=b[zA]||b[Jy][Ld]}catch(e){break}a=d;b=a[qb]}this.he.m(a,Gs,this.Aaa,!0);this.he.m(a,fta,this.zaa)}else this.he.m(a,LD,this.zaa);this.Mg==YJ?(ib(this.q[x],Sh),hm(this.q,!0)):this.Mg==TH&&this.Ze();this.ZC=!0;this.d0= +vi();this.WB?(Ot(this.WB,sF,this.Baa,!1,this),this.WB[Pz]()):this.Baa()}};W.DD=function(a){if(!this.ZC||!this[fq]({type:FD,target:a}))return!1;this.he&&this.he.mc();this.ZC=!1;vi();this.rC?(Ot(this.rC,sF,ui(this.lea,a),!1,this),this.rC[Pz]()):this.lea(a);return!0};W.lea=function(a){this.Mg==YJ?this.Opa?Wt(this.Fca,0,this):this.Fca():this.Mg==TH&&(this.q[x].top=ema);this.m_(a)};W.Fca=function(){ib(this.q[x],Sg);hm(this.q,!1)};W.JY=function(){return this[fq](GD)};W.Baa=function(){this[fq](qJ)}; +W.m_=function(a){this[fq]({type:gG,target:a})};W.Aaa=function(a){a=a[ar];pl(this.q,a)||pCa(this,a)||this.Zca&&!pl(this.Zca,a)||150>vi()-this.d0||this.DD(a)};W.Xma=function(a){27==a[lq]&&this.DD(a[ar])&&(a[eq](),a[yq]())};W.zaa=function(a){if(this.Ypa){var b=Uk(this.q);if("undefined"!=typeof ea[qb]){if(a=b[qb],!a||pl(this.q,a)||a[Tc]==boa)return}else if(a[ar]!=b)return;150>vi()-this.d0||this.DD()}};function pCa(a,b){return Vi(a.f$||[],function(a){return b===a||pl(a,b)})} +W.B=function(){eL.e.B[L](this);this.he.Z();wt(this.WB);wt(this.rC);delete this.q;delete this.he;delete this.f$};function fL(a,b){this.t9=4;this.za=b||void 0;eL[L](this,a)}Y(fL,eL);Sw(fL[K],function(){return this.za||null});Hx(fL[K],function(a){this.za=a||void 0;this.R()&&this.Ze()});fL[K].Ze=function(){if(this.za){var a=!this.R()&&this.bc()!=TH,b=this.a();a&&(ib(b[x],Sg),hm(b,!0));this.za.Ze(b,this.t9,this.uwa);a&&hm(b,!1)}};function gL(a,b,c){this.U=c||(a?Sk(Vk(a)):Sk());fL[L](this,this.U.j(P,{style:Mxa}));this.xb=new Kk(1,1);this.Pa=new sk;a&&this.dA(a);null!=b&&this.Pr(b)}Y(gL,fL);var hL=[];W=gL[K];W.eg=null;mb(W,"charts-tooltip");W.VO=500;W.i$=0;W.ia=function(){return this.U};W.dA=function(a){a=Vk(a);this.Pa.add(a);Lt(a,Is,this.ko,!1,this);Lt(a,Hs,this.fU,!1,this);Lt(a,PH,this.eea,!1,this);Lt(a,Kg,this.Du,!1,this);Lt(a,LD,this.fU,!1,this)}; +W.detach=function(a){if(a)a=Vk(a),qCa(this,a),this.Pa[Qb](a);else{for(var b=this.Pa.Ua(),c=0;a=b[c];c++)qCa(this,a);this.Pa[Yb]()}};function qCa(a,b){Pt(b,Is,a.ko,!1,a);Pt(b,Hs,a.fU,!1,a);Pt(b,PH,a.eea,!1,a);Pt(b,Kg,a.Du,!1,a);Pt(b,LD,a.fU,!1,a)}W.Pr=function(a){ql(this.a(),a)};W.s1=function(a){var b=this.a();b&&SK(b,a)};W.Iw=function(a){var b=this.a();b&&kl(b);gL.e.Iw[L](this,a);a&&(b=this.U.gc()[Td],b[Fb](a,b[Dc]))};W.Gv=function(){return xl(this.a())};W.S7=function(){return this.a()[nd]}; +Pp(W,function(){return this.Bv?this.R()?4:1:this.$I?3:this.R()?2:0});W.JY=function(){if(!eL[K].JY[L](this))return!1;if(this[sA])for(var a,b=0;a=hL[b];b++)pl(a.a(),this[sA])||a[Ny](!1);$i(hL,this)||hL[C](this);a=this.a();mb(a,this[Jd]);iL(this);Lt(a,Is,this.Gaa,!1,this);Lt(a,Hs,this.Faa,!1,this);jL(this);return!0}; +W.m_=function(){ej(hL,this);for(var a=this.a(),b,c=0;b=hL[c];c++)b[sA]&&pl(a,b[sA])&&b[Ny](!1);this.Haa&&kL(this.Haa);Pt(a,Is,this.Gaa,!1,this);Pt(a,Hs,this.Faa,!1,this);Ex(this,void 0);0==this[Hq]()&&(this.iQ=!1);eL[K].m_[L](this)};W.Tea=function(a,b){this[sA]==a&&this.Pa[Rc](this[sA])&&(this.iQ||!this.Nwa?(this[Ny](!1),this.R()||(Ex(this,a),this[xA](b||this.PP(0)),this[Ny](!0))):Ex(this,void 0));this.Bv=void 0};W.d2=function(){return this.Pa};W.vF=function(){return this.eg}; +W.Rta=function(a){this.$I=void 0;a==this[sA]&&(null!=this.eg&&(this.eg==this.a()||this.Pa[Rc](this.eg))||this.Z$&&this.Z$.eg||this[Ny](!1))};function rCa(a,b){var c=El(a.U);a.xb.x=b[Dd]+c.x;a.xb.y=b[Ed]+c.y}W.ko=function(a){var b=lL(this,a[ar]);this.eg=b;iL(this);b!=this[sA]&&(Ex(this,b),this.Bv||(this.Bv=Wt(X(this.Tea,this,b,void 0),this.VO)),sCa(this),rCa(this,a))};function lL(a,b){try{for(;b&&!a.Pa[Rc](b);)b=b[je];return b}catch(c){return null}}W.eea=function(a){rCa(this,a);this.iQ=!0}; +W.Du=function(a){this.eg=a=lL(this,a[ar]);this.iQ=!0;if(this[sA]!=a){Ex(this,a);var b=this.PP(1);iL(this);this.Bv||(this.Bv=Wt(X(this.Tea,this,a,b),this.VO));sCa(this)}};W.PP=function(a){return 0==a?(a=this.xb[Bc](),new mL(a)):new nL(this.eg)};function sCa(a){if(a[sA])for(var b,c=0;b=hL[c];c++)pl(b.a(),a[sA])&&(b.Z$=a,a.Haa=b)}W.fU=function(a){var b=lL(this,a[ar]),c=lL(this,a[bq]);b!=c&&(b==this.eg&&(this.eg=null),jL(this),this.iQ=!1,!this.R()||a[bq]&&pl(this.a(),a[bq])?Ex(this,void 0):kL(this))}; +W.Gaa=function(){var a=this.a();this.eg!=a&&(iL(this),this.eg=a)};W.Faa=function(a){var b=this.a();this.eg!=b||a[bq]&&pl(b,a[bq])||(this.eg=null,kL(this))};function jL(a){a.Bv&&(Xt(a.Bv),a.Bv=void 0)}function kL(a){2==a[Hq]()&&(a.$I=Wt(X(a.Rta,a,a[sA]),a.i$))}function iL(a){a.$I&&(Xt(a.$I),a.$I=void 0)}W.B=function(){this[Ny](!1);jL(this);this[Rz]();this.a()&&kl(this.a());this.eg=null;delete this.U;gL.e.B[L](this)};function mL(a,b){ZK[L](this,a,b)}Y(mL,ZK); +mL[K].Ze=function(a,b,c){b=Tl(a);b=Vl(b);c=c?new Fl(c.top+10,c[cd],c[Mc],c[G]+10):new Fl(10,0,0,10);WK(this.X,a,4,c,b,9)&496&&WK(this.X,a,4,c,b,5)};function nL(a){YK[L](this,a,3)}Y(nL,YK);nL[K].Ze=function(a,b,c){var d=new Kk(10,0);TK(this[yA],this.EI,a,b,d,c,9)&496&&TK(this[yA],2,a,1,d,c,5)};function oL(a){var b=null,c=null;ri(a)?b=a:c=a;this.fqa=b;this.q=c;this.qT=null}oL[K].bo=function(a){this.qT=a;this.q&&Tm(this.q,a)};oL[K].Uu=function(){return this.q?Vea(this.q):this.qT};oL[K].a=function(){this.q||(this.q=this.fqa(),null===this.qT||Tm(this.q,this.qT));return this.q};function pL(){this.md=[]}W=pL[K];W.Tj=function(a){this.md[C](a)};hx(W,function(a,b){this.Tj(qL(a,b))});W.da=function(a,b){this.Tj({type:SG,data:{x:a,y:b}})};W.Bp=function(a,b,c,d,e,f){this.Tj({type:UE,data:{x1:a,y1:b,Hb:c,Lb:d,x:e,y:f}})};W.xf=function(a,b,c,d,e,f,g){this.Tj({type:rD,data:{jC:a,kC:b,Gi:c,Hi:d,ax:e,Lr:f,nba:g}})}; +function rL(a,b,c){if(0!=b[J])if(0==a.md[J]?a[Hz](b[0].x,b[0].y):a.da(b[0].x,b[0].y),c)for(var d=1;dd?(this.na[mz](1,d/c),a=c):(this.na[mz](c/d,1),a=d);this.na.arc(0,0,a,0,2*h.PI,!1);this.na[ic]();this.na[$b]();this.na[nz]();return HL(this)};W.fl=function(a,b,c,d,e){this.yi(e);this.na[qz](a,b,c,d);this.na[aA](a,b,c,d);return HL(this)};W.o0=function(){return HL(this)};W.l1=function(a,b){this.yi(b);this.na[ic]();this.na[$b]();this.$da=!1;return HL(this)};W.gx=function(a,b,c,d,e,f,g){return this.Vs(a,b,c,d,0,e,f,g)}; +W.zL=function(a,b,c,d,e,f,g,k){var l=uL(b,d,f),n=uL(c,e,f),p=xCa(new AL(b,c,d,e));return this.Vs(a,l,n,p,Gj(b,c,d,e),f,g,k)}; +W.Vs=function(a,b,c,d,e,f,g,k){yCa(this.na,k);this.na[Wy]();e=Dj(e);d=b*h.sin(-e)+c*h.cos(-e);b=b*h.cos(-e)-c*h.sin(-e);this.na[Zy](e);g==AJ?d+=4*k[yc]/5:g==iE?d+=k[yc]/3:g==sF&&(d-=k[yc]/5);f!=AJ&&(f==iE?b-=this.qD(a,k)[r]/2:f==sF&&(b-=this.qD(a,k)[r]));this.na.strokeText(a,b,d);this.na[jy](a,b,d);k.Se&&(this.na[Nz](),e=k[yc]/15,d+=e+1,1>e&&(e=1),ax(this.na,e),this.na[py](b,d),this.na[zz](this.na.measureText(a)[r]+b,d),ix(this.na,this.na.fillStyle),this.na[$b]());this.na[nz]();return HL(this)}; +W.s0=function(){return HL(this)};W.EA=function(a){if(null===a)return HL(this);this.cU=a;this.na[Wy]();this.na[Nz]();Iw(this.na,NI);this.na[kA](a[G],a.top,a[r],a[A]);this.na.clip();return HL(this)};W.YF=function(){var a=this.cU;this.cU&&(this.cU=null,this.na[nz]());return a};W.uF=function(){return HL(this)};W.nd=function(a,b,c){GL(this);this.na[py](b,c)};W.xa=function(a,b,c){GL(this);this.na[zz](b,c)};W.lr=function(a,b,c,d,e,f,g){GL(this);this.na.bezierCurveTo(b,c,d,e,f,g)}; +W.Qi=function(){GL(this);this.na[vz]()};W.Wm=function(a,b,c,d,e,f,g,k){GL(this);f=Dj(f-90);g=Dj(g-90);a=h.max(d,e);this.na[Wy]();this.na[Tz](b,c);this.na[mz](d/a,e/a);this.na.arc(0,0,a,f,g,!k);this.na[nz]()};W.Em=function(){};W.yg=function(){};W.Yj=function(){};W.gS=function(){};W.hS=function(){};W.hd=function(){};W.qD=function(a,b){yCa(this.gea,b);return new Pk(this.gea.measureText(a)[r],b[yc])};W.k2=function(){return HL(this)};W.pj=function(){};var KL;function LL(a,b){b?a[w](vh,b):a[Uc](vh)}function ML(a,b,c){li(c)&&(c=c[me](se));var d=qg+b;if(c===O||void 0==c)KL||(KL={atomic:!1,autocomplete:Q,dropeffect:Q,haspopup:!1,live:ZH,multiline:!1,multiselectable:!1,orientation:Rh,readonly:!1,relevant:zqa,required:!1,sort:Q,busy:!1,disabled:!1,hidden:!1,invalid:Gg}),c=KL,b in c?a[w](d,c[b]):a[Uc](d);else a[w](d,c)}function NL(a,b){var c=a[Xd](qg+b);return null==c||void 0==c?O:String(c)};function OL(a){this.n=a;this.G=new Vv}Y(OL,ut);W=OL[K];W.pc=function(){return this.n};va(W,function(){this.gG();this.G=new Vv});W.gG=function(){hl(this.n);this.G.mc();wt(this.G)};W.B=function(){this.gG();OL.e.B[L](this)};W.hc=function(a,b,c){this.G.m(a,b,c)};function PL(a,b){zL[L](this,a,b);this.Cp=null;this.kQ={};this.j_={};this.qD(Doa,{fontSize:8,ab:gC,bold:!1,Tc:!1})}Y(PL,zL);function zCa(a,b){a.Cp=a.Za(cF);a.Cp[w](qG,cF);a.kQ={};a.j_={};a.H$={};b[q](a.Cp)}W=PL[K];W.aR=function(a,b){pa(this,a);Sa(this,b);var c=this.Za(KJ);c[w](Vh,a);c[w](Rg,b);c[x].overflow=Sg;c[w](vD,Una);this.ra[q](c);zCa(this,c);return new oL(c)}; +W.ul=function(a){if(a instanceof bi.SVGElement&&a[Tc][pe]()!==nI){var b=a.getBBox();return b.y|b.x|b[A]|b[r]?new Fl(b.y,b.x+b[r],b.y+b[A],b.x):PL.e.ul[L](this,a)}return PL.e.ul[L](this,a)};W.M4=function(){for(var a=this.wt.a(),b=a[Zb],c=b[J];1=l&&(l=360+l);var n=2*h.PI*h.min(d,e);.1>h.abs(l/360*n)&&(l=(.1/n*360-h.abs(l))*Hj(l)/2,f-=l,g+=l)}f=Bj(f,360);g=Bj(g,360);var n=Ej(g-90,d),p=Fj(g-90,e);l=k?g-f:f-g;0>l&&(l+=360);a[C](of+d+Re+e+cma+(180Bj(g-f,360)||!k&&180>Bj(f-g,360))||a[C]((k?Ppa:eC)+(b-d)+Re+(c-e)+Re+(b+d)+Re+(c+e)+Re+(b+l)+Re+(c+n)+Re+(b+p)+Re+(c+s))};W.Em=function(a,b,c){a[x].top=this.Zb(c);Za(a[x],this.Zb(b))};W.yg=function(a,b){pa(a[x],this.Zb(b))};W.Yj=function(a,b){Sa(a[x],this.Zb(b))};W.gS=function(a,b){Za(a[x],this.Zb(b))}; +W.hS=function(a,b){a[x].top=this.Zb(b)};W.hd=function(a,b,c){0==c?xw(a,!1):(xw(a,!0),b&&kx(a,b),Hw(a,c))};W.qD=function(a,b){var c=this.pD;qa(c[Ub],a);var d=c[x];fx(d,b.ab);Fa(d,this.Zb(b[yc]||0));sx(d,b[Id]?MD:O);Cx(d,b.Tc?AG:O);Ra(d,es);var e=c[Kd],c=c[$d];Ra(d,Q);b[Id]&&(e*=1.1);b.Tc&&(e*=.9);return new Pk(e,c)};W.k2=function(){if(null!=this.Nv)return this.Nv;var a=cl(P,{style:GBa});this.pD[q](a);Ra(this.pD[x],es);this.Nv=a[Ab]-a[Kd];Ra(this.pD[x],Q);kl(a);return this.Nv}; +W.Zb=function(a){return h[E](a)+U};W.ie=function(a){return this.qP[Sb](a)}; +W.pj=function(a,b,c){for(var d=a[yd],e=0;eea[fe]:!Ik(df):!1)?QL:PL;if(this.xQ=b||d)d=this.Lm[Sb](rG),fb(d,this.Ek),d.id=this.Ek,pa(d,this.Qk[r][kc]()),Sa(d,this.Qk[A][kc]()),bx(d,0), +nx(d,WH),Vw(d,0),Kw(d,0),d.allowTransparency=Mh,b||cb(d,Lva),this.Lm[q](this.ra,d),d=d[zA]||d[Jy][Ld],d[Mq](),a=[],b?(a[C](Jna),a[C](YB),a[C](ZB)):(a[C](Dna),a[C](Kna),a[C](kla),a[C](lla),a[C](YB)),a[C](Rna),a[C](CBa),a[C](Dua),a[C](ela),a[C](Zh),a[C](Ana),a[C](TB),a[C](Ena),a[C](ila),a[C](mf),a[C](Hna),a[C](RB),a[C](UB),d[ey](a[me](re)),d[bz]();CCa(this,c)}Y(RL,ut);function CCa(a,b){var c=X(a.nua,a),d=X(a.oua,a);SL(c,d,b)}W=RL[K]; +W.oua=function(){if(this.xQ){var a;a=(a=this.Lm.a(this.Ek))?a[zA]||a[Jy][Ld]:null;var b=this.Vl=a[md](pya);b&&(b.referencepoint=!0);this.s_=TL(a[Td],this.Qk)}else this.Vl=this.Lm[Sb](P),Ml(this.Vl,qh,th),$l(this.Vl,this.Qk),this.Vl.dir=$G,this.ra[q](this.Vl),this.s_=TL(this.ra,this.Qk);this.os=!0};function TL(a,b){var c=Sk(a),d=c[Sb](P),e=d[x];Ra(e,Q);Ba(e,pg);e.top=b[A]+10+U;Za(e,b[r]+10+U);Gw(e,YH);ML(d,Sg,!0);d[w](uD,!0);e=c.gc();c[q](d,e[Db](se));c[q](a,d);return d} +W.nua=function(){if(!this.xQ)return!0;var a;return(a=(a=this.Lm.a(this.Ek))?a[Jy]||bl(a[zA]||a[Jy][Ld]):null)&&a._loaded};W.jb=function(a){if(!this.os)return null;for(a=null!=a?a:0;this.zQ[J]<=a;){var b=Sk(this.Vl)[Sb](P);Ml(b,qh,pg);Ql(b,0,0);$l(b,GB,GB);this.Vl[q](b);b=new this.eqa(b,this.s_);vt(this,b);this.zQ[C](b)}return this.zQ[a]};W.lA=function(){if(!this.os)return null;if(!this.xk){var a;a=this.Lm[Sb](P);this.xk=new OL(a);this.Lm[q](this.ra,this.xk.pc())}return this.xk}; +W.Zq=function(a,b){SL(X(function(){return null!=this.Vl},this),a,b)};Jx(W,function(a,b){if(!Qk(this.Qk,a))if(this.Qk=a,this.xQ){var c=this.Lm.a(this.Ek);c&&(pa(c,this.Qk[r][kc]()),Sa(c,this.Qk[A][kc]()))}else this.os&&$l(this.Vl,this.Qk);this.os||CCa(this,b)});function SL(a,b,c,d){a[L]()?b[L]():DCa(a,b,c,d)}function DCa(a,b,c,d){var e=null!=d?d:10;ba[xq](c(function(){SL(a,b,c,e)}),e)}W.B=function(){this.Lm.Nc(this.ra);wt(this.xk);Z(this.zQ,function(a){wt(a)});RL.e.B[L](this)};function UL(){this.md=[]}W=UL[K];W.Tj=function(a,b){this.md[C]({brush:a,d_:b})};hx(W,function(a,b){this.Tj(null,qL(a,b))});W.da=function(a,b,c){this.Tj(a,{type:SG,data:{x:b,y:c}})};W.Bp=function(a,b,c,d,e,f,g){this.Tj(a,{type:UE,data:{x1:b,y1:c,Hb:d,Lb:e,x:f,y:g}})};W.xf=function(a,b,c,d,e,f,g,k){this.Tj(a,{type:rD,data:{jC:b,kC:c,Gi:d,Hi:e,ax:f,Lr:g,nba:k}})};Qw(W,function(a){var b=this.md[0].d_[$];this.da(a,b.x,b.y)}); +function ECa(a){switch(a[H]){case SH:case SG:case UE:return a=a[$],new Kk(a.x,a.y);case rD:a=a[$];var b=Bj(a.Lr,360);return new Kk(a.jC+Ej(b-90,a.Gi),a.kC+Fj(b-90,a.Hi));default:return new Kk(0,0)}} +W.Bc=function(a){for(var b=[],c=null,d=0;db,p=null,s=null,n=null,l=e[J]-2,f=0;f<=l;f++)if(!Lk(e[f],e[f+1])){var u;u=e[f];var v=e[f+1],z,B=(v.y-u.y)/(v.x-u.x);z= +na(B)?{Ul:B,Yo:u.y-B*u.x}:{Ul:da,Yo:u.x};B=z.Ul;z=z.Yo;if(B==da)u={Ul:da,Yo:0>v.y-u.y?z+b:z-b};else{var D=b*h[zd](1+B*B);u={Ul:B,Yo:0=h.abs(c-e))return d==f||1E-5>=h.abs(d-f)?da:null;if(c==da)return new Kk(d,e*d+f);if(e==da)return new Kk(f,c*f+d);var g=e-c;return new Kk(-(f-d)/g,(d*e-c*f)/g)};var XL=function(){function a(a,b){if(-1===b[qd](Ue))return b;var c=a[rc](jr);c.pop();var d=b[rc](jr),l=d.pop();if(d[0]===Ue)d[le][Sc](d,[0,1][Bb](c));else{for(var n=0,p=d[J];nb)throw spa;a.vb(GI,this.oB);a.vb(gs,this.Hl);a.vb(PH, +this.Hl);a.vb(NH,this.Hl);a.vb(OH,this.Hl);a.vb(UF,this.nB);a.vb(II,this.GG);a.kl=null;this.mg[le](b,1);return!0}function u(a){if(0>this.mg[qd](a))throw spa;a[kz](II,[a]);return this}lb(c,b.Ir(a[K]));Ea(c[K],c);c.mh=Hoa;c[K].hu=d;c[K].add=d;va(c[K],function(){for(var a=0,b=this.mg[J];ad*c?d+c:d}function b(c,d,f){c=a(c,360);d=a(d,360);dIB&&(D=.5);h.abs(v)>IB&&(v=.5);0D&&e(D);0v&&e(v);v=2*a.y-4*b.y+2*c.y;z=b.y-a.y;B=-a.y+3*b.y+d.y-3*c.y;D=(-v+h[zd](v*v-4*z*B))/(2*B);v=(-v-h[zd](v*v-4*z*B))/(2*B);h.abs(D)>IB&&(D=.5);h.abs(v)>IB&&(v=.5);0D&&e(D);0v&&e(v);D={x1:h.min[Sc](h,f),y1:h.min[Sc](h,u), +Hb:h.max[Sc](h,f),Lb:h.max[Sc](h,u)};pa(D,D.Hb-D.x1);Sa(D,D.Lb-D.y1);return D}}});b(lza,[vB,zE,gH],function(a,b,c){function d(b){a[L](this,b);this.fo={x1:null,y1:null,Hb:null,Lb:null,width:0,height:0};this.Pp=[]}lb(d,b.Ir(a[K]));Ea(d[K],d);d.mh=dpa;d[K].jB=function(){return!1};hx(d[K],function(a,b){this.Pp[C](Uoa+a+se+b);return this});d[K].line=function(a,b){this.Pp[C](Soa+a+se+b);return this};d[K].arc=function(a,b,d,e,f,k,z){f=c.pN(f,360);k=c.pN(k,360);270===f&&0===k?this.Pp[C](bC+d+se+e+JA+(d+a)+ +se+b):180===f&&270===k?this.Pp[C](bC+d+se+e+JA+a+se+(b-e)):0===f&&90===k?this.Pp[C](bC+d+se+e+JA+a+se+(b+e)):90===f&&180===k?this.Pp[C](bC+d+se+e+JA+(a-d)+se+b):this.Pp[C](Coa+a+se+b+se+d+se+e+se+f+se+k+se+ha(z));return this};Qw(d[K],function(){this.Pp[C](hg);return this});return d});b(mza,[vB,zE],function(a,b){function c(b,d,f,g,s){s=s||{};s.x=null==b?s.x:b;s.y=null==d?s.y:d;pa(s,null==f?s[r]:f);Sa(s,null==g?s[A]:g);a[L](this,s)}lb(c,b.Ir(a[K]));Ea(c[K],c);c.mh=lpa;c[K].jB=function(){this.fo={x:this[x](AK), +y:this[x](Wh),width:this[x](Vh),height:this[x](Rg)};return!0};Ia(c[K],function(){return new c(this[x](AK),this[x](Wh),this[x](Vh),this[x](Rg),this[x]())});return c});b(oza,[vB,zE],function(a,b){function c(b,d,f,g){g=g||{};g.x=null==b?g.x:b;g.y=null==d?g.y:d;cx(g,null==f?g[id]:f);a[L](this,g)}lb(c,b.Ir(a[K]));Ea(c[K],c);c.mh=UC;return c});b(pJ,[Fma,wB,xB,yB,zB,AB,CB],function(a,b,c,d,l,n,p){return{cV:a,Circle:b,DG:c,lu:d,wW:l,Rect:n,Text:p}});b(Hya,[],function(){function a(b){for(var c=0,d=arguments[J];c< +d;c++)if(null!=arguments[c])return arguments[c]}function b(c,d,f){s(c,d,f,!1);d=a(d[x](FF),d[x](jua),d[x](DF));typeof d!==Eh&&typeof d!==T||c[w](DF,d)}function c(b,d){var f=a(d[x](iua),d[x](kua),d[x](EF));typeof f!==Eh&&typeof f!==T||b[w](EF,f)}function d(b,c,f){s(b,c,f,!0);c=a(c[x](JJ),c[x](nAa),c[x](GJ));typeof c!==Eh&&typeof c!==T||b[w](GJ,c)}function l(b,c){var d=a(c[x](lAa),c[x](oAa),c[x](HJ));typeof d!==Eh&&typeof d!==T||b[w](HJ,d)}function n(b,c){var d=a(c[x](mAa),c[x](pAa),c[x](IJ));typeof d!== +Eh&&typeof d!==T||b[w](IJ,d)}function p(a,b){var c=b[x](lh);typeof c!==Eh&&typeof c!==T||a[w](lh,c)}function s(a,b,c,d){var e=d?GJ:DF,f=b[x](e+Kma),g=b[x](e+Lma);d=a[Xd](e);if(f&&g){var k=b[x](e+Mma)||FB,l=b[x](e+Oma)||FB,n=b[x](e+Nma)||GB,p=b[x](e+Pma)||FB,e=[f,g,k,l,n,p][me](),s=b.Jr;if(b=s?R[e]:M[e])u=b[Xd](qG);else{b=ea[Ty](nG,WG);var u=cya+(s?V++:S++);b[w](qG,u);b[w](BK,k);b[w](DK,l);b[w](CK,n);b[w](EK,p);k=ea[Ty](nG,EJ);k[w](iAa,f);k[w]($H,FB);f=ea[Ty](nG,EJ);f[w](iAa,g);f[w]($H,GB);b[q](k); +b[q](f);for(s?R[e]=b:M[e]=b;c[sd]!==KJ;)c=c[je];c=c[Rb](cF)||c;c[Fb](b,c[Ub])}c=hK+u+Oe;d!==c&&a[w](DF,c)}else d&&d[hc](0,5)===hK&&a[Uc](e)}function u(a,b,c){var d=b[x](lJ)||0,e=b[x](kJ)||0;if(d||e){var f=b[x](dza)||b[x](cza)||b[x](mJ)||0,g=b[x](fza)||b[x](eza)||b[x](nJ)||0,k=[d,e,f,g][me](),l=b.Jr,n=l?Ja[k]:ma[k];if(n)b=n[Xd](qG);else{n=ea[Ty](nG,Ig);b=dya+(l?Va++:Ha++);n[w](qG,b);var p=ea[Ty](nG,eua);p[w](sG,ypa);p[w](eAa,d);d=ea[Ty](nG,gua);d[w](lF,f);d[w](mF,g);if(null!=e){var s=ea[Ty](nG,cua), +u=ea[Ty](nG,dua);u[w](Nh,VG);u[w](Jza,e)}var f=ea[Ty](nG,fua),g=ea[Ty](nG,xF),v=ea[Ty](nG,xF);v[w](sG,zpa);n[q](p);n[q](d);null!=e&&(s[q](u),n[q](s));f[q](g);f[q](v);n[q](f);for(l?Ja[k]=n:ma[k]=n;c[sd]!==KJ;)c=c[je];c=c[Rb](cF)||c;c[Fb](n,c[Ub])}c=a[Xd](Ig);b=hK+b+Oe;c!==b&&a[w](Ig,b)}else a.hasAttribute(Ig)&&a[Uc](Ig)}var v={"fill.color":b,fillColor:b,fill:b,"fill.gradient.from":b,"fill.gradient.to":b,"fill.gradient.x1":b,"fill.gradient.y1":b,"fill.gradient.x2":b,"fill.gradient.y2":b,"fill.opacity":c, +fillOpacity:c,"fill-opacity":c,opacity:p,"stroke.color":d,strokeColor:d,stroke:d,"stroke.gradient.from":d,"stroke.gradient.to":d,"stroke.gradient.x1":d,"stroke.gradient.y1":d,"stroke.gradient.x2":d,"stroke.gradient.y2":d,"stroke.opacity":l,strokeOpacity:l,"stroke-opacity":l,"stroke.width":n,strokeWidth:n,"stroke-width":n,x:function(a,b){var c=b[x](AK);a[w](AK,c)},y:function(a,b){var c=b[x](Wh);a[w](Wh,c)}},z={},B={},D=0,N=0,M={},R={},S=0,V=0,ma={},Ja={},Ha=0,Va=0;return{Eha:u,Yw:function(a,e,s){p(a, +e);b(a,e,s);c(a,e);d(a,e,s);l(a,e);n(a,e);u(a,e,s);var v=e[x](ssa),M=e[x](rsa);if(v&&M){var ma=e[x](tsa)||0,R=e[x](usa)||0,S=[ma,R,v,M][me](),V=e.Jr;if(e=V?B[S]:z[S])Ja=e[Xd](qG);else{e=ea[Ty](nG,vsa);var Ja=bya+(V?N++:D++);e[w](qG,Ja);var Ha=ea[Ty](nG,EI);Ha[w](AK,ma);Ha[w](Wh,R);Ha[w](Vh,v);Ha[w](Rg,M);e[q](Ha);for(V?B[S]=e:z[S]=e;s[sd]!==KJ;)s=s[je];s=s[Rb](cF)||s;s[Fb](e,s[Ub])}a[w](AE,hK+Ja+Oe)}else a.hasAttribute(AE)&&a[Uc](AE)},iB:function(a,b,c,d,e){e=e||{};return(b=e[b]||v[b])?(b(a,c,d), +!0):!1},Gha:function(){for(var a in ma)if(ma[zc](a)){var b=ma[a];b[je][Ud](b);delete ma[a]}Ha=0;ma={};for(var c in M)ma[zc](c)&&(a=M[c],a[je][Ud](a),delete M[c]);S=0;M={};for(var d in z)z[zc](d)&&(c=z[d],c[je][Ud](c),delete z[d]);D=0;z={}}}});b(yya,[BB],function(a){function b(a,c){var d=c[x](AK);a[w](WE,d)}function c(a,b){var d=b[x](Wh);a[w](XE,d)}function d(a,b){var c=b[x](sh);a[w](sh,c)}var l={},n={r:d,x:b,y:c};aq(l,function(l,n,u){u=u||ea[Ty](nG,yE);b(u,l);c(u,l);d(u,l);a.Yw(u,l,n);n&&u[je]!== +n&&n[q](u);return u});l.ih=function(b,c,d,f){a.iB(f,c,b,d,n)};return l});b(zya,[BB],function(a){return{draw:function(b,c,d){d=d||ea[Ty](nG,oF);var l=b[x](AK);d[w](WE,l);l=b[x](Wh);d[w](XE,l);l=b[x](VI);d[w](VI,l);l=b[x](WI);d[w](WI,l);a.Yw(d,b,c);c&&d[je]!==c&&c[q](d);return d},ih:function(b,c,d,l){a.iB(l,c,b,d)}}});b(Bya,[BB],function(a){function b(a,c){var d=c[x](BK);a[w](BK,d)}function c(a,b){var d=b[x](DK);a[w](DK,d)}function d(a,b){var c=b[x](CK);a[w](CK,c)}function l(a,b){var c=b[x](EK);a[w](EK, +c)}var n={},p={x1:b,x2:d,y1:c,y2:l};aq(n,function(n,p,v){v=v||ea[Ty](nG,SG);b(v,n);d(v,n);c(v,n);l(v,n);a.Yw(v,n,p);p&&v[je]!==p&&p[q](v);return v});n.ih=function(b,c,d,f){a.iB(f,c,b,d,p)};return n});b(Dya,[gH,BB],function(a,b){function c(b){b=b.Pp;for(var d=[],f=0,g=b[J];fD&&(D+=360);s=bC+s+se+B+bla+ha(180< +D)+se+ha(u)+se+v+se+z}d[C](s)}return d[me](se)}return{o6:function(a,d,e){var p=e||ea[Ty](nG,nI);e||p[w](Ag,c(d));b.Yw(p,d,a);return p},Hha:c}});b(Cya,[Gma,BB],function(a,b){return{draw:function(b,c,d){b=a.o6(c,b,d);c&&b[je]!==c&&c[q](b);return b},ih:function(a,c,d,e){b.iB(e,c,a,d)}}});b(nza,[zB],function(a){return{Iha:function(a){var b=a[x](PE)||0,c=a[x](QE)||0,d=a[x](RE)||0,e=a[x](SE)||0,p=a[x](JE)||0,s=a[x](KE)||0,u=a[x](LE)||0;a=a[x](ME)||0;return b||c||d||e||p||s||u||a},n6:function(b){var c=b[x](PE)|| +0,d=b[x](QE)||0,l=b[x](RE)||0,n=b[x](SE)||0,p=b[x](JE)||0,s=b[x](KE)||0,u=b[x](LE)||0,v=b[x](ME)||0,z=b[x](Vh),B=b[x](Rg),D=b[x](AK),N=b[x](Wh),D=0<=z?D:D+z,N=0<=B?N:N+B,z=h.abs(z),B=h.abs(B);if(c+l>z)var M=z/(c+l),c=c*M,d=d*M,l=l*M,n=n*M;p+u>z&&(M=z/(p+u),p*=M,s*=M,u*=M,v*=M);d+s>B&&(M=B/(d+s),c*=M,d*=M,p*=M,s*=M);n+v>B&&(M=B/(n+v),l*=M,n*=M,u*=M,v*=M);return(new a(b[x]()))[Hz](D+z-l,N).arc(D+z-l,N+n,l,n,270,0,!0).line(D+z,N+B-v).arc(D+z-u,N+B-v,u,v,0,90,!0).line(D+p,N+B).arc(D+p,N+B-s,p,s,90,180, +!0).line(D,N+d).arc(D+c,N+d,c,d,180,270,!0)[bz]()}}});b(Eya,[Dma,Gma,BB],function(a,b,c){return{draw:function(d,l,n){var p=d[x](NE),s=d[x](OE),u=d[x](Vh),v=d[x](Rg),z=d[x](AK),B=d[x](Wh),z=0<=u?z:z+u,B=0<=v?B:B+v,u=h.abs(u),v=h.abs(v);typeof p===T&&typeof s===T||!a.Iha(d)?(n=n||ea[Ty](nG,EI),n[w](AK,z),n[w](Wh,B),n[w](Vh,u),n[w](Rg,v),null!=p&&typeof p===T&&n[w](VI,p),null!=s&&typeof s===T&&n[w](WI,s),c.Yw(n,d,l)):(d=a.n6(d),n=b.o6(l,d,n));l&&n[je]!==l&&l[q](n);return n},ih:function(d,l,n,p){if(!c.iB(p, +l,d,n))switch(l){case NE:case OE:case PE:case QE:case RE:case SE:case JE:case KE:case LE:case ME:p[Tc][pe]()===nI?(d=a.n6(d),d=b.Hha(d),p[w](Ag,d)):l===NE?p[w](VI,d[x](NE)):l===OE&&p[w](WI,d[x](OE));break;case lJ:case kJ:case dza:case cza:case mJ:case fza:case eza:case nJ:c.Eha(p,d,n);break;default:throw'unknown property on rect "'+l+'".';}}}});b(Iya,[BB,Ema],function(a){function b(a,c){var d=c[x](tua)||c[x](wua)||c[x](MF);typeof d===Eh&&fx(a[x],d)}function c(a,b){var d=b[x](uua)||b[x](NF);typeof d=== +T&&(d+=U);typeof d===Eh&&Fa(a[x],d)}function d(a,b){var c=b[x](vua)||b[x](xua);typeof c!==Eh&&typeof c!==T||sx(a[x],c)}function l(a,b){!0===b[x](AG)&&Cx(a[x],AG)}function n(a,b){!0===b[x](fK)&&(a[x].textDecoration=fK)}function p(p,s,u){var D=p[x](wwa)||p[x](swa)||0,N=p[x](Us);typeof N===Eh&&(N=N[rc](re));var M=p[x](Wh),R=!0;1===N[J]&&(N=N[0],R=!1);var S=R?O:N,V=p[x](AK);u=u&&u[Tc]===Us?u:ea[Ty](nG,Us);u.textContent=S;u[w](aya,Mh);u[w](AK,null==V?p[x](AK):V);u[w](Wh,null==M?p[x](Wh):M);u[w](Fh,Ysa); +u[x].webkitFontSmoothing=ira;a.Yw(u,p,s);l(u,p);n(u,p);b(u,p);c(u,p);d(u,p);M=u;s&&M[je]!==s&&s[q](M);s=[];if(R)for(S=0,u=N[J];Sb)return!1;if(a.LW){for(var b=a.mg,c=0,d=b[J];c=d[l])a[x](b.s6,b.jN),g--,f[l]=!0,b[kz](HF,[a,b]);else a[x](b.s6,e[l](k))});g?this.SW=n.t6[L](V,b):(this.SW=void 0,a.HW=!1,a[kz](HF,[a]))}var c,d=[],e=[],f=[];a.HW=!0;var g=a.FG[J];this.SW=n.t6[L](V,b)}function R(a){if(a===this)return this.svg;a=this.Qp[qd](a);return 0>a?null:this[oy][a]}function S(){for(var a=this.svg,b;a[Ub];)a[Ub][Tc]===cF&&(b=!0),a[Ud](a[Ub]);b&&a[q](ea[Ty](nG, +cF));this.Qp=[];this.elements=[];l.Gha();n.Fha[L](V,this.SW)}var V=function(){return this}();n.t6=V.requestAnimationFrame||V.mozRequestAnimationFrame||V.webkitRequestAnimationFrame||V.msRequestAnimationFrame||function(a){V[xq]((function(){return a[L](this,Date.now())},1E3/60))};n.Fha=V.cancelRequestAnimationFrame||V.cancelAnimationFrame||V.mozCancelRequestAnimationFrame||V.mozCancelAnimationFrame||V.webkitCancelRequestAnimationFrame||V.webkitCancelAnimationFrame||V.msCancelRequestAnimationFrame|| +V.msCancelAnimationFrame||V[cq];lb(n,b.Ir(a[K]));Ea(n[K],n);n[K].hu=function(a){return R[L](this,a)||a[Sz]()?(a[kz](GI,[a]),a):s[L](this,a,!0)};n[K].oe=function(a,b,d,e){a=new c[oA](a,b,d,e);return this.hu(a)};n[K].pk=function(a,b,d,e,f){a=new c.DG(a,b,d,e,f);return this.hu(a)};n[K].hb=function(a,b,d,e,f){a=new c[Gz](a,b,d,e,f);return this.hu(a)};n[K].JL=function(a,b,d,e,f){a=new c.lu(a,b,d,e,f);return this.hu(a)};n[K].Sd=function(a,b,d,e){d=new c[wz](a,b,d,e);return this.hu(d)};n[K].oN=function(a){if(null== +a[Sz]())throw"Attempted to remove shape that doesn't have a context.";return a[kz](II,[a])};n[K].Nha=function(a){if(a.Jr)throw m("can't stage a shape that's already staged.");if(-1!==this.Qp[qd](a))throw m("can't stage a shape that's already drawn.");a.Jr=!0;this.Qp[C](a);this[oy][C](null);a.m(UD,this.OW);a.m(UF,this.nB)};va(n[K],S);return n});b(Zxa,[],function(){function a(b,c){if(!b||b.x1>=b.Hb||b.y1>=b.Lb)throw"Error constructing QuadTree: invalid bounds given.";this.lN=c||0;this.bounds=b;this.nodes= +ga(4);this.mB=!1;Fw(this,[])}function b(a,c){if(this.mB){var d=this.JW(c);b[L](this[Yy][d],a,c)}a[C][Sc](a,this[vy]);return a}lb(a,{insert:function(a){var b=a.ul();if(this.mB){var c=this.JW(b),c=this[Yy][c],d=c[qq];b.x1>=d.x1&&b.Hb<=d.Hb&&b.y1>=d.y1&&b.Lb<=d.Lb?c.insert(a):this[vy][C](a)}else if(this[vy][C](a),4>this.lN&&4b?this[vy][le](b,this[vy][J]-b):[])}},clear:function(){Fw(this,[]);if(this.mB){for(var a= +0,b=this[Yy][J];a(this[qq].y1+this[qq].Lb)/2),c=0;a.x1>(this[qq].x1+this[qq].Hb)/2?c=b?1:2:b||(c=3);return c},split:function(){var b=(this[qq].Hb-this[qq].x1)/2,c=(this[qq].Lb-this[qq].y1)/2,d=this[qq].x1,f=this[qq].y1,p=this.lN+1;this[Yy][0]=new a({x1:d,y1:f,Hb:d+b,Lb:f+c},p);this[Yy][1]=new a({x1:d+b,y1:f,Hb:d+b+b,Lb:f+c},p);this[Yy][2]=new a({x1:d+b,y1:f+ +c,Hb:d+b+b,Lb:f+c+c},p);this[Yy][3]=new a({x1:d,y1:f+c,Hb:d+b,Lb:f+c+c},p);this.mB=!0},remove:function(a){var b=this[vy][qd](a);return 0<=b?(this[vy][le](b,1),!0):this.mB?!this[Yy][ge](function(b){return!b[Qb](a)}):!1}});return a});b(rya,[],function(){return{draw:function(a,b){b[Nz]();b.arc(a.x,a.y,a.eu,0,2*h.PI,!1);b[vz]();b[ic]()},kB:function(a,b){var c=a.x-b.x,d=a.y-b.y;return h[zd](c*c+d*d)<=a.eu}}});b(sya,[],function(){return{draw:function(a,b){b[Wy]();b[Nz]();b[Tz](a.x-a.Gi,a.y-a.Hi);b[mz](a.Gi, +a.Hi);b.arc(1,1,1,0,2*h.PI,!1);Iw(b,nB);b[ic]();b[nz]()},kB:function(a,b){var c=(b.x-a.x)/a.Gi,d=(b.y-a.y)/a.Hi;return 1>=c*c+d*d}}});b(tya,[],function(){return{draw:function(a,b){b[Wy]();b[Nz]();b[py](a.x1,a.y1);b[zz](a.Hb,a.Lb);b[vz]();ix(b,Vxa);b[$b]();b[nz]()},kB:function(a,b){var c=(a.y1-a.Lb)/(a.x1-a.Hb);return.5>h.abs(c*b.x+(a.y1-c*a.x1)-b.y)}}});b(uya,[],function(){function a(b,c){c[Nz]();for(var d=b.Pp,e=0,n=d[J];ea.x&&b.xa.y&&b.yc.x&&b.xc.y&&b.yb&&(b=f,c=a[d]);c[kz](gs)}}function u(a){a[uc][Cd]===UC&&(a.fo={width:this.Zw.measureText(a.Ke)[r],height:12,x:a.x,y:a.y})}lb(n,c.Ir(b[K]));Ea(n[K],n);n[K].hu=function(a){l[a[uc][Cd]][br](a,this.Zw); +return p[L](this,a)};n[K].oe=function(a,b,c){a=new d[oA](a,b,c);l[oA][br](a,this.Zw);return p[L](this,a)};n[K].pk=function(a,b,c,e){a=new d.DG(a,b,c,e);l.DG[br](a,this.Zw);return p[L](this,a)};n[K].hb=function(a,b,c,e){a=new d[Gz](a,b,c,e);l[Gz][br](a,this.Zw);return p[L](this,a)};n[K].JL=function(a,b,c,e){a=new d.lu(a,b,c,e);l.lu[br](a,this.Zw);return p[L](this,a)};n[K].oN=function(a){var b=this.all[qd](a);if(0>b)return!1;this.QW[Qb](a);this.all[le](b,1);pa(this.canvas,this.canvas[r]);a=0;for(b= +this.all[J];a=this.nn(d,1,0):0<=this.nn(d,0,0)&&0>=this.nn(d,1,1)}catch(e){if(!Ak)throw e;return!1}};bM[K].containsNode=function(a,b){return this.QD(cM(a),b)};bM[K].at=function(){return new aM(this.qj(),this.jn(),this.Zl(),this.Lo())};function dM(a){this.Ka=a}Y(dM,bM);function eM(a){var b=Uk(a)[td]();if(3==a[kd])b[cA](a,0),b[ay](a,a[J]);else if(fM(a)){for(var c,d=a;(c=d[Ub])&&fM(c);)d=c;b[cA](d,0);for(d=a;(c=d[Dc])&&fM(c);)d=c;b[ay](d,1==d[kd]?d[Zb][J]:d[J])}else c=a[je],a=Qi(c[Zb],a),b[cA](c,a),b[ay](c,a+1);return b}function gM(a,b,c,d){var e=Uk(a)[td]();e[cA](a,b);e[ay](c,d);return e}W=dM[K];Ia(W,function(){return new this[uc](this.Ka.cloneRange())});W.pc=function(){return this.Ka.commonAncestorContainer};W.qj=function(){return this.Ka.startContainer}; +W.jn=function(){return this.Ka.startOffset};W.Zl=function(){return this.Ka.endContainer};W.Lo=function(){return this.Ka.endOffset};W.nn=function(a,b,c){return this.Ka.compareBoundaryPoints(1==c?1==b?bi[$c].START_TO_START:bi[$c].START_TO_END:1==b?bi[$c].END_TO_START:bi[$c].END_TO_END,a)};W.isCollapsed=function(){return this.Ka[Zx]};W.Gv=function(){return this.Ka[kc]()};zw(W,function(a){var b=bl(Uk(this.qj()));this.aK(b[hA](),a)});W.aK=function(a){a.removeAllRanges();a.addRange(this.Ka)};vw(W,function(a){this.Ka[ub](a)});function hM(a){this.Ka=a}Y(hM,dM);hM[K].aK=function(a,b){if(!b||this[xz]())hM.e.aK[L](this,a,b);else a[ub](this.Zl(),this.Lo()),a[Wx](this.qj(),this.jn())};function iM(a,b){this.Ka=a;this.Wj=b}Y(iM,bM);function jM(a){var b=Uk(a)[Td].createTextRange();if(1==a[kd])b[$y](a),fM(a)&&!a[Zb][J]&&b[ub](!1);else{for(var c=0,d=a;d=d[jc];){var e=d[kd];if(3==e)c+=d[J];else if(1==e){b[$y](d);break}}d||b[$y](a[je]);b[ub](!d);c&&b[Hz](kE,c);b[tA](kE,a[J])}return b}W=iM[K];W.et=null;W.ae=null;W.Gd=null;W.$d=-1;W.Zd=-1;Ia(W,function(){var a=new iM(this.Ka[Ky](),this.Wj);a.et=this.et;a.ae=this.ae;a.Gd=this.Gd;return a}); +W.pc=function(){if(!this.et){var a=this.Ka[id],b=this.Ka[Ky](),c=a[wb](/ +$/,O);(c=a[J]-c[J])&&b[tA](kE,-c);c=b.parentElement();b=b.htmlText[wb](/(\r\n|\r|\n)+/g,se)[J];if(this[xz]()&&0c.outerHTML[wb](/(\r\n|\r|\n)+/g,se)[J];)c=c[je];for(;1==c[Zb][J]&&c.innerText==KCa(c[Ub])&&fM(c[Ub]);)c=c[Ub];0==a[J]&&(c=LCa(this,c));this.et=c}return this.et}; +function LCa(a,b){for(var c=b[Zb],d=0,e=c[J];d=a.nn(g,1,0):a.Ka[Vx](g))return LCa(a,f)}}return b}W.qj=function(){this.ae||(this.ae=kM(this,1),this[xz]()&&(this.Gd=this.ae));return this.ae};W.jn=function(){0>this.$d&&(this.$d=this.kE(1),this[xz]()&&(this.Zd=this.$d));return this.$d};W.Zl=function(){if(this[xz]())return this.qj();this.Gd||(this.Gd=kM(this,0));return this.Gd}; +W.Lo=function(){if(this[xz]())return this.jn();0>this.Zd&&(this.Zd=this.kE(0),this[xz]()&&(this.$d=this.Zd));return this.Zd};W.nn=function(a,b,c){return this.Ka[vA]((1==b?SC:GC)+VC+(1==c?SC:GC),a)}; +function kM(a,b,c){c=c||a.pc();if(!c||!c[Ub])return c;for(var d=1==b,e=0,f=c[Zb][J];ea.nn(p,1,0)&&0b||b>this.ng())throw m("Child component index out of bounds");this.Zn&&this.qd||(this.Zn={},this.qd=[]);if(a[Rx]()==this){var d=a[rA]();this.Zn[d]=a;ej(this.qd,a)}else ek(this.Zn,a[rA](),a);sM(a,this);cj(this.qd,a,b);a.Db&&this.Db&&a[Rx]()==this?(c=this.Ya(),c[Fb](a.a(),c[Zb][b]||null)):c?(this.q||this.j(),b=this.wf(b+1),a.Iz(this.Ya(),b?b.q:null)):this.Db&&!a.Db&&a.q&&a.q[je]&&1==a.q[je][kd]&&a.Fb()};W.Ya=function(){return this.q}; +W.hh=function(){null==this.pq&&(this.pq=Xl(this.Db?this.q:this.U.gc()[Td]));return this.pq};W.pw=function(a){if(this.Db)throw m(EC);this.pq=a};W.ng=function(){return this.qd?this.qd[J]:0};W.wB=function(a){if(this.Zn&&a){var b=this.Zn;a=(a in b?b[a]:void 0)||null}else a=null;return a};W.wf=function(a){return this.qd?this.qd[a]||null:null};function tM(a,b,c){a.qd&&Z(a.qd,b,c)}function vM(a,b){return a.qd&&b?Qi(a.qd,b):-1} +W.removeChild=function(a,b){if(a){var c=oi(a)?a:a[rA]();a=this.wB(c);c&&a&&(dk(this.Zn,c),ej(this.qd,a),b&&(a.He(),a.q&&kl(a.q)),sM(a,null))}if(!a)throw m("Child is not in parent component");return a};function PCa(a,b){return a[Ud](a.wf(0),b)}W.Nc=function(a){for(var b=[];this.qd&&0!=this.qd[J];)b[C](PCa(this,a));return b};function wM(a){if(a[Tx])return a[Tx];a=a[Jd];return oi(a)&&a[Lb](/\S+/g)||[]}function QCa(a,b){mb(a,b)}function xM(a,b){return a[Tx]?a[Tx][Rc](b):$i(wM(a),b)}function yM(a,b){a[Tx]?a[Tx].add(b):xM(a,b)||mb(a,a[Jd]+(0this.saa)if(this[fq](new HM(AJ,this,a[Dd],a[Ed],a)))this.iq=!0;else{this.nk||this.kR(a);return}}c=TCa(this,b,c);b=c.x;c=c.y;this.iq&&this[fq](new HM(ED,this,a[Dd],a[Ed],a,b,c))&&(UCa(this,a,b,c),a[eq]())}}; +function TCa(a,b,c){var d=El(Sk(a.qf));b+=d.x-a.j0.x;c+=d.y-a.j0.y;a.j0=d;a.Cu+=b;a.fs+=c;b=RCa(a,a.Cu);a=SCa(a,a.fs);return new Kk(b,a)}W.$ma=function(a){var b=TCa(this,0,0);Up(a,this[Dd]);Vp(a,this[Ed]);UCa(this,a,b.x,b.y)};function UCa(a,b,c,d){a.Fx(c,d);a[fq](new HM(kF,a,b[Dd],b[Ed],b,c,d))}function RCa(a,b){var c=a.G2,d=fa(c[G])?null:c[G],c=fa(c[r])?0:c[r];return h.min(null!=d?d+c:da,h.max(null!=d?d:-da,b))} +function SCa(a,b){var c=a.G2,d=fa(c.top)?null:c.top,c=fa(c[A])?0:c[A];return h.min(null!=d?d+c:da,h.max(null!=d?d:-da,b))}W.Fx=function(a,b){this.hy&&this.bI()?Ta(this[ar][x],a+U):Za(this[ar][x],a+U);this[ar][x].top=b+U};function HM(a,b,c,d,e,f,g){xt[L](this,a);Up(this,c);Vp(this,d);this.cma=e;Za(this,ci(f)?f:b.Cu);this.top=ci(g)?g:b.fs;this.n_=b}Y(HM,xt);function IM(a){Tt[L](this);this.q=a;a=Ak?rs:LD;this.ema=Lt(this.q,Ak?qs:Kg,this,!Ak);this.fma=Lt(this.q,a,this,!Ak)}Y(IM,Tt);Hp(IM[K],function(a){var b=new At(a.Qa);cb(b,a[H]==qs||a[H]==Kg?qs:rs);this[fq](b)});IM[K].B=function(){IM.e.B[L](this);Qt(this.ema);Qt(this.fma);delete this.q};function JM(a,b){rM[L](this,b);this.Ina=!!a;this.$B=null}Y(JM,rM);W=JM[K];W.qX=null;W.ee=!1;W.Cl=null;W.ej=null;W.ho=null;W.V_=!1;W.ca=function(){return lqa};W.XB=function(){return this.Cl};W.j=function(){JM.e.j[L](this);var a=this.a(),b=Di(this.ca())[rc](se);zM(a,b);ul(a,!0);hm(a,!1);VCa(this);WCa(this)};function VCa(a){if(a.Ina&&!a.ej){var b;b=a.ia().j(rG,{frameborder:0,style:zra,src:Wva});a.ej=b;mb(a.ej,a.ca()+hma);hm(a.ej,!1);gm(a.ej,0)}a.Cl||(a.Cl=a.ia().j(P,a.ca()+hma),hm(a.Cl,!1))} +function WCa(a){a.ho||(a.ho=a.ia()[Sb](Qs),hm(a.ho,!1),ul(a.ho,!0),Ba(a.ho[x],pg))}W.kaa=function(){this.V_=!1};W.Zh=function(a){return!!a&&a[Tc]==vf};W.Ef=function(a){JM.e.Ef[L](this,a);a=Di(this.ca())[rc](se);zM(this.a(),a);VCa(this);WCa(this);hm(this.a(),!1)};W.Fb=function(){this.ej&&il(this.ej,this.a());il(this.Cl,this.a());JM.e.Fb[L](this);jl(this.ho,this.a());this.qX=new IM(this.ia().gc());this.tc().m(this.qX,qs,this.Pia);KM(this,!1)}; +W.He=function(){this.R()&&this[Ny](!1);wt(this.qX);JM.e.He[L](this);kl(this.ej);kl(this.Cl);kl(this.ho)};Jw(W,function(a){a!=this.ee&&(this.Cx&&this.Cx[Wq](),this.eC&&this.eC[Wq](),this.kx&&this.kx[Wq](),this.IB&&this.IB[Wq](),this.Db&&KM(this,a),a?this.U2():this.DD())});function KM(a,b){if(b){a.zD||(a.zD=[]);for(var c=a.ia(),c=c.Xf(c.gc()[Td]),d=0;db[kq]&&cL(c)?b[kq]:0):zk?(c=this.uv,d=cL(c)?b[lq]:0):(c=b[lq]||this.uv,d=b[kq]||0,gDa&&(e=this.p3),vk&&63==d&&224==c&&(c=191));var f=c=dL(c),g=b.keyIdentifier;c?63232<=c&&c in dDa?f=dDa[c]:25==c&&a[cr]&&(f=9):g&&g in eDa&&(f=eDa[g]);a=f==this.dm;this.dm=f;b=new hDa(f,d,a,b);Jp(b,e);this[fq](b)});W.a=function(){return this.q}; +W.dA=function(a,b){this.SS&&this[Rz]();this.q=a;this.RS=Lt(this.q,zs,this,b);this.W1=Lt(this.q,CG,this.Pm,b,this);this.SS=Lt(this.q,DG,this.Npa,b,this)};W.detach=function(){this.RS&&(Qt(this.RS),Qt(this.W1),Qt(this.SS),this.SS=this.W1=this.RS=null);this.q=null;this.uv=this.dm=-1};W.B=function(){VM.e.B[L](this);this[Rz]()};function hDa(a,b,c,d){At[L](this,d);cb(this,BG);Gp(this,a);this.charCode=b;this.repeat=c}Y(hDa,At);function WM(){}var XM;gi(WM);function iDa(a){var b=new YM;b.ca=function(){return a};return b}var jDa={button:Rxa,checkbox:vE,menuitem:bJ,menuitemcheckbox:vE,menuitemradio:vE,radio:vE,tab:bJ,treeitem:bJ};W=WM[K];W.Xk=function(){};W.j=function(a){var b=a.ia().j(P,this.Sl(a)[me](se),a[Xz]());ZM(this,a,b);return b};W.Ya=function(a){return a};W.Zr=function(a,b,c){if(a=a.a?a.a():a){var d=[b];Ak&&!Ik(OB)&&(d=$M(wM(a),b),d[C](b));(c?zM:BM)(a,d)}};W.Zh=function(){return!0}; +W.Ma=function(a,b){b.id&&a.bx(b.id);var c=this.Ya(b);c&&c[Ub]?a.HA(c[Ub][dc]?gj(c[Zb]):c[Ub]):a.HA(null);var d=0,e=this.ca(),f=this.ca(),g=!1,k=!1,c=!1,l=gj(wM(b));Z(l,function(a){g||a!=e?k||a!=f?d|=this.D_(a):k=!0:(g=!0,f==e&&(k=!0))},this);a.o=d;g||(l[C](e),f==e&&(k=!0));k||l[C](f);var n=a.qo;n&&l[C][Sc](l,n);if(Ak&&!Ik(OB)){var p=$M(l);0a?c-1:a},0)}function AN(a){BN(a,function(a,c){return(a+1)%c},a.Kf)}function zN(a){BN(a,function(a,c){a--;return 0>a?c-1:a},a.Kf)}function BN(a,b,c){c=0>c?vM(a,a.lh):c;var d=a.ng();c=b[L](a,c,d);for(var e=0;e<=d;){var f=a.wf(c);if(f&&a.zea(f)){a.g1(c);break}e++;c=b[L](a,c,d)}}W.zea=function(a){return a.R()&&a[gz]()&&bN(a,2)};W.g1=function(a){this.Gf(a)};function CN(){}Y(CN,WM);gi(CN);CN[K].ca=function(){return hqa};function DN(a,b,c){fN[L](this,a,c||CN.Vb(),b);this.cg(1,!1);this.cg(2,!1);this.cg(4,!1);this.cg(32,!1);this.o=1}Y(DN,fN);dN(hqa,function(){return new DN(null)});function EN(){}Y(EN,WM);gi(EN);EN[K].j=function(a){return a.ia().j(P,this.ca())};EN[K].Ma=function(a,b){b.id&&a.bx(b.id);if(b[Tc]==Df){var c=b;b=this.j(a);il(b,c);kl(c)}else yM(b,this.ca());return b};px(EN[K],function(){});EN[K].ca=function(){return fD};function FN(a,b){fN[L](this,null,a||EN.Vb(),b);this.cg(1,!1);this.cg(2,!1);this.cg(4,!1);this.cg(32,!1);this.o=1}Y(FN,fN);FN[K].Fb=function(){FN.e.Fb[L](this);var a=this.a();LL(a,eJ)};dN(fD,function(){return new FN});function GN(a){this.JU=a||Swa}Y(GN,vN);gi(GN);W=GN[K];W.Zh=function(a){return a[Tc]==Jpa||GN.e.Zh[L](this,a)};W.w_=function(a){return a[Tc]==Df?new FN:GN.e.w_[L](this,a)};W.ss=function(a,b){return pl(a.a(),b)};W.ca=function(){return eD};W.Im=function(a){GN.e.Im[L](this,a);a=a.a();ML(a,dG,Mh)};dN(fD,function(){return new FN});function HN(a,b){xN[L](this,Rh,b||GN.Vb(),a);this.Sn(!1)}Y(HN,xN);W=HN[K];W.rI=!0;W.Eba=!1;W.ca=function(){return this.jb().ca()};W.ss=function(a){if(this.jb().ss(this,a))return!0;for(var b=0,c=this.ng();bd&&(d=-3),ci(a[AA])&&a[AA]===a.HORIZONTAL_AXIS?b=d:c=d;qi(this.Hea)&&(b=Aj(b,-this.Hea,this.Hea));qi(this.Iea)&&(c=Aj(c,-this.Iea,this.Iea));this.Epa&&(b=-b);b=new HDa(d,a,b,c);this[fq](b)});function YN(a,b){return Ek&&(vk||xk)&&0!=a%b?a:a/b} +XN[K].B=function(){XN.e.B[L](this);Qt(this.L$);this.L$=null};function HDa(a,b,c,d){At[L](this,b);cb(this,RH);this.detail=a;this.Cu=c;this.fs=d}Y(HDa,At);function ZN(){Tt[L](this);this.o=0;Zw(this,null);ux(this,null)}Y(ZN,Tt);ZN[K].Su=function(){return 1==this.o};ZN[K].WI=function(){this.oj(vra)};ZN[K].Wx=function(){this.oj(sF)};ZN[K].oj=function(a){this[fq](a)};function $N(){ZN[L](this);this.vs=[]}Y($N,ZN);$N[K].add=function(a){$i(this.vs,a)||(this.vs[C](a),Lt(a,GF,this.Cfa,!1,this))};ua($N[K],function(a){ej(this.vs,a)&&Pt(a,GF,this.Cfa,!1,this)});$N[K].B=function(){Z(this.vs,function(a){a.Z()});kb(this.vs,0);$N.e.B[L](this)};function aO(){$N[L](this);this.U1=0}Y(aO,$N); +aO[K].play=function(a){if(0==this.vs[J])return!1;if(a||0==this.o)this.U1=0,this.WI();else if(this.Su())return!1;this.oj(rI);-1==this.o&&this.oj(Lya);var b=-1==this.o&&!a;Zw(this,vi());ux(this,null);this.o=1;Z(this.vs,function(c){b&&-1!=c.o||c[Pz](a)});return!0};Wp(aO[K],function(a){Z(this.vs,function(b){0==b.o||b[Wq](a)});this.o=0;ux(this,vi());this.oj(EJ);this.Wx()});aO[K].Cfa=function(){this.U1++;this.U1==this.vs[J]&&(ux(this,vi()),this.o=0,this.oj(GF),this.Wx())};function bO(a,b,c){this.ms=a;this.Iv=b||0;this.he=c;this.Qs=X(this.YK,this)}Y(bO,ut);W=bO[K];W.ic=0;W.B=function(){bO.e.B[L](this);this[Wq]();delete this.ms;delete this.he};Ka(W,function(a){this[Wq]();this.ic=Wt(this.Qs,ci(a)?a:this.Iv)});Wp(W,function(){this.Rk()&&Xt(this.ic);this.ic=0});W.ZT=function(){this[Wq]();this.YK()};W.Rk=function(){return 0!=this.ic};W.YK=function(){this.ic=0;this.ms&&this.ms[L](this.he)};var cO={},dO=null;function eO(a){a=ti(a);delete cO[a];ck(cO)&&dO&&dO[Wq]()}function IDa(){dO||(dO=new bO(function(){JDa()},20));var a=dO;a.Rk()||a[y]()}function JDa(){var a=vi();Sj(cO,function(b){KDa(b,a)});ck(cO)||IDa()};function gO(a,b,c,d){ZN[L](this);if(!ki(a)||!ki(b))throw m("Start and end parameters must be arrays");if(a[J]!=b[J])throw m("Start and end points must be the same length");this.$i=a;this.ur=b;this.duration=c;this.ffa=d;Fx(this,[]);this.hy=!1}Y(gO,ZN);W=gO[K];W.ru=function(a){this.hy=a};W.un=0; +W.play=function(a){if(a||0==this.o)this.un=0,Fx(this,this.$i);else if(this.Su())return!1;eO(this);a=vi();Zw(this,a);-1==this.o&&Zw(this,this[pz]-this[iA]*this.un);ux(this,this[pz]+this[iA]);this.un||this.WI();this.oj(rI);-1==this.o&&this.oj(Lya);this.o=1;var b=ti(this);b in cO||(cO[b]=this);IDa();KDa(this,a);return!0};Wp(W,function(a){eO(this);this.o=0;a&&(this.un=1);LDa(this,this.un);this.oj(EJ);this.Wx()});W.B=function(){0==this.o||this[Wq](!1);this.oj(jta);gO.e.B[L](this)}; +function KDa(a,b){a.un=(b-a[pz])/(a.endTime-a[pz]);1<=a.un&&(a.un=1);LDa(a,a.un);1==a.un?(a.o=0,eO(a),a.oj(GF),a.Wx()):a.Su()&&a.g0()}function LDa(a,b){ri(a.ffa)&&(b=a.ffa(b));Fx(a,ga(a.$i[J]));for(var c=0;cthis.zn?this.zn-this.fm:aa?0:this.wd+a>this.zn?this.zn-this.wd:a,this.Zk||this.Iy||this[fq](jE))};W.Ml=function(){var a=this.fm;return null==this.sj?a:h[E](a/this.sj)*this.sj}; +W.zt=function(a){if(this.Wo!=a){var b=this.Zk;this.Zk=!0;this.Wo=a;a+this.fm>this.zn&&(this.fm=this.zn-this.Wo);a>this.wd&&this.Fa(a);a>this.zn&&(this.fm=0,this.Uq(a),this.Fa(a));(this.Zk=b)||this.Iy||this[fq](jE)}};W.of=function(){return nO(this,this.Wo)};W.Uq=function(a){a=nO(this,a);if(this.zn!=a){var b=this.Zk;this.Zk=!0;this.zn=a;atO(this,this.bn)+this.bn[Ab],a=Uk(this.a()),this.tc().m(a,QH,this.QY,!0).m(this.a(),PH,this.ZY),this.du||(this.du=new Vt(200),this.tc().m(this.du,Vs,this.k9)),this.k9(),this.du[y]())))}; +W.Z9=function(a){sO(this,(0c+this.bn[Zc]&&(a=uO(this,this.bn)-this.pn)}else b=this.nx,c=tO(this,this.bn),this.g9?b>c+this.bn[Ab]&&(a=uO(this,this.bn)+this.pn):b=a.of()&&b>=c+a.JS&&a.nf()>=b&&wO(a,c,b-c)}function wO(a,b,c){a.of()<=b&&b<=a.nf()-c&&a.JS<=c&&c<=a.nf()-b&&(b!=a[I]()||c!=a.Ml())&&(a.Ne.Iy=!0,a.Ne.VS(0),a.Ne.Fa(b),a.Ne.VS(c),a.Ne.Iy=!1,a.Tca())}W.of=function(){return this.Ne.of()};W.zt=function(a){this.Ne.zt(a)}; +W.nf=function(){return this.Ne.nf()};W.Uq=function(a){this.Ne.Uq(a)};function RDa(a,b){return b<=a.Ne[I]()+a.Ne.Ml()/2?a.Cd:a.Wi}W.Tca=function(){pO(this);NDa(this);this[fq](jE)}; +function pO(a){if(a.Cd&&!a.nR){var b=xO(a,uO(a,a.Cd)),c=xO(a,uO(a,a.Wi));if(a.lb==Rh)a.Cd[x].top=b.y+U,a.Wi[x].top=c.y+U,a.vg&&(b=yO(c.y,b.y,a.Cd[Zc]),a.vg[x].top=b[uy]+U,Sa(a.vg[x],b[Ry]+U));else{var d=a.Fl&&a.hh()?Os:ah;a.Cd[x][d]=b.x+U;a.Wi[x][d]=c.x+U;a.vg&&(b=yO(b.x,c.x,a.Cd[Ab]),a.vg[x][d]=b[uy]+U,pa(a.vg[x],b[Ry]+U))}}}function yO(a,b,c){var d=h[yb](c/2);return{offset:a+d,size:h.max(b-a+c-2*d,0)}} +function xO(a,b){var c=new Kk;if(a.Cd){var d=a.of(),e=a.nf(),d=b==d&&d==e?0:(b-d)/(e-d);a.lb==Rh?(e=a.Cd[Zc],e=a.a()[$d]-e,d=h[E](d*e),c.x=tO(a,a.Cd),c.y=e-d):(e=a.a()[Kd]-a.Cd[Ab],d=h[E](d*e),c.x=d,c.y=a.Cd[Yc])}return c} +function rO(a,b){b=Aj(b,a.of(),a.nf());a.nR&&a.KO[Wq](!0);var c=new aO,d,e=RDa(a,b),f=a[I](),g=a.Ml(),k=uO(a,e),l=xO(a,k);d=a.xJ();h.abs(b-k)k?d:-d),a.of(),a.nf()));qO(a,e,b);k=xO(a,uO(a,e));d=a.lb==Rh?[tO(a,e),k.y]:[k.x,e[Yc]];l=new iO(e,[l.x,l.y],d,100);l.ru(a.Fl);c.add(l);a.vg&&SDa(a,e,f,g,k,c);a.Jaa&&(e=a.Jaa.Cwa(f,b,100),Z(e,function(a){c.add(a)}));a.KO=c;a.tc().m(c,sF,a.Dna);a.nR=!0;c[Pz](!1)} +function SDa(a,b,c,d,e,f){var g=xO(a,c),k=xO(a,c+d);c=g;d=k;b==a.Cd?c=e:d=e;a.lb==Rh?(b=yO(k.y,g.y,a.Cd[Zc]),g=yO(d.y,c.y,a.Cd[Zc]),e=new iO(a.vg,[tO(a,a.vg),b[uy]],[tO(a,a.vg),g[uy]],100),b=new lO(a.vg,b[Ry],g[Ry],100)):(b=yO(g.x,k.x,a.Cd[Ab]),g=yO(c.x,d.x,a.Cd[Ab]),e=new iO(a.vg,[b[uy],a.vg[Yc]],[g[uy],a.vg[Yc]],100),b=new kO(a.vg,b[Ry],g[Ry],100));e.ru(a.Fl);b.ru(a.Fl);f.add(e);f.add(b)}W.Dna=function(){this.nR=!1}; +W.mI=function(a){if(this.lb!=a){var b=this.ca(this.lb),c=this.ca(a);this.lb=a;this.a()&&(a=this.a(),xM(a,b)&&(AM(a,b),yM(a,c)),b=this.Fl&&this.hh()?Os:ah,this.Cd[x][b]=this.Cd[x].top=O,this.Wi[x][b]=this.Wi[x].top=O,this.vg&&(this.vg[x][b]=this.vg[x].top=O,pa(this.vg[x],Sa(this.vg[x],O))),pO(this))}};W.us=function(){return this.lb}; +W.B=function(){oO.e.B[L](this);this.du&&this.du.Z();delete this.du;this.KO&&this.KO.Z();delete this.KO;delete this.Cd;delete this.Wi;this.vg&&delete this.vg;this.Ne.Z();delete this.Ne;this.Df&&(this.Df.Z(),delete this.Df);this.vm&&(this.vm.Z(),delete this.vm);this.Al&&(this.Al.Z(),delete this.Al);this.Fp&&(this.Fp.Z(),delete this.Fp)};W.My=1;W.xJ=function(){return this.Ne.xJ()};W.wS=function(a){this.Ne.wS(a)};gb(W,function(){return this.Ne[I]()});W.Fa=function(a){qO(this,this.Cd,a)};W.Ml=function(){return this.Ne.Ml()}; +W.VS=function(a){qO(this,this.Wi,this.Ne[I]()+a)};Jw(W,function(a){hm(this.a(),a);a&&pO(this)});function NDa(a){var b=a.a();b&&(ML(b,zBa,a.of()),ML(b,yBa,a.nf()),ML(b,ABa,a[I]()),ML(b,BBa,a.Bma(a[I]())||O))}function PDa(a,b){b?(a.vm||(a.vm=new XN(a.a())),a.tc().m(a.vm,RH,a.Z9)):a.tc().vb(a.vm,RH,a.Z9)}W.La=function(a){this.tg!=a&&this[fq](a?qF:gF)&&(this.tg=a,ODa(this,a),a||this.QY(),CM(this.a(),pqa,!a))};Tw(W,function(){return this.tg});function tO(a,b){return a.Fl?kCa(b):b[Sd]};di("google.visualization.drawToolbar",function(a,b){new TN(a,b)},void 0);function zO(){this.Ac=new sk;this.al=new sk;this.Ai=new sk}W=zO[K];va(W,function(){this.Ac=new sk;this.al=new sk;this.Ai=new sk});Ia(W,function(){var a=new zO;a.Ac=new sk(this.Ac.Ua());a.al=new sk(this.al.Ua());a.Ai=new sk(this.Ai.Ua());return a});$a(W,function(a){return this.Ac[Mz](a.Ac)&&this.al[Mz](a.al)&&this.Ai[Mz](a.Ai)});function AO(a,b){var c=[];Qj(b==SI?a.Ac:a.al,function(a){c[C](ka(a,10))});return c}function IO(a){return AO(a,SI)} +function JO(a){var b=[];Qj(a.Ai,function(a){a=a[rc](Re);b[C]({row:ka(a[0],10),column:ka(a[1],10)})});return b}xx(W,function(){for(var a=[],b=IO(this),c=AO(this,zg),d=JO(this),e=0;e=a)return 16==a%28?10:11;dP||(dP=new UDa);for(var b=dP,c=b.oga,d=0,e=c[J];8>1;c[f]<=a?d=f:e=f}for(;da?null:b[my][a]};h.pow(1024,-3);h.pow(1024,-2);h.pow(1024,2);h.pow(1024,3);h.pow(1024,4);h.pow(1024,5);Ak&&Ik(8);function WDa(a){this.bua=typeof a==T?0a?-1:null:null==a?null:a?-1:1}WDa[K].cua=YBa;var eP={},XDa={},fP={};function gP(){throw m("Do not instantiate directly");}gP[K].kL=null;Aa(gP[K],function(){return this[zb]});function hP(a,b,c){Xa(a,iP(b(c||jP,void 0,void 0)))}function kP(a,b,c,d){d=(d||Sk())[Sb](vf);a=iP(a(b||jP,void 0,c));Xa(d,a);return 1==d[Zb][J]&&(a=d[Ub],1==a[kd])?a:d}function iP(a){if(!ni(a))return String(a);if(a instanceof gP){if(a.Gq===eP)return a[zb];if(a.Gq===fP)return Ei(a[zb])}return FK}var jP={};function YDa(a){if(null!=a)switch(a.kL){case 1:return 1;case -1:return-1;case 0:return 0}return null}function lP(){gP[L](this)}Y(lP,gP);lP[K].Gq=eP;function mP(a){return null!=a&&a.Gq===eP?a:a instanceof NK?nP(OK(a),a.rz()):nP(Ei(String(String(a))),YDa(a))}function oP(){gP[L](this)}Y(oP,gP);oP[K].Gq={};function pP(a,b){this.content=String(a);this.kL=null!=b?b:null}Y(pP,gP);pP[K].Gq=fP; +function ZDa(a){function b(){}lb(b,a[K]);return function(a,d){var e=new b;e.content=String(a);void 0!==d&&(e.kL=d);return e}}var nP=ZDa(lP);ZDa(oP);function qP(a,b){var c=new Tk(void 0)||Sk(),d=iP(a(b||jP,void 0,void 0));return Cl(c,d)}function rP(a,b){function c(){}lb(c,a);var d=new c,e;for(e in b)d[e]=b[e];return d}var sP=function(a){function b(){}lb(b,a[K]);return function(a,d){if(!String(a))return O;var e=new b;e.content=String(a);void 0!==d&&(e.kL=d);return e}}(lP); +function tP(a){null!=a&&a.Gq===eP?(a=String(a[zb])[wb]($Da,O)[wb](aEa,Ke),a=String(a)[wb](bEa,cEa)):a=Ei(String(a));return a}function uP(a){null!=a&&a.Gq===XDa?a=a[zb][wb](/([^"'\s])$/,Sla):(a=String(a),a=dEa[hd](a)?a:FK);return a}function vP(a){return null!=a&&a.Gq===fP?FK:a} +var eEa={"\x00":Fe,"\t":" ","\n":" ","\x0B":" ","\f":" ","\r":" "," ":" ",'"':Le,"&":Ie,"'":He,"-":"-","/":"/","<":Ke,"=":"=",">":Je,"\u0060":"`","\u0085":"…","\u00a0":" ","\u2028":"
","\u2029":"
"};function cEa(a){return eEa[a]} +var bEa=/[\x00\x22\x27\x3c\x3e]/g,dEa=/^(?!style|on|action|archive|background|cite|classid|codebase|data|dsync|href|longdesc|src|usemap)(?:[a-z0-9_$:-]*)$/i,$Da=/<(?:!|\/?([a-zA-Z][a-zA-Z0-9:\-]*))(?:[^>'"]|"[^"]*"|'[^']*')*>/g,aEa=/=b.ja[r]);d++){for(var e=d;0==b.Jd[e][c];)if(e++,e==b.ja[A]&&(e=d,c++,c==b.ja[r]))return b;var f=a,g=d,k=f.Jd[e];f.Jd[e]=f.Jd[g];f.Jd[g]=k;e=b.Jd[d][c];for(f=c;f=a||(c=a)});return c}function EP(a){var b=BP(void 0);return b(FP(a,function(a){return-b(a)}))}function FP(a,b){var c=BP(b),d,e;Z(a,function(a){var b=c(a);d>=b||(d=b,e=a)});return e}function GP(a,b){var c=BP(b);return FP(a,function(a){return-c(a)})}var rEa=1/h[zd](2*h.PI); +function sEa(a,b,c){if(0>c)throw"Bad normal distribution: sigma = "+c+Ue;if(0==c)return a==b?da:0;a=(a-b)/c;return rEa*h.exp(-.5*a*a)/c}function tEa(a){var b={};a[Vb](function(a){b[a]=(a in b?b[a]:0)+1});return b}function uEa(a){var b=tEa(a),c=qEa(Zj(b));return ak(b)[pb](function(a){return b[a]==c}).map(function(b){return typeof a[0]==T?+b:b})}function HP(a){this.ka=a||{};this.wh=this.vh=0;fb(this,Wna)}function IP(a,b){Sj(b,function(a,b){fk(this.ka,b,a)},a)};var vEa=h.log(10);function JP(a){return a[me](we)}var wEa=["minorgridline",cva,sD,DJ,ds,yxa,CD,xG,SG,bE,WD,oD,wI,sI,UJ,rra,"axistitle",gE,qD,JG,PG,OG,Hsa,Xs,hD];function KP(a,b,c,d){return{html:xEa(a),Fea:!1,Gea:d,anchor:c,Eea:b,$A:20,margin:5}}function xEa(a){if(0==a[qA][J])return{name:P,content:[],Sc:{className:VF}};var b=Yi(a[qA],function(a){return a[H]==eJ}),c;-1==b?c=yEa(a[qA]):(c=yEa(jj(a[qA],0,b)),a=zEa(jj(a[qA],b+1)),c=fj(c,{name:P,Sc:{className:Qua}},a));return{name:P,content:c,Sc:{className:VF}}}function yEa(a){return{name:eK,Sc:{className:Pua},content:Ti(a,function(a){return{name:RG,content:AEa(a[$]),Sc:{className:Oua}}})}} +function zEa(a){return{name:eK,Sc:{className:Nua},content:Ti(a,function(a){return{name:RG,id:JP([hD,a[$].id]),content:AEa(a[$]),Sc:{className:Mua}}})}}function AEa(a){return Ti(a[vy],function(a,c){switch(a[H]){case Us:var d=a[$][x];return{name:Qs,style:rua+d.ab+rna+(d.Tc?AG:Q)+wna+(d.Se?fK:Q)+sna+(d[Id]?MD:Q)+gf,Fna:!!a[Py],content:(0==c?O:se)+a[$][id]};case wJ:return{name:P,style:ug+(a[$].brush&&a[$].brush.cb())+gf,Sc:{className:Rua}}}})};function LP(a,b,c,d,e,f,g,k,l){var n={items:[]};null!=e&&(e=rn(e,f),n[vy][C]({type:wJ,data:{size:b[yc]/2,brush:e}}));null!=g&&n[vy][C](MP(g,b));if(null!=c){if(null==d)throw m("Line title is specified without a text style.");c=MP(c+ef,d);n[vy][C](c)}c=MP(a,b,k);n[vy][C](c);null!=l&&(n.id=l,Bx(n,{brush:qn}));return{type:SG,data:n}}function BEa(){return{type:eJ,data:{brush:sn(mB,1)}}}function MP(a,b,c){a={type:Us,data:{text:a,style:b}};c&&(a.html=!0);return a} +function NP(a,b,c,d,e,f,g,k,l){if(k)return KP(a,e,d,f);for(var n=k=0;n=d&&g.fa[cd]<=c)){n=hk(g);p=n.fa[G];Za(n.fa,Cj(f.x,n.fa[cd],-1));Ta(n.fa,Cj(f.x,p,-1));if(p=n.$j)s=p[0],p[0]=p[2],p[2]=s,p[0].x=Cj(f.x,p[0].x,-1),p[1].x=Cj(f.x,p[1].x,-1), +p[2].x=Cj(f.x,p[2].x,-1);n.fa[G]>=d&&n.fa[cd]<=c?(g.fa=n.fa,g.$j=n.$j):(g.$j&&(p=new Pm(d+4,c-4),s=new Pm(n.$j[0].x,n.$j[2].x),u=new Pm(g.$j[0].x,g.$j[2].x),!(p[y]<=u[y]&&p.end>=u.end)&&p[y]<=s[y]&&p.end>=s.end&&(g.fa=n.fa,g.$j=n.$j)),g.fa[cd]>c&&(Za(g.fa,g.fa[G]-(g.fa[cd]-c)),Ta(g.fa,c)),g.fa[G]=d&&g.fa[Mc]<=e)){c=hk(g);n=c.fa.top;c.fa.top=Cj(f.y,c.fa[Mc],-1);Ma(c.fa,Cj(f.y,n,-1));if(n=c.$j)p=n[0],n[0]=n[2],n[2]=p, +n[0].y=Cj(f.y,n[0].y,-1),n[1].y=Cj(f.y,n[1].y,-1),n[2].y=Cj(f.y,n[2].y,-1);c.fa.top>=d&&c.fa[Mc]<=e?(g.fa=c.fa,g.$j=c.$j):(g.fa[Mc]>e&&(g.fa.top-=g.fa[Mc]-e,Ma(g.fa,e)),g.fa.topR[J]-1?R[C](V[r]):R[D]=h.max(R[D],V[r]))}}s=[];u=[];B=0;if(M)for(c=0;c=this.$s&&(this.Qs(),this.$s=da,this.fd[Wq]())};function QP(a,b,c,d,e,f){var g=null!=e?e:1;if(0==g)return{I:[],te:!1,gh:0};e=[];b=EEa(b,e,d,g,null!=f?f:!1,function(b){return a(b,c)[r]});return{I:e,te:b.gt,gh:b.gh}} +function EEa(a,b,c,d,e,f){var g=f(a);if(g<=c)return a&&ij(b,a[kc]()[rc](re)),{gt:!1,gh:g};if(1this.sE.dc()||null==b)return c;var c=Hm(c),d=this.sE.get(b);return Fm(Lm(c,[255,255,255],1-d/this.sE.dc()))};function lQ(a,b,c){this.Sm=a;this.xr=b[Bc]();this.Wl=c};function mQ(){this.Ys=new lk;this.vS=null;this.qba=!0}mQ[K].Lda=function(){return[]};aq(mQ[K],function(a){if(null==this.vS){this.vS=new lk;var b=this.Lda(a);Z(b,X(this.Mda,this,a,this.vS))}var b=this.XK(a),c=new sk(this.Ys.Mk());Z(b,function(b){var e=b.xr.rg();c[Qb](e);this.Mda(a,this.Ys,b)},this);this.qba&&Qj(c,function(b){var c=this.Ys.get(b);a.Yf(c.Sm);this.Ys[Qb](b)},this)}); +mQ[K].Mda=function(a,b,c){var d=c.xr.rg(),e=b.get(d,null);e&&e.V2&&a.Yf(e.V2);c.Wl[0]===$C?(hm(e.Sm,!1),e.V2=c.Sm,e.jra=c.Wl,a.oo(e.V2,e.xr,e.jra)):e!=c&&(null===e||e.Wl!==c.Wl?(null!=e&&a.Yf(e.Sm),a.oo(c.Sm,c.xr,c.Wl)):a.De(c.Sm,e.Sm,c.xr,c.Wl),b.set(d,c))};function TEa(a,b){UEa(b);return 0==b[J]?null===a?0:a:Ui(b,function(a,b){return a+b},0)}function VEa(a,b){UEa(b);if(0==b[J])return a;var c=Si(b,function(a){return null!=a});return 0==c[J]?null:TEa(a,c)/c[J]}function UEa(a){Z(a,function(){})};function nQ(a){this.Ti=qj({},a);this.g4=qj({},a)}function oQ(a,b,c){var d=a.Ti[J];for(a.Ti[b]=c;ba.H())throw m("Data table should have at least 2 columns");if(a.D(0)!=Eh)throw m("Column 0 must be of type string");if(a.D(1)!=Eh)throw m("Column 1 must be of type string");for(var c=this.Xq(b),d=c.r7,e=c.s7,c=c.t7,f={},g=[],k=0;kd?(e=e||rR(this,GJ),nb(e,d),uw(e,JB),Ya(e,b.Vd()),c[q](e)):(e&&c[Ud](e),kx(c,b.Vd()),Hw(c,d+U))}else xw(c,!1);sR(this)}; +function hR(a,b,c,d,e){var f=a[x];Ba(f,pg);Za(f,jR(b));f.top=jR(c);pa(f,fR(d)+U);Sa(f,fR(e)+U);a[Tc]==oJ&&Gx(a,fR(d)+se+fR(e))}function tR(a,b){var c=rR(a,b),d=zQ(a);hR(c,0,0,d[r],d[A]);return c}try{eval("document.namespaces")}catch(kFa){}W=oR[K]; +W.j=function(){var a=this.U.gc();a.namespaces.g_vml_||(pR?a.namespaces.add(Eua,iK,Lla):a.namespaces.add(Eua,iK),ab(a.createStyleSheet(),Gua));var a=this[r],b=this[A],c=this.U.j(P,{style:sxa+jFa(a)+tna+jFa(b)});this.q=c;var d=rR(this,aG),e=d[x];Ba(e,pg);Za(e,e.top=0);pa(e,this[r]);Sa(e,this[A]);Gx(d,this.po?fR(this.po)+se+fR(this.qH):fR(a)+se+fR(b));Ow(d,ci(this.wu)?fR(this.wu)+se+fR(this.lx):EB);c[q](d);this.bg=new eR(d,this);Lt(c,KI,X(this.rW,this))}; +W.rW=function(){var a=dm(this.a()),b=this.bg.a()[x];if(a[r])pa(b,a[r]+U),Sa(b,a[A]+U);else{for(a=this.a();a&&a[de]&&a[de][Xc]!=Q;)a=a[je];a&&a[de]&&this.he.m(a,Txa,this.rW)}this[fq](KI)};W.Ye=function(a,b){$l(this.a(),a,b)};W.Kk=function(){var a=this.a();return new Pk(a[x].pixelWidth||a[Ab]||1,a[x].pixelHeight||a[Zc]||1)};va(W,function(){this.bg[Yb]()});W.pk=function(a,b,c,d,e,f,g){var k=rR(this,qxa);hR(k,a-c,b-d,2*c,2*d);a=new gR(k,this,a,b,c,d,e,f);this.tn(a,g);return a}; +W.hb=function(a,b,c,d,e,f,g){var k=rR(this,EI);hR(k,a,b,c,d);a=new iR(k,this,e,f);this.tn(a,g);return a};W.drawImage=function(a,b,c,d,e,f){var g=rR(this,Jva);hR(g,a,b,c,d);lR(g,xJ,e);a=new nR(g,this);this.tn(a,f);return a}; +W.Ii=function(a,b,c,d,e,f,g,k,l,n){var p=tR(this,oJ),s=rR(this,nI);b=Gf+qR(b)+Re+qR(c)+Ff+qR(d)+Re+qR(e)+zf;lR(s,Ph,b);lR(s,SJ,Mh);b=rR(this,xAa);b[w](kh,Mh);c=b[x];Fa(c,g[Ry]*AQ(this));fx(c,g.family);null!=f&&(c[kK]=f);g[Id]&&sx(c,MD);g.Tc&&Cx(c,AG);lR(b,Eh,a);p[q](s);p[q](b);a=new mR(p,this,k,l);this.tn(a,n);return a};W.sa=function(a,b,c,d){var e=tR(this,oJ);lR(e,nI,iFa(a));a=new kR(e,this,b,c);this.tn(a,d);return a}; +function iFa(a){var b=[];wQ(a,function(a,d){switch(a){case 0:b[C](dh);ga[K][C][Sc](b,Ti(d,fR));break;case 1:b[C](EG);ga[K][C][Sc](b,Ti(d,fR));break;case 2:b[C](yg);ga[K][C][Sc](b,Ti(d,fR));break;case 4:b[C](AK);break;case 3:var e=d[2]+d[3],f=fR(d[4]-Ej(e,d[0])),e=fR(d[5]-Fj(e,d[1])),g=fR(d[0]),k=fR(d[1]),l=h[E](-65536*d[2]),n=h[E](-65536*d[3]);b[C](Aqa,f,e,g,k,l,n)}});return b[me](se)}W.Ba=function(a){var b=tR(this,aG);(a||this.bg).a()[q](b);return new eR(b,this)};W.ml=function(){return 0}; +W.Fb=function(){oR.e.Fb[L](this);this.rW();sR(this)};W.B=function(){this.bg=null;oR.e.B[L](this)};function uR(a,b,c,d,e){rM[L](this,d);this.Le=new du(e||Vma);this.dI=O;this.Od=[];this.xA=[];this.aQ=[];this.xu=[];this.Ala=[];this.Dla=[];this.II=[];this.VZ={};this.Bla={};this.bQ={};this.Cla={};this.wv(a);this.Ye(b,c);this.Ga=vR(this)?0:da}Y(uR,rM);W=uR[K];W.C7=2048;W.Tla=0;W.Ula=0;W.ob=-da;W.Uf=null;W.uY=null;W.j=function(){var a=this.ac();this.q=this.ia().j(xs,{src:wR(this),"class":oqa,width:a[0],height:a[1]})};W.Ef=function(a){a.src=wR(this);this.q=a}; +function wR(a){var b;a.dI!=O?b=xR(a,a.dI):(b=xR(a,nF))||(b=xR(a,xh));b||a[fq](new lFa(a.Le[kc]()));return a.Le}function mFa(a,b){var c=[];Z(b,function(a){a.area=a.area||xra;a.rq=a.rq||xh;c[C]([a.area,a.rq,a[F]][me]())});c=c[me](et);a.Yc(ksa,c)}W.wv=function(a){this.Le.Yc(xE,a)};W.bc=function(){return mu(this.Le,xE)};W.Ye=function(a,b){var c=[a||300,b||150][me](AK);this.Le.Yc(wE,c)};W.ac=function(){return mu(this.Le,wE)[rc](AK)};W.ZO=function(a){this.Ga=a};W.YO=function(a){this.ob=a}; +function yR(a,b){a.xu=b;a.Le.Yc(lsa,a.xu[me](et))}function zR(a){a=a.bc();return a==VD||a==HD||a==ID||a==ZD||a==$D}function vR(a){a=a.bc();return a==mI||a==vxa||a==Axa}function nFa(a){a=a.bc();return a==VD||a==HD||a==ID}function oFa(a){a=a.bc();return a==VD||a==ID||a==$D}W.Yc=function(a,b){this.Le.Yc(a,b)};W.u3=function(a){this.Le.u3(a)};W.setTitle=function(a){this.Uf=a;this.Le.Yc(nsa,this.Uf[wb](/\n/g,et))};function AR(a,b){a.II[C](b);a.Le.Yc(psa,a.II[me](Re));return a.II[J]-1} +function BR(a,b,c){a.VZ[b]=c;b=pFa(a,a.VZ,qna,et);a.Le.Yc(osa,b)}function CR(a,b,c,d){var e;e=da;for(var f=0,g=b[J];fe&&(e=k);e>a.ob&&(a.ob=e);if(ci(d)){if(a.aQ[J]c)return e?Upa:$C;if(d==MJ)return String(a);d=.5;c>b&&(d=(a-b)/(c-b));if(e)return"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-."[Cb](h[t](d*rFa/64))+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-."[Cb](h[t](d*rFa%64));a=h[E](61*d);return"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"[Cb](a)} +uR[K].B=function(){uR.e.B[L](this);delete this.xu;delete this.Ala;delete this.Dla;delete this.Tla;delete this.Ula;delete this.xA;delete this.aQ;delete this.Od;this.Le=null;delete this.Ga;delete this.ob;this.Uf=null;delete this.II;delete this.VZ;delete this.Bla;delete this.bQ;delete this.Cla};function lFa(a){xt[L](this,lBa);this.uri=a}Y(lFa,xt);function DR(a,b,c){this.Mg=a;this.uoa=b;this.Me={};this.Dra=!1;this.Zo=null;this.voa=c;a===nI&&(za(this.Me,Q),xa(this.Me,QA),this.Zo=new XL.fe.wW(this.Me))}W=DR[K];Yw(W,function(){this.Dra&&(this.Me=ca.getPrototypeOf(this.Me))});W.Sm=function(){if(null==this.Zo){var a=sFa[this.Mg];if(!a)throw m("No draw routine for "+this.Mg+Ue);this.Zo=a[L](null,this.Me)}return this.Zo};W.Sea=function(){return this.Me};function ER(a,b){a.Me.x=b;return a}function FR(a,b){a.Me.y=b;return a} +W.yg=function(a){pa(this.Me,a);return this};W.Yj=function(a){Sa(this.Me,a);return this};W.Pr=function(a){cx(this.Me,a);return this};Bw(W,function(a){lx(this.Me,a);return this});function GR(a,b,c,d){var e=d||{};Fn(b,c,null,function(b){var c=Vn(b[ic]||e[ic])||Q;a.Oe(c);c=Qn(b.fillOpacity);null!=c&&a.Ch(c);c=Vn(b[$b]||e[$b]);null!=c&&a.hd(c);b=On(b.strokeWidth);null!=b&&a.mk(b);return null})}W.hd=function(a){xa(this.Me,a);this.Zo&&this.Zo[x](GJ,a);return this}; +W.mk=function(a){this.Me.strokeWidth=a;this.Zo&&this.Zo[x](pAa,a);return this};W.Oe=function(a){za(this.Me,a);return this};W.Ch=function(a){this.Me.fillOpacity=a;return this};hx(W,function(a,b){this.Zo[Hz](a,b);return this});W.da=function(a,b){this.Zo.line(a,b);return this};W.xf=function(a,b,c,d,e,f,g){this.Zo.arc(a,b,c,d,e,f,g);return this};function tFa(a,b){fx(a.Me,b);return a}function HR(a,b){Fa(a.Me,b);return a}function uFa(a,b){var c=a.Me.corners={};c.rx=b;c.ry=b} +function vFa(a,b){a.Me.halign=b;return a}function wFa(a,b){a.Me.valign=b;return a}var sFa={circle:function(a){return new XL.fe[oA](a[Lz],a.x,a.y,{fill:a[ic]})},line:function(a){return new XL.fe.lu(a.x,a.y,a.Hb,a.Lb,a)},rect:function(a){return new XL.fe[Gz](a.x,a.y,a[r],a[A],a)},text:function(a){return new XL.fe[wz](a.x,a.y,a[id],a)}};function IR(a){this.mg=[];this.ja=a;this.k3=0}IR[K].ac=function(){return this.ja};IR[K].LW=function(){return this.mg};IR[K].da=function(a,b,c,d,e,f){a=FR(ER(new DR(SG,a||JR(this),b||yD),c),d);a.Me.x2=e;a.Me.y2=f;this.mg[C](a);return a};function KR(a,b,c,d,e,f,g){b=FR(ER(new DR(EI,b||JR(a),c||yD),d),e).yg(f).Yj(g);a.mg[C](b);return b}IR[K].bu=function(a,b,c,d,e,f){a=FR(ER((new DR(Us,a||JR(this),b||yD)).Pr(c),d),e).yg(f);this.mg[C](a);return a}; +function JR(a){var b=new TP(hC);VP(b,QC,Xpa+a.k3);a.k3+=1;return b};function LR(a,b){var c=ga[K][jd][L](arguments),d=c[sb]();if("undefined"==typeof d)throw m("[goog.string.format] Template required");return d[wb](/%([0\-\ \+]*)(\d+)?(\.(\d+))?([%sfdiu])/g,function(a,b,d,k,l,n,p,s){if(n==De)return De;var u=c[sb]();if("undefined"==typeof u)throw m("[goog.string.format] Not enough arguments");arguments[0]=u;return MR[n][Sc](null,arguments)})} +var MR={s:function(a,b,c){return fa(c)||c==O||a[J]>=c?a:a=-1a?Te:0<=b[qd](Qe)?Qe:0<=b[qd](se)?se:O;0<=a&&(d=f+d);if(fa(c)||d[J]>=c)return d;d=fa(e)?h.abs(a)[kc]():h.abs(a)[xb](e);a=c-d[J]-f[J];0<=b[qd](Te,0)?d=f+d+Hi(se,a):(b=0<=b[qd](Xe,0)?Xe:se,d=f+Hi(b,a)+d);return d},d:function(a,b,c,d,e,f,g,k){return MR.f(ka(a,10),b,c,d,0,f,g,k)}};MR.i=MR.d;MR.u=MR.d;function NR(a,b){var c;c=bi[xc][Nc];c=Ai(c)||(sm(c)[1]||null)!=vs?Wg:vs;return LR(Wla,c,a,b)};function xFa(a,b){if(a){if(b[J]!=a[J])throw m("colorsScale and valuesScale must be of the same length");}else if(1!=b[J])throw m("colorsScale must contain exactly one element when no valueScale is provided");this.Wk=a;this.lv=Ti(b,function(a){return Cm(a).od})}var yFa=[fB,TA],zFa=[eB,fB,TA]; +function OR(a,b){if(!a.Wk)return a.lv[0];if(b>=a.Wk[a.Wk[J]-1])return a.lv[a.lv[J]-1];if(b<=a.Wk[0])return a.lv[0];var c=kj(a.Wk,b);if(0<=c)return a.lv[c];var d=-c-2,c=-c-1;return Xm(a.lv[c],a.lv[d],(b-a.Wk[d])/(a.Wk[c]-a.Wk[d]))} +function AFa(a,b){b&&0!=b[J]?1==b[J]&&(b=[yFa[0],b[0]]):b=a&&3==a[J]?zFa:yFa;if(!a||2>a[J])return{values:null,e3:[Oi(b)]};var c=a[0],d=a[a[J]-1],e=d-c;if(0==e)return{values:[d],e3:[Oi(b)]};if(2==a[J])for(a=[],d=e/(b[J]-1),e=0;ee)throw m("colorAxis.minValue ("+d+") must be at most colorAxis.maxValue ("+e+Oe);(d=Yea(b,d,e))&&(c=[d[y],d.end])}d=a.S(HE);d=a.S(zsa,d); +c=AFa(c,d);return new xFa(c[my],c.e3)};function PR(a,b){var c=a[Py],c=Xea(Sk(b),c);b[q](c);a.Fea&&Xa(c,a[Py][zb]);var d,e=a[sA],f=a.Gea;d=a.Eea;var g=a.$A,k=a[yz],l=new Pk(c[Kd],c[$d]),n=e.y+(g+l[A]/2)*Hj(e.y-f.y),e=Aj(e.x+(g+l[r]/2)*Hj(e.x-f.x)-l[r]/2,d[G]+k,d[cd]-k-l[r]);d=Aj(n-l[A]/2,d.top+k,d[Mc]-k-l[A]);d=new Kk(e,d);pa(c[x],c[Kd]+1+U);Sa(c[x],c[$d]+U);Za(c[x],d.x+U);c[x].top=d.y+U;return c};function QR(a,b,c){var d=b.Ba(),e=a.outline,f=new pL,g=new Fl(e.fa.top+.5,e.fa[cd]+.5,e.fa[Mc]+.5,e.fa[G]+.5),k=e.$j;f[Hz](g[G]+1,g[Mc]);f.xf(g[G]+1,g[Mc]-1,1,1,180,270,!0);f.da(g[G],g.top+1);f.xf(g[G]+1,g.top+1,1,1,270,0,!0);if(null!=k&&k[0].y==e.fa.top)for(var l=0;3>l;++l)f.da(k[l].x+.5,k[l].y+.5);f.da(g[cd]-1,g.top);f.xf(g[cd]-1,g.top+1,1,1,0,90,!0);f.da(g[cd],g[Mc]-1);f.xf(g[cd]-1,g[Mc]-1,1,1,90,180,!0);if(null!=k&&k[0].y==e.fa[Mc])for(l=0;3>l;++l)f.da(k[l].x+.5,k[l].y+.5);f[bz]();e=[new bn({fill:Uh, +stroke:iB,ua:1}),new bn({fill:iB,ua:0,Ce:.6}),new bn({fill:iB,ua:0,Ce:.4})];for(g=e[J]-1;0<=g;--g)k=b.sa(f,e[g],d),b.Em(k,g,g);a=a.UI;for(f=0;f=d(a,g)})}function EFa(a,b,c){if(0==a.x||0==b.x)return{x:0,y:(0==a.x&&0==b.x?0:0==a.x?a.y:b.y)*c/6};c=c/3*h.min(h.abs(a.x),h.abs(b.x));b=(a.y/a.x+b.y/b.x)/2;return 0a});return-1==d?b[J]-1:0==d?0:b[d][c]-ab)return e>=d?{Yo:e,last:l,nL:b-(g-p)}:null===f?null:{Yo:f,last:n,nL:c-k};u=h.min(b-g,s);g+=u;l=p+u;e++}return{Yo:e,last:l,nL:b-g}}function KFa(a,b,c){a=Ti(a,c||zj);mj(a);for(var d=c=0;db;++b){if(h.abs(a-h[E](a))<1E-7*a)return b;a*=10}return 16}function ZR(a){var b=ep;if(0>=a)return b[hc](0,b[Wd](Ue));for(var b=b[hc](0,b[Wd](Ue)+1),c=0;cb||0>c?null:a[b][c]} +function MFa(a,b,c,d,e,f){var g=[],k=aS(c,d-1,e);k&&g[C]({oU:k,km:k.km+1,qL:d-1,pU:null,rL:null,qU:null});(k=aS(c,d,e-1))&&g[C]({oU:k,km:k.km+1,qL:null,pU:null,rL:e-1,qU:null});(c=aS(c,d-1,e-1))&&f(a[d-1],b[e-1])&&g[C]({oU:c,km:c.km,qL:d-1,pU:e-1,rL:e-1,qU:d-1});mj(g,function(a,b){return a.km-b.km});return 0f;f++){var g=QFa(a,b,c,e),k=QFa(a,b,c,0),l=DFa(a,g,d),k=DFa(a,k,d);if(l&&k)break;a=g;e*=.99}return a}function QFa(a,b,c,d){var e={};Sj(a,function(f,g){for(var k=f,l=0;lg?1:0});0>b&&(b=-b-2);return 0>b?null:a[b]}function VFa(){return{transform:function(a){return h.log(a)/h[Uz]},inverse:function(a){return h.pow(10,a)}}} +function WFa(a){return{transform:function(b){return b>a?h.log(b/a)/h[Uz]:b<-a?-h.log(-b/a)/h[Uz]:0},inverse:function(b){return 0b?-h.pow(10,-b)*a:0}}}var XFa={Nya:qI,mya:YG,Bya:KH};function eS(a,b,c){return(c=ao(a,c,XFa))?c:In(a,b)?YG:qI}function YFa(a,b,c){switch(a){case qI:return aj(c)?RFa():SFa(c);case YG:return VFa();case KH:return WFa(b);default:return RFa()}};function ZFa(a){bi[xq](function(){throw a;},0)}var fS; +function $Fa(){var a=bi.MessageChannel;"undefined"===typeof a&&"undefined"!==typeof ba&&ba.postMessage&&ba[Uq]&&(a=function(){var a=ea[Sb](rG);Ra(a[x],Q);a.src=O;ea[gc][q](a);var b=a[Jy],a=b[Ld];a[Mq]();a[ey](O);a[bz]();var c=Hra+h[Hc](),d=b[xc][Fq]==hua?Pe:b[xc][Fq]+Dga+b[xc].host,a=X(function(a){if(a[Mx]==d||a[$]==c)this.port1.onmessage()},this);b[Uq](Kha,a,!1);this.port1={};this.port2={postMessage:function(){b.postMessage(c,d)}}});if("undefined"!==typeof a){var b=new a,c={},d=c;b.port1.onmessage= +function(){c=c[qc];var a=c.dga;c.dga=null;a()};return function(a){Da(d,{dga:a});d=d[qc];b.port2.postMessage(0)}}return"undefined"!==typeof ea&&jxa in ea[Sb](yh)?function(a){var b=ea[Sb](yh);Qp(b,function(){Qp(b,null);b[je][Ud](b);b=null;a();a=null});ea[gc][q](b)}:function(a){bi[xq](a,0)}};function gS(a,b){hS||aGa();iS||(hS(),iS=!0);jS[C](new bGa(a,b))}var hS;function aGa(){if(bi.Promise&&bi.Promise.resolve){var a=bi.Promise.resolve();hS=function(){a[lA](cGa)}}else hS=function(){var a=cGa;ri(bi.setImmediate)?bi.setImmediate(a):(fS||(fS=$Fa()),fS(a))}}var iS=!1,jS=[];function cGa(){for(;jS[J];){var a=jS;jS=[];for(var b=0;b=b.p2&&b[Nq]()}this.Nda?this.Nda[L](this.Wca,this):this.b3=!0;this.ZD||oS(this,new pS)}});W.kda=function(a,b){this.r2=!1;qS(this,a,b)};function qS(a,b,c){a.ZD=!0;a.Xs=c;a.BK=!b;nGa(a)} +W.vu=function(){if(this.ZD){if(!this.b3)throw new rS;this.b3=!1}};W.gfa=function(a){this.vu();qS(this,!0,a)};function oS(a,b){a.vu();qS(a,!1,b)}function oGa(a,b){sS(a,b,null,void 0)}function pGa(a,b){sS(a,null,b,void 0)}function sS(a,b,c,d){a.cf[C]([b,c,d]);a.ZD&&nGa(a)}W.then=function(a,b,c){var d,e,f=new kS(function(a,b){d=a;e=b});sS(this,d,function(a){a instanceof pS?f[Nq]():e(a)});return f[lA](a,b,c)};dGa(nS);nS[K].lj=function(a){return a instanceof m}; +function qGa(a){return Vi(a.cf,function(a){return ri(a[1])})} +function nGa(a){if(a.rT&&a.ZD&&qGa(a)){var b=a.rT,c=tS[b];c&&(bi[cq](c.ic),delete tS[b]);a.rT=0}a.Yd&&(a.Yd.p2--,delete a.Yd);for(var b=a.Xs,d=c=!1;a.cf[J]&&!a.r2;){var e=a.cf[sb](),f=e[0],g=e[1],e=e[2];if(f=a.BK?g:f)try{var k=f[L](e||a.Wca,b);ci(k)&&(a.BK=a.BK&&(k==b||a.lj(k)),a.Xs=b=k);eGa(b)&&(d=!0,a.r2=!0)}catch(l){b=l,a.BK=!0,qGa(a)||(c=!0)}}a.Xs=b;if(d)if(k=X(a.kda,a,!0),d=X(a.kda,a,!1),b instanceof nS)sS(b,k,d),b.aqa=!0;else b[lA](k,d);c&&(b=new rGa(b),tS[b.ic]=b,a.rT=b.ic)} +function sGa(a){var b=new nS;oS(b,a);return b}function rS(){xi[L](this)}Y(rS,xi);Ga(rS[K],"Deferred has already fired");fb(rS[K],"AlreadyCalledError");function pS(){xi[L](this)}Y(pS,xi);Ga(pS[K],"Deferred was canceled");fb(pS[K],"CanceledError");function rGa(a){this.ic=bi[xq](X(this.Hsa,this),0);this.Us=a}rGa[K].Hsa=function(){delete tS[this.ic];throw this.Us;};var tS={};function tGa(a,b){var c=b||{},d=c[Ld]||ea,e=el(Rf),f={ifa:e,lf:void 0},g=new nS(uGa,f),k=null,l=null!=c.timeout?c.timeout:5E3;0b.oE?!0:a.IUb.IU?!0:a.revg[0].xh[r]||0>g[0].xh[A]))return null;l=e;n=b.c$;e=[];for(s=0;su[u[J]-1]?p=v:(z=u[u[J]-1]-u[0],p=0==z?.5*v:(p-u[0])/z*v)),p=l[G]+p+k/2,p=[p-k/2,l.top,p+k/2,l.top,p,l.top+d],u=new bn({fill:n,stroke:n}),e[s]={path:p,brush:u};a=[];b[Vz]==Tg&&(a=f,c=[],c[0]= +{x:0,y:b[A]-a.Fg[A],text:a.Fg[id],style:b.ba},c[1]={x:b[r]-a.Yg[r],y:b[A]-a.Yg[A],text:a.Yg[id],style:b.ba},a=c);a={jZ:g,kZ:e,lZ:a};f=a.jZ;for(c=0;cd;++d)b[Vz]==Rh&&(k=f[c][Qz][2*d],f[c][Qz][2* +d]=f[c][Qz][2*d+1],f[c][Qz][2*d+1]=k),f[c][Qz][2*d]+=b[G],f[c][Qz][2*d+1]+=b.top;f=a.lZ;for(c=0;cb.bm[J]&&(b.bm[1]=h.abs(b.bm[0]-d[0])>h.abs(b.bm[0]-d[1])?d[0]:d[1]):b.bm=d;this.b=a||{};this.$0=b[Mx].lat/(180/h.PI);this.bS=b[Mx].lng/(180/h.PI);this.Po=Ti(b.parallels,function(a){return a/(180/h.PI)})}Y(DS,CS); +DS[K].yE=function(a){return Ti(arguments,X(function(a){var c=a[0]/(180/h.PI),d=.5*(h.sin(this.Po[0])+h.sin(this.Po[1]));a=d*(a[1]/(180/h.PI)-this.bS);var e=h.cos(this.Po[0]),e=e*e+2*d*h.sin(this.Po[0]),c=h[zd](e-2*d*h.sin(c))/d,d=h[zd](e-2*d*h.sin(this.$0))/d;return{x:180/h.PI*h.sin(a)*c,y:180/h.PI*(d-c*h.cos(a))}},this))};function ES(a){this.b=a||{}}Y(ES,CS);ES[K].OX=function(){return 2.2};ES[K].yE=function(a){return Ti(arguments,function(a){var c=a[0]/(180/h.PI);a=a[1]/(180/h.PI)*3/(2*h.PI)*(180/h.PI);return{x:h[zd](h.PI*h.PI/3-c*c)*a,y:c}})};function FS(a){var b=0,c=0;if(a.boundingBox)var d=a.boundingBox.lo,c=a.boundingBox.hi,b=(c[0]-d[0])/2+d[0],c=(c[1]-d[1])/2+d[1];d=[20,50];b={parallels:d,origin:{lat:b,lng:c}};c=b[Mx];a[Mx]&&jk(c,a[Mx]);jk(b,a);b.origin=c;b.bm&&0!==b.bm[J]?2>b.bm[J]&&(b.bm[1]=h.abs(b.bm[0]-d[0])>h.abs(b.bm[0]-d[1])?d[0]:d[1]):b.bm=d;this.b=a||{};this.$0=b[Mx].lat/(180/h.PI);this.bS=b[Mx].lng/(180/h.PI);this.Po=Ti(b.parallels,function(a){return a/(180/h.PI)})}Y(FS,CS); +FS[K].yE=function(a){return Ti(arguments,X(function(a){var c=a[0]/(180/h.PI);a=a[1]/(180/h.PI);var d=h.log(1/h.cos(this.Po[1])*h.cos(this.Po[0]))/h.log(h.tan(.25*h.PI+.5*this.Po[1])*(1/h.tan(.25*h.PI+.5*this.Po[0]))),e=h.cos(this.Po[0])*h.pow(h.tan(.25*h.PI+.5*this.Po[0]),d)/d,c=e*h.pow(1/h.tan(.25*h.PI+.5*c),d),e=e*h.pow(1/h.tan(.25*h.PI+.5*this.$0),d);return{x:180/h.PI*h.sin(d*(a-this.bS))*c,y:e-180/h.PI*h.cos(d*(a-this.bS))*c}},this))};function GS(a){return 180/h.PI*(h.atan(h.exp(a/(180/h.PI)))-h.PI/4)*2}function HS(){this.Jq={}}HS[K].track=function(a){Z(arguments,X(function(a){for(var c in a)if(a[zc](c)){c in this.Jq||(this.Jq[c]={min:da,max:-da});if(!this.Jq[c].min||a[c]this.Jq[c].max)this.Jq[c].max=a[c]}},this))};HS[K].getBounds=function(a){return{min:this.Jq[a].min,max:this.Jq[a].max}};function IS(a){this.b=a||{}}Y(IS,CS);IS[K].yE=function(a){return Ti(arguments,function(a){return{x:a[1],y:180/h.PI*h.log(h.tan(a[0]/180*.5*h.PI+h.PI/4))}})};var IGa={exa:"albers",gya:Yva,jya:"lambert",wya:DH},JS={};JS.mercator=IS;JS[Yva]=ES;JS.albers=DS;JS.lambert=FS;var JGa={NONE:Q,TOP_LEFT:bK,TOP_RIGHT:VAa,BOTTOM_LEFT:SD,BOTTOM_RIGHT:"bottom_right"},KGa={NONE:Q,Tya:HI,txa:TD,Ry:xg};function LGa(a){return Fn(a,Sxa,{name:DH},function(a){ni(a)||(a={name:a});var c=a[Cd];if(null!=c&&!bk(IGa,Sn(c)))throw m("The projection you specified is not valid.");return a})} +var MGa={region:zK,resolution:TE,domain:mC,displayMode:sg,showGeocodeWarnings:!1,backgroundColor:{fill:Uh,stroke:ZA,strokeWidth:0},datalessRegionColor:"F5F5F5",defaultColor:"267114",markerOpacity:1,selectionMode:Bh,fontName:gC,geocodingContext:HI,tooltip:{isHtml:!1,textStyle:{fontName:gC,fontSize:13,color:JD},trigger:Kg,showDisputedText:!1,showTitle:!0},colorAxis:{minValue:null,maxValue:null,values:null},sizeAxis:{minValue:null,maxValue:null,minSize:3,maxSize:12},legend:{position:SD,orientation:Tg, +textStyle:{color:JD,auraColor:Uh}},marker:{style:{stroke:{color:iB,width:1}}},projection:DH,keepAspectRatio:!0,magnifyingGlass:{enable:!0,zoomFactor:5}};function KS(a){this.Ec=a;this.VD=null;this.Cca=!0;this.JK=null;this.up=new Yu;this.nsa=/^([a-zA-Z][a-zA-Z]|[a-zA-Z][a-zA-Z]\-[a-zA-Z0-9](|[a-zA-Z0-9](|[a-zA-Z0-9]))|\d\d\d)$/;this.Ira=/^\d\d\d$/}Y(KS,ut);W=KS[K];W.m3=function(a){this.VD=a;null!=this.Zta&&this.Zta(a)};function NGa(a,b,c,d,e,f){a.Cca=e;if(0==b.M())Wt(function(){f([],[],!0)});else switch(c.JZ){case As:a.cY(b,c,f);break;case Ms:OGa(a,b,c,d,f);break;case bs:a.bY(b,c,d,f)}} +W.cY=function(a,b,c){for(var d=[],e=0;es?n:-n));v.da(p+(g>p?l:-l),s);v[bz]();p=e.sa(v,u,d);RS(a,p,bH,!0);p=new bn({fill:Uh});p=e.pk(g,k,l,n,p,d);RS(a,p,aH,!0);p=new bn({stroke:wra,ua:1.5});p=e.pk(g,k,l,n,p,d);RS(a,p,aH,!0);p=e.Ba();f=e.uF(p,new Il(f[G]+3.5,f.top+3.5,f[r]-7,f[A]-7),!0);e[q](d,f);f=new bn({stroke:Pra,ua:1.5});d=e.pk(g,k,l-3.5,n-3.5,f,d); +RS(a,d,aH,!0);d=c[$q];WGa(a,p,b,d.Yz,!0);XGa(a,p,b,d,!0);OS(a,p,c.Hz,!0,b.lk);a.bZ=c.Jn}else a.bZ=null}function aHa(a,b){0=d)){var e=c==VH?0:d-1,d=c==VH?d:-1;c=c==VH?1:-1;for(var f=e;f!=d;f+=c){var g=b[f][0],k=b[f][1];f==e?a[Hz](g,k):a.da(g,k)}a[bz]()}} +function OS(a,b,c,d,e){var f=a.g;c=gj(c);mj(c,function(a,b){return b[Ry]-a[Ry]});for(var g=0;gd.ri[1]&&(a-=360);c=Rk(this.z$)/2/c/(e[A]/(d.ri[0]-d.jh[0]));return{ri:[b+c,a+c],jh:[b-c,a-c]}};function mHa(a,b){var c=Xi(a.Hz,function(a){return a.Oi==b});if(!c)return!1;var d=a[$q].Yz,c=Mk(new Kk(c.x,c.y),new Kk(d[G]+d[r]/2,d.top+d[A]/2)),d=Rk(d.ac())/2;return c<.9*d};function VS(a,b,c,d){this.tg=!a.zC()&&In(b,Ewa);this.o=c;this.bb=d;this.uD=this.VJ=null}Hp(VS[K],function(a,b){if(!this.tg)return!1;if(nHa(this,a)||this.QX(a,b))return!0;var c=a.Wu==yF;return a[$].sJ&&c?!0:!1});VS[K].QX=function(a,b){if(a[H]!=fH)return!1;if(a[$].Rn){if(!a[$].Uz)return!1;if(b&&mHa(b,a[$].Oi))return!0;oHa(this);this.VJ=ba[xq](this.Zi(function(){this.VJ=null;this.o.Fu={Jn:a[$].Jn,Oi:a[$].Oi};PP(this.bb,0)}),300);return!0}oHa(this);return!1}; +function nHa(a,b){if(!a.o.Fu)return!1;switch(b[H]){case eH:case zF:var c;b[$].sJ?c=!1:(WS(a),c=!0);return c;case fH:case AF:if(b[$].Rn){c=b.Wu==dH;var d=b.Wu==bH;b[$].sJ&&!d?XS(a):c&&(b[$].Uz?XS(a):WS(a))}else null===a.uD&&(c=b.Wu==dH,(b[$].sJ||c)&&pHa(a));return!1;case BF:return b.Wu==bH?(pHa(a),c=!0):c=!1,c;default:return!1}}function pHa(a){XS(a);a.uD=ba[xq](a.Zi(function(){this.uD=null;WS(this)}),500)}function WS(a){a.o.Fu=null;PP(a.bb,0)}function oHa(a){null!==a.VJ&&(bi[cq](a.VJ),a.VJ=null)} +function XS(a){null!==a.uD&&(bi[cq](a.uD),a.uD=null)}VS[K].Zi=function(a){return X(a,this)};function qHa(a,b,c,d){this.R3=h.pow(a,2);this.Q3=h.pow(b,2);this.Vsa=b;this.S3=(this.Hq=c?new Pm(d[EA](c[y]),d[EA](c.end)):null)?this.Hq.end-this.Hq[y]:null;this.hfa=d}function rHa(a,b){var c=null;null!=b&&null!=a.hfa&&(b=a.hfa[EA](b));if(null!=b&&null!=a.Hq)0===a.S3&&b===a.Hq[y]?c=(a.Q3+a.R3)/2:b<=a.Hq[y]?c=a.R3:b>=a.Hq.end&&(c=a.Q3);else if(!a.S3||null==b)return a.Vsa;null==c&&(b=Aj(b,a.Hq[y],a.Hq.end),c=Cj(a.R3,a.Q3,(b-a.Hq[y])/a.S3));return h[E](h[zd](c))} +function sHa(a,b){var c=Pn(a,Eza),d=Pn(a,Cza);if(c>d)throw m("sizeAxis.minSize ("+c+") must be at most sizeAxis.maxSize ("+d+Oe);var e=Nn(a,Fza),f=Nn(a,Dza);if(null!=e&&null!=f&&e>f)throw m("sizeAxis.minValue ("+e+") must be at most sizeAxis.maxValue ("+f+Oe);e=Yea(b,e,f);f=eS(a,Bza,Gza);f=YFa(f,ia,[]);return new qHa(c,d,e,f)};function YS(a){this.b=a||{}}Y(YS,CS);YS[K].OX=function(){return 1};YS[K].yE=function(a){return Ti(arguments,function(a){return{x:a[1],y:a[0]}})};function tHa(a,b,c,d,e,f){this.b=a;var g=LGa(a);this.TV=new JS[g[Cd]](g);this.Q=b;this.qa=c;var k=en(co(a,zD)),g=b-k,k=c-k,l=h[E]((b-g)/2),n=h[E]((c-k)/2);this.wr=new Il(l,n,g,k);l=this.wr;if(Jn(a,Zva))var p=l[r],n=l[A],s=this.TV.OX(),g=h.min(p,h[E](n*s)),k=h[E]((p-g)/2)+l[G],p=h.min(n,h[E](p/s)),l=h[E]((n-p)/2)+l.top,g=new Il(k,l,g,p);else g=l[Bc]();this.Wt=g;this.Ld=d;this.t=e;this.fb=f;this.L5=Pn(a,NF,h[E](h.pow(2*(this.wr[r]+this.wr[A]),1/3)));this.xha=Wn(a,[Kwa,Jwa],iB);this.yha=Pn(a,Lwa,1); +this.RV=Tn(a,MF);this.Qq=uHa(this);this.TE=vHa(this);d=a.S(JG);this.via=hi(d)==jh;this.gO=$n(a,LG,JGa,SD);this.f7=Rn(a,awa,1/3);this.fO=$n(a,ewa,GGa,Tg);this.g7=fo(a,MG,{ab:this.RV,fontSize:this.L5});this.oW=Un(a,dwa);this.nia=Wn(a,ata,O);this.bN=Wn(a,hta,O);this.x5=wHa(this);this.zha=xHa(this);d=fo(a,NAa);e=Wea(d);this.tA=$n(a,ZJ,ho,Kg);this.tt=this.tA!=Q;this.Br={normal:d,bold:e};d=In(a,KAa);this.Zha=In(a,MAa);this.Yha=d?Vla:Ula;this.mX=In(a,GAa);this.Ria=10;this.aW=this.tp=this.wA=null;this.eA= +iB;this.wF=null;this.wha=Rn(a,Nwa);this.$ha=new lHa(this.Wt.ac(),new Fl(0,b,c,0))}function yHa(a,b){for(var c=0,d=a.wA[J];cd;d++){var e=(a.ri[1]-a.jh[1])/10*d+a.jh[1],f=(a.ri[0]-a.jh[0])/10*d+a.jh[0],e=b.yE([f,a.jh[1]],[f,a.ri[1]],[a.jh[0],e],[a.ri[0],e]);c.track[Sc](c,e)}d=c[sy](AK);c=c[sy](Wh);return{ri:[c.max,d.max],jh:[c.min,d.min]}}W=tHa[K]; +W.V6=function(a,b,c,d){for(var e=CHa(this,Nda(Pj(d.YC),Pj(d.en)));e[1]>a.ri[1];)e[1]-=360;for(;e[1]c[Ry]}} +function EHa(a,b,c,d){var e=a.zha(b),f=a.x5(b);if(null==f)return[];var f=new bn({stroke:a.xha,ua:a.yha,fill:f,Ce:a.wha}),g=la(c.lat),k=[];c=la(c.lng);c=[c,c+360,c-360];for(var l=0;ls.ri[0])){for(var u=0;us.ri[1])){var v=a.EZ(n.Vt,n.Yz,p,[g,v]),z=String(b+Te+n.id+Te+u),B=dH;null!=a.fb.pI&&0<=a.fb.pI?B=a.t.Ea(b,a.fb.pI):null!=a.fb.YH&&0<=a.fb.YH?B=a.t.Ea(b,a.fb.YH):null!=a.fb.XH&&0<=a.fb.XH?B=a.t.Ea(b,a.fb.XH): +null!=a.fb.bC&&null!=a.fb.cC&&0<=a.fb.bC&&0<=a.fb.cC&&(B=GHa(a.t[I](b,a.fb.bC),a.t[I](b,a.fb.cC)));k[C]({Jn:z,label:B,Oi:b,x:v[0],y:v[1],size:e,brush:f,Uz:!1})}}if(0n[cd]&&(s=f.x-p[r]);var u=f.y-p[A];ub.jh[0]&&a.latb.jh[1]&&a.lng+cthis.xd&&(this.to[oe]({v:this.xd,label:O}),this.Rg[oe](new oT(O,{})));this.xd=h.min(this.to[0].v[fd](),this.xd);a=this.to[this.to[J]-1].v[fd]();a>this.Hf[fd]()&&(this.Hf=a);this.mZ=this.Q/(this.Hf-this.xd); +this.uh=[];a=0;for(b=this.to[J];athis.Q+this.A0&&(Ax(e,sF),Ka(l,this.uh[d]-f),l.end=this.uh[d]);Rm(l,g[0])?k[C](d):g[C](l);for(e=1;ethis.to[d].v)&&p[Wc]){for(var k=b,e=this.uh[d],f=this.ll+10,l=p[mA]|| +iE,n=p.ba,p=p[Wc][rc](re),s=[],u=0,v=p[J];ua[fd]()?!0:!1,k&&(l+=Uka),l=b(l,a),c.Rg[C](new oT(l,{lc:O,bold:k,color:JD,ab:gC,fontSize:13,Tc:!1,Se:!1})),c.Rg[J]-1+O;if(e<=Dygraph.DAILY)return l=zf,0===a[nc]()||d?(l+=Tka,k=!0):k=!1,d=!1,l=b(l,a),c.Rg[C](new oT(l,{lc:O,bold:k,color:JD,ab:gC,fontSize:13,Tc:!1,Se:!1})),c.Rg[J]-1+O;if(e<=Dygraph.WEEKLY)return k=d,d=!1,l=b(If,a),c.Rg[C](new oT(l,{lc:O,bold:k,color:JD,ab:gC,fontSize:13,Tc:!1,Se:!1})),c.Rg[J]-1+O;if(e<=Dygraph.BIANNUAL)return l=KC,k=0===a[Hd]()||d, +d=c.xd>a[fd]()?!0:!1,k&&(l+=Vka),l=b(l,a),c.Rg[C](new oT(l,{lc:O,bold:k,color:JD,ab:gC,fontSize:13,Tc:!1,Se:!1})),c.Rg[J]-1+O;if(e<=Dygraph.CENTENNIAL)return l=b(JBa,a),c.Rg[C](new oT(l,{lc:O,bold:!1,color:JD,ab:gC,fontSize:13,Tc:!1,Se:!1})),c.Rg[J]-1+O;throw Npa;};case Dxa:return 50}};function qT(){};fi[K].qn=function(){return this};fi[K].Hy=function(){return!1};fi[K].Iba=function(){return!1};function rT(a,b){return 0>b?a/h.pow(10,-b):a*h.pow(10,b)}function sT(a){a=h.abs(.4342944819032518*h.log(a));return 1E-7>h.abs(a-h[E](a))}function tT(a){return h[t](.4342944819032518*h.log(a))}function uT(a){return h[yb](.4342944819032518*h.log(a))};function vT(){}W=vT[K];La(W,function(a,b,c){this.b=a;this.SF=b;this.hq=null===c||0>c?this.F$():2b?1:0};function kIa(a){this.Zp=a||String}var lIa={number:function(a,b){return b.Zp(a[od])},identifier:function(a){return a[Cd]},"+":function(){return Zka},"-":function(){return IA},"--":function(){return Te},"=":function(){return cla},"*":function(){return Yka},"(":function(){return Ne},")":function(){return Oe},",":function(){return Se},"^":function(){return $r}};kIa[K].C=function(a){return Ti(a,function(a){return lIa[a.Iq()](a,this)},this)[me](O)};function zT(){}Y(zT,qT);zT[K].Iq=function(){return Te};function AT(){}Y(AT,qT);AT[K].Iq=function(){return Qe};function BT(a){this.zh=a}Y(BT,fi);BT[K].join=function(a){var b=[];Z(this.zh,function(c,d){0c.vL()&&(e=!0);e&&b[C](new CT);ij(b,c.Fm());e&&b[C](new DT)},this);return b};BT[K].qn=function(){if(1===this.zh[J])return this.zh[0];var a=[];Z(this.zh,function(b){a[C](b.qn())});this.zh=a;return this};function ET(a){this.zh=a}Y(ET,BT);ET[K].vL=function(){return 1};ET[K].Fm=function(){var a=[];Z(this.zh,function(b){var c=b.Hy();0this[od]};gb(LT[K],function(){return this[od]});LT[K].Iba=function(){return!0};function NT(a,b){this.zh=a;this.Fba=null!=b?b:!1}Y(NT,BT);NT[K].vL=function(){return 2};NT[K].qn=function(){NT.e.qn[L](this);var a=0,b=[],c=1;Z(this.zh,function(d){d.Hy()&&(d=(new FT(d)).qn(),a++);d.Iba()&&(c*=d[I](),d=null);d&&b[C](d)});1!==c&&dj(b,0,0,new LT(c));var d=new NT(b,this.Fba);a%2&&(d=new FT(d));return d};NT[K].Fm=function(){return this.Fba?fj[Sc](null,Ti(this.zh,function(a){return a.Fm()})):this[me](new JT)};NT[K].Hy=function(){var a=0;Z(this.zh,function(b){b.Hy()&&a++});return!!(a%2)};function nIa(a,b){this.ya=[];this.tea=a;this.xea=b}function OT(a,b){if(0a.tea&&(d=h[E](d/a.tea),1b.x?1:a.xe[e[J]-1].x&&OT(d,g.max);return{data:d.sm(),sp:c}} +function yIa(a){var b=vIa(a),c;c=[];for(var d=b[J]-1;0<=d;d--){var e=b[d];if(null!=e&&0!==e){e=new LT(e);if(0=iJa[e-1]?f=.7:0a[J]?fj(a,qj(0,4-a[J])):gj(a);return a[dq]()}function lJa(a){a=iU(a);var b=new Date(1970,0,1,0,0,0,0);b[wd]((a[6]||0)+1970);b[ud](a[5]||0);b[Fd]((a[4]||0)+1);b.setHours(a[3]||0);b.setMinutes(a[2]||0);b.setSeconds(a[1]||0);b.setMilliseconds(a[0]||0);return b}function mJa(a,b){return Ti(a,function(a){return a*b})} +var aU="Milliseconds Seconds Minutes Hours Date Month FullYear".split(" "),kU=["milliseconds","seconds","minutes","hours",eta,"months","years"],lU={};Z(kU,function(a,b){lU[a]=b});var mU=[[1],[0,1],[0,0,1],[0,0,0,1],[0,0,0,0,1],[0,0,0,0,0,1],[0,0,0,0,0,0,1]],gJa=[0,0,0,0,1,0,0],iJa=[500,30,30,12,15,6,0],gU=[1,1E3,6E4,36E5,864E5,2629743830,31556926E3];function nU(a){switch(a){case Bg:case Cg:return{ak:nJa,By:oJa};case Jh:return{ak:pJa,By:qJa};case T:case Eh:return{ak:rJa,By:sJa};default:return{ak:rJa,By:sJa}}}function rJa(a){return ha(a)}function sJa(a){return a}function nJa(a){return a[ec]()}function oJa(a){return new Date(a)}function pJa(a){return hU(a)}function qJa(a){return jU(a)};function oU(a,b,c){this.P_=a;this.YQ=b;this.Y0=c}Y(oU,vT);W=oU[K];La(W,function(a,b,c){oU.e[Kc][L](this,a,b,c);a=Fn(a,this.Ja(yua));b=[];b[C](a.millisecond);b[C](a.second);b[C](a.minute);b[C](a.hour);b[C](a.day);b[C](a.month);b[C](a.year);this.Y0=tJa([b,qj(this[Nb],b[J]),this.Y0])});function tJa(a){a=wj[Sc](null,a);return Ti(a,function(a){return Xi(a,function(a){return a})})}W.S=function(a,b){return a.S(b)};W.CJ=function(a){return nJa(a)};W.UF=function(a){return oJa(a)};W.p0=function(a){return a}; +W.f0=function(){var a=new Date(0);a[wd](0);return a};W.uI=function(a,b,c){var d=this.hq;-1===d&&(d=6);var e=(b-a)/d,d=cU(e,this.P_,this.YQ);c?(a=ZT(new Date(a),d),b=$T(new Date(b),d,1)):(a=$T(new Date(a),d,1),b=ZT(new Date(b),d));e=eU(e);e=hJa(e,d);this.oda=e=0=l)return null;for(var n=h[t](h.log(l)/h.log(10)),l=VR(5,function(a){return{je:h.pow(10,n-a),gU:5}}),p=[],s=!1,u=0;ua.km&&(a={km:n,hea:{$i:h[E](e)*c.je,ur:h[E](l)*c.je}})}return a}, +{km:-da,hea:null}).hea}function zJa(a,b,c,d,e,f,g){for(var k=[],l=b-a,n=d+f,p=h[yb](l/(1-(c+e))/g),l=h[t](l/(1-n)/g);pa?1a&&(a=-a);if(.5>a)return 0;for(;0==h[E](a%10);)a=h[E](a/10);return 1==a||5==a?.5:h[t](h.log(a)/h.log(10))+1};function qU(){this.h$=0}Y(qU,vT);W=qU[K];W.F$=function(){return 4};La(W,function(a,b,c){qU.e[Kc][L](this,a,b,c);this.sd=null;this.iI=Mn(a,this.Ja(RF),1);this.DQ=a.S(this.Ja(zAa),[10,2,5,1])}); +W.Q2=function(a,b,c){var d,e,f,g,k;c?(d=X(AJa,null,this.DQ,this.hq,a,b),e=-1E-4,f=1/h.max(this.hq,3),g=e,k=f):(e=-1/h.max(this.hq,3),f=0,g=e,k=f,this.DQ[0]*=-1,d=X(AJa,null,this.DQ,this.hq,this.sc,this.qc));c=this.hq;(d=yJa(a,b,e,f,g,k,c,d))||(0<=a||0>=b||1==c?d={$i:a,ur:b}:(d=h.max(1,h.min(c-1,h[E](b/(b-a)*c))),c-=d,a=h.max(b/d,-a/c),d={$i:-c*a,ur:d*a}));a=d;b=(a.ur-a.$i)/this.hq;c=[];for(d=0;d<=this.hq;++d)c[C](a.$i+b*d);this.sc=h.min(c[0],this.sc);this.qc=h.max(c[c[J]-1],this.qc);this.rp(c)}; +W.rp=function(a){qU.e.rp[L](this,a);var b=0;Z(this[cz],function(a){a=this.pp(a);b=h.max(b,YR(a/this.iI))},this);this.h$=b};W.MI=function(){var a={pattern:this[Nb],fractionDigits:this[Nb]?null:this.h$,scaleFactor:this.iI,prefix:Un(this.b,this.Ja(QF)),suffix:Un(this.b,this.Ja(SF))};this.sd=new dp(a)};function AJa(a,b,c,d,e,f,g){c=a[0]*(d-c)/(g*(f-e));d=(f-e)/b;for(g=1;gd?1:0};W.CJ=function(a){return hU(a)};W.UF=function(a){return jU(a)};W.p0=function(a){return a};W.f0=function(){return jU(0)};W.uI=function(a,b,c){var d=this.hq;-1===d&&(d=6);var d=(b-a)/d,e=cU(d,CJa,0);this.G1=kJa(e);e=dU(e);this.tickSize=d=h.max(1,h[E](d/e))*e;c?(a=h[t](a/d)*d,b=h[yb](b/d)*d):(a=h[yb](a/d)*d,b=h[t](b/d)*d);this.Ga=a;this.ob=b;c&&(this.sc=a,this.qc=b)}; +W.Q2=function(){for(var a=[],b=this.Ga;bn&&(p=p[Bc](),p.mk(n)),a.F.JL(e,l,e+f,l,p,c));d.Cg&&((e=d.QE)||(e={type:yE}),xU(a,k,l,g/2,d.Cg,e,c))}else a.F.hb(b.Wc[lz][G],b.Wc[lz].top,b.Wc[lz][r],b.Wc[lz][A],b.Wc.brush, +c);d=null;b.Eg&&b.Eg.R&&(k=b.Eg[lz].x,l=b.Eg[lz].y,e=b.Eg.brush,d=a.F,g=d.Ba(),d.hb(k,l,12,12,e,g),d[q](c,g),e=new pL,e[Hz](k+2,l+2),e.da(k+12-2,l+12-2),e[Hz](k+12-2,l+2),e.da(k+2,l+12-2),k=new bn,k.hd(Ae),k.mk(2),d.sa(e,k,g),d=g.a(),g=JP([oya,b[pc]]),a[dy](d,g));a.F[q](a.Lq,c)}}function JJa(a,b){b&&(KJa(a,b.iZ,-1),b.hZ&&a.Dt(b.hZ,a.Lq),KJa(a,b.gZ,1))}function KJa(a,b,c){if(b){var d=sL(b[Qz]),d=a.F.sa(d,b.brush,a.Lq);b.Bu&&(b=JP([PG,c]),a[dy](d,b))}} +function GJa(a,b){if(b){var c=b[gy],d=a.F,e=a.bw;SGa(c.jZ,d,e);TGa(c.kZ,d,e);UGa(c.lZ,d,e);c=a.F.hb(b.QH[G],b.QH.top,b.QH[r],b.QH[A],qn,a.bw);a[dy](c,Hsa)}}W.zj=function(a,b,c){var d=b[yc];a=this.F.ml(a,b);a>c&&(d=h.max(1,h[t](b[yc]*c/a)));return d};function yU(a,b){var c=a.td[b];c&&(a.F.Yf(c),delete a.td[b])}W.HF=function(a,b){var c=a[Py]?PR(a,this.Dr.pc()):QR(a,this.F,this.yY).a();this[dy](c,b)};W.Dt=function(a,b,c){(a=LJa(this,a,c))&&this.F[q](b,a);return a}; +function LJa(a,b,c){var d=b.I;if(!d||0==d[J])return null;a=a.F;var e=b.ba,f=b.Kq,g=null!=b.Gb?b.Gb:0,k=b[sA]?b[sA]:{x:0,y:0},l=b.sb,n=!!l||c||!1;c=a.Ba();if(0===g&&f){var p=SR(b);if(p){var s=h[yb](p[G]-3)+.5,u=h[t](p.top-1)+.5;a.hb(s,u,h[t](p[cd]+3)+.5-s,h[t](p[Mc]+1)+.5-u,f,c)}}for(f=0;fk?null:z)&&k=z;N--)R=u.k[N].V,s.da(R.FV,R.GV),R.DV==R.FV&&R.EV==R.GV||s.da(R.DV,R.EV);else R=u.k[D].V,s.da(R.FV,R.GV),s[bz]();a.F.sa(p,n,l)}d=JP([sD,c]);a.De(a.zf.area.Ue,d,l.a());if(e){d=GU(b);e=JP([SG, +c]);f=d.Bc(a.F);g=bKa(a,b);if(f){l=b.Ln;n=b.Ji;if(l||n){g=g||a.F.Ba();if(l)for(d=0;d=b[uz])zU(a,e),MU(a,b,c);else{var f=FU(b,d);if(!aj(f.md)){d=(f=f.Bc(a.F))&&d?null:bKa(a,b);if(f){var g=b.Ln,k=b.Ji;if(g||k){d||(d=a.F.Ba());if(g)for(var l=0;l=l[cd]||k.x+g<=l[G]||k.y-g>=l[Mc]||k.y+g<=l.top)g=!1;else{if((k.x>=l[cd]||k.x<=l[G])&&(k.y>=l[Mc]||k.y<=l.top)){g*=g;var n=k.x-l[cd],p=k.x-l[G],s=k.y-l[Mc],k=k.y-l.top,l=n*n,p=p*p,s=s*s,k=k*k;if(l+s>=g&&l+k>=g&&p+k>=g&&p+s>=g){g=!1;break t}}g=!0}}g&&(g=JP([b[H]==XD?WD:sI,c,e]),DU(d,b)?a.De(f,g,fKa(a,d,NJa(d,b),AU(d,b))):zU(a,g),d.sb&&(f=JP([Xs,c,e]),IU(a,d.sb,f)),d.Uc&&KU(a,d.Uc,c,e),d.V.fr&&eKa(a,b,c,e, +d.V.fr))}function aKa(a,b,c,d){if(c&&c.V){var e=a.F.fl(c.V.line[G],c.V.line.top,c.V.line[r],c.V.line[A],c.Lc),f=a.F.fl(c.V[kA][G],c.V[kA].top,c.V[kA][r],c.V[kA][A],c.Pz),g=a.F.Ba();a.F[q](g,e);a.F[q](g,f);if(e=c.Ln)for(f=0;ff[cd])&&(f=b[gA])&&!aj(f)){var g=[oD,d];null!=c&&cj(g,c,1);var g=JP(g),k=e.x,l=e.y,n=e[J],p=e[F],e=e[Vz]==Tg?[n,1]:[1,n],e=a.F.fl(h.min(k,k+e[0]),h.min(l,l+e[1]),h.abs(e[0]),h.abs(e[1]),new bn({fill:p}));a.De(a.zf.annotation.Ue,g,e);e=a.F.Ba();g=[qD,d];null!=c&&cj(g,c,1);k=null;b.bundle&&!b.bundle.$U&&(f=[b.bundle[Wc]],k=-1);b=a.F.YF();for(l=0;ld)throw m("Data table should have at least 3 columns");a(this.hV,!0,[Eh]);var e=a(this.XE,!1,[Eh]),f=a(this.ZE,!1,[Eh]);this.h5=c.Ra(this.XE);this.i5=c.Ra(this.ZE);qi(this.Vq)&&this.Vql});this.Ym=qi(c)&&0e?Aj(c,e,f):c:g?h.max(c,e):k?h.min(c,f):c;a=(b-a)/e;b=.8*a;e=1.2*a;f=h[E];if(!(a>e||a=e)){c=1;g=a;do{var g=a,l=c,k=f;0==g||!Lj(g)||0>=l||(l=(0==g?1:h.pow(10,h[yb](-h.log(h.abs(g))/h[Uz])-1))*h.pow(10,h.max(0,l)),l*=0=b&&g<=e)&&5>c);a=5>c?g:a}return d?.5a.vJ)throw m("Not enough space for labels. Need: "+b+" got: "+a.vJ);a.vz[ce](function(a,b){var c=a.W2,d=b.W2;return c==d?a[pc]>b[pc]?1:0:c>d?1:-1});c=0;for(d=a.vz[J];ce[0].gu()){for(var f=a,g=e,e=0;eb[c][J]} +function CKa(a,b){var c=a.fc[Mc]-a.fc.top,d=a.Ha[yc],e=c-a.XF*d,f=1B)&&z[J]b.H())throw m("Not enough columns given to draw the requested chart.");if(In(this[Eq],MI)){for(var c=[],a=a.M()-1;0<=a;a--)c[C](a);b.Wn(c)}this.Ub=b}; +function LKa(a,b,c,d){null!=b||(b=d());b=h[E](b);null!=a||(a=(c-b)/2);a=h[E](a);b=h.min(a+b,c);return{start:a,end:b}} +function KKa(a){var b=a.N,c=go(a[Eq],qE,b[r]),d=go(a[Eq],nE,b[A]),e=go(a[Eq],pE,b[A]),f=go(a[Eq],oE,b[r]),g=X(function(){var a=b[r]/1.618,c=b[r]-b[A]*(1.618-1);return h[E](a>c?a:(a+2*c)/3)},a),f=LKa(f,c,b[r],g),c=h.min(f[y],f.end),f=f.end,g=f-c;a=X(function(){var a=b[A]/1.618,c=b[A]-b[r]*(1.618-1);return h[E](a>c?a:(a+2*c)/3)},a);e=LKa(e,d,b[A],a);d=h.min(e[y],e.end);e=e.end;b.A={left:c,right:f,width:g,top:d,bottom:e,height:e-d}};function ZU(a,b,c,d){return new MKa(a,b,c,d)}function MKa(a,b,c,d){this.nP=b;this.sd=new dp({pattern:a});this.fsa=c;this.esa=d}ta(MKa[K],function(a){a/=this.nP;return this.sd.Oc(a)+(se+(2>h.abs(a)?this.fsa:this.esa))});function $U(){this.mea=new Date;this.gl(Hf)}$U[K].gl=function(a){switch(a){case gg:a=Yo.YEAR_FULL;break;case Pf:a=iba;break;case Jf:a=Yo.YEAR_MONTH_ABBR;break;case uf:a=Ko[Ad].SHORT_DATE;break;default:a=Ko[Ad].SHORT_DATETIME}this.sd=new bp({pattern:a,timeZone:0})};ta($U[K],function(a){this.mea[Oc](a);return this.sd.Oc(this.mea)});function aV(){this.U3=null;this.uE=[];this.BX=this.lz=this.gL=null}function bV(a,b){a.U3=b;return a}function cV(a,b){a.gL=b;return a}aV[K].lp=function(a){this.lz=a;return this}; +function NKa(a,b){var c;c=ZR(qi(b)?b:3);c=[ZU(c,h.pow(10,15),jpa,jpa),ZU(c,h.pow(10,12),Hpa,Hpa),ZU(c,h.pow(10,9),coa,coa),ZU(c,h.pow(10,6),Woa,Woa)];a.uE=c;return a}function dV(a){var b;b=ZR(qi(5)?5:3);b=[ZU(b,h.pow(10,15),Of,Of),ZU(b,h.pow(10,12),Wf,Wf),ZU(b,h.pow(10,9),aoa,aoa),ZU(b,h.pow(10,6),Gf,Gf)];a.uE=b;return a}aV[K].sm=function(){var a;a=this.BX?new dp(this.BX):new dp({pattern:ZR(qi(this.U3)?this.U3:16)});return new OKa(a,this.uE,this.gL,this.lz)}; +function OKa(a,b,c,d){this.qsa=a;this.uE=b||[];this.gL=c||null;this.lz=d||null}ta(OKa[K],function(a){var b=0>a;a=h.abs(a);if(this.gL){var c=this.gL;if(0!=a){var d=h[t](h.log(h.abs(a))/vEa)+1;d>c?(c=h.pow(10,d-c),a=h[E](a/c)*c):(c=h.pow(10,c-d),a=h[E](a*c)/c)}}c=null;for(d=0;d=e.nP){c=e[Nb](a);break}}null==c&&(c=this.qsa.Oc(a));this.lz&&(a=this.lz.symbol,d=this.lz.usePadding?se:O,c=this.lz[mc]==Os?c+d+a:a+d+c);return b?Te+c:c});function eV(a,b,c,d,e,f){this.wd=a;this.za=b;this.qx=c;this.tu=d;this.Ob=f}function PKa(a,b,c){return new eV(a,b,!0,!0,0,c)}function fV(a,b,c){return new eV(a,b,!1,!1,0,c)}Sw(eV[K],function(){return h[E](this.za)});gb(eV[K],function(){return this.wd});eV[K].bd=function(){return this.Ob};eV[K].Bm=function(a){this.Ob=a};function gV(a,b){this.dL=a;this.cL=b||0;var c;c=this.dL+this.cL;if(1<=c)c=1;else{var d=c[kc]();c=0;var e=d[qd](nF);-1!=e?c=ka(d[hc](e+1),10):e=d[J];d=d[qd](Ue);-1!=d&&(c-=e-1-d);c=h.pow(10,-c)}this.jea=c;this.za=0}W=gV[K];Da(W,function(){this.za++;return this[I]()});W.Qg=function(){this.za--;return this[I]()};gb(W,function(){return h[E]((this.za*this.dL+this.cL)*this.jea)/this.jea});sa(W,function(a){this.za=h[t]((a-this.cL)/this.dL);return this[I]()}); +ra(W,function(a){this.za=h[yb]((a-this.cL)/this.dL);return this[I]()});Wa(W,function(a){this.za=h[E]((a-this.cL)/this.dL);return this[I]()});function QKa(a,b,c,d){this.la=a;this.ug=b;this.lb=c;this.sd=d}function RKa(a,b){var c=b[J];if(0=this.hm?(this.hg=new jV(a,b,c,d,this.Kv),this.Di=h[E](this.hg.ib(this.hm))):b<=-this.hm?(this.hg=new jV(-b,-a,d,c,this.Kv),this.Di=h[E](this.hg.ib(this.hm)),f=2*this.Di-d,e=2*this.Di-c,this.hg=new jV(-b,-a,f,e,this.Kv)):a>=-this.hm?(this.Di=h[E](c),this.hg=new jV(this.hm,b,this.Di, +d,this.Kv)):b<=this.hm?(this.Di=h[E](d),e=2*this.Di-c,this.hg=new jV(this.hm,-a,this.Di,e,this.Kv)):(this.hg=new jV(this.hm,b,0,1,this.Kv),e=this.hg.ib(-a),this.Di=h[E](c+e/(e+1)*(d-c)),b>=-a?this.hg=new jV(this.hm,b,this.Di,d,this.Kv):(e=2*this.Di-c,this.hg=new jV(this.hm,-a,this.Di,e,this.Kv)));this.wg=dthis.Di*b?this.hg.tf(a):a*bthis.hm?this.hg.ib(a):a<-this.hm?2*this.Di-this.hg.ib(-a):this.Di};function mV(a){this.hsa=a[Bb]();this.$K=a[J];this.za=0}W=mV[K];Da(W,function(){this.za++;return this[I]()});W.Qg=function(){this.za--;return this[I]()};gb(W,function(){var a=h[t](this.za/this.$K);return rT(this.hsa[this.za-a*this.$K],a)});sa(W,function(a){this.za=this.$K*uT(a);if(this[I]()!=a)for(;this.Qg()>a;);return this[I]()});ra(W,function(a){this.za=this.$K*tT(a);if(this[I]()!=a)for(;this[qc]()a;);if(a-this[I]()=a&&d<=b&&(a=this.hg.tf(this.hg.ib(0)+this.K2),c=h.max(c,a));return this.Ms[yb](c)};function oV(a,b,c,d){this.GK=a;this.pT=b;this.V3=c;this.jfa=d;this.pz=(this.jfa-this.V3)/(this.pT-this.GK);this.pL=this.pz*this.GK-this.V3}W=oV[K];W.tf=function(a){return(a+this.pL)/this.pz};W.ib=function(a){return a*this.pz-this.pL};W.Fo=function(){return this.V3};W.fn=function(){return this.jfa};W.$b=function(){return this.GK};W.ec=function(){return this.pT};function pV(a,b){this.oT=a;this.EK=h[t](a/10);this.it=a-this.EK;this.kc=0;this.tT=tT(h.abs(b));this.cz=this.it*this.tT;this.za=0}function VKa(a){var b=h[t](a.za/a.it);a=10*(a.za+a.EK-b*a.it)/a.oT;0==a&&(a=1);return rT(a,b)}W=pV[K];gb(W,function(){this.za=h.abs(this.kc)+this.cz;return 0this.kc?-VKa(this):0});Da(W,function(){this.kc++;return this[I]()});W.Qg=function(){this.kc--;return this[I]()}; +sa(W,function(a){var b=this.EK,c=tT(h.abs(a));if(h.abs(a)<=h.pow(10,this.tT))return this.kc=0>a?-1:0,this[I]();0a&&(this.kc=this.cz-this.it*c,b=-b);this[I]()!=a&&(c=this.oT*a/rT(1,uT(h.abs(a))),this.kc+=h[t](c)-b);return this[I]()}); +ra(W,function(a){var b=this.EK,c=tT(h.abs(a));if(h.abs(a)<=h.pow(10,this.tT))return this.kc=0a&&(this.kc=this.cz-this.it*c,b=-b);this[I]()!=a&&(c=this.oT*a/rT(1,uT(h.abs(a))),this.kc+=h[yb](c)-b);return this[I]()}); +Wa(W,function(a){var b=tT(h.abs(a));if(h.abs(a)<=h.pow(10,this.tT))return this.kc=0;if(0a)return a-this[I]()>=this.Qg()-a?this[qc]():this[I]();this.Qg()}else if(0>a){this.kc=this.cz-this.it*b;if(this.Qg()c[J])return hV(this.sq,c);var b=c[0],d=c[1];if(0==b){if(3>c[J])return hV(this.sq,c);b=d;d=c[2]}c=rT(1,uT(h.abs(b)));c==b&&(c*=10);this.Ms[yb](c/h.abs(d-b));do if(b=this.Ms.Qg(),c=new pV(b,a),c=iV(c,this.la.$b(),this.la.ec(),b),b=this.sq,d=[],!(1>=c[J]||0!=c[0])){d[C](c[0]);for(var e=1,f=c[J];e=this.woa);return this.Ms.Qg()};function WKa(a,b){this.yz=null!=a?a:1;12=this.cda)return rV(this,4),this.tj*this.cf[t](a/this.tj);for(rV(this,2);a>=this.ck[this.za];)this.za++;return this.ck[--this.za]}); +ra(W,function(a){if(a<=this.s2)return rV(this,1),this.cf[yb](a);if(a>this.YD)return rV(this,4),this.tj*this.cf[yb](a/this.tj);for(rV(this,3);a<=this.ck[this.za];)this.za--;return this.ck[++this.za]});Wa(W,function(a){if(a=this.iqa)return rV(this,4),this.tj*this.cf[E](a/this.tj);for(rV(this,3);0a?6048E5==a?new gV(a,3456E5):new gV(a):new WKa(h[E](a/2629746E3))} +function ZKa(a){if(!na(a))return exa;var b=new Date;b[Oc](a);a=O+tV(b[Mb]()[kc](),4);var c=b[Ec](),d=b[Nd](),e=1!=d,f=b[ie](),g=b[he](),k=b.getUTCSeconds(),b=b.getUTCMilliseconds(),l=0!=f||0!=g||0!=k||0!=b;if(0!=c||e||l)a=a+Te+tV((c+1)[kc](),2);if(e||l)a+=Te,a+=tV(d[kc](),2);l&&(a+=Wf,a+=tV(f[kc](),2),a+=ef,a+=tV(g[kc](),2),a+=ef,a+=tV(k[kc](),2),a+=Ue,a+=tV(b[kc](),3));return a} +function uV(a,b){var c=O,d=new Date;d[Oc](a);var e=d[Ec](),f=d[Nd](),g=d[ie](),k=d[he](),l=d.getUTCSeconds(),n=d.getUTCMilliseconds(),c=c+tV(d[Mb]()[kc](),4);if(b==gg)return c;c=c+Te+tV((e+1)[kc](),2);if(b==Jf)return c;c+=Te;c+=tV(f[kc](),2);if(b==uf)return c;c+=Wf;c+=tV(g[kc](),2);c+=ef;c+=tV(k[kc](),2);c+=ef;c+=tV(l[kc](),2);c+=Ue;return c+=tV(n[kc](),3)}function tV(a,b){for(var c=a[J];cd?-$Ka(-d,c):aLa(d,c);var e=a.end,c=0>e?-aLa(-e,c):$Ka(e,c);return new Pm(d,c)} +function aLa(a,b){if(0==a)return 0;for(var c=a,d=0,e=ia;0a-b))break;e=k*g+d;e=xV(e,f);if(e<=a&&e>a-b)break;f=k*g;d+=f;c-=f}return e}function $Ka(a,b){if(0==a)return 0;for(var c=a,d=0,e=ia;0k&&(e=5*g+d,e=xV(e,f),e<=a+b&&e>=a))break;e=k*g+d;e=xV(e,f);if(e<=a+b&&e>=a)break;e=(k+1)*g+d;e=xV(e,f);if(e<=a+b&&e>=a)break;f=k*g;d+=f;c-=f}return e} +function xV(a,b){var c=rT(1,h.abs(b));return h[E](a*c)/c}function bLa(a){var b=tT(a),b=rT(1,b);a/=b;b=h.abs(h[E](a)-a);0!=b&&1E-10>b&&(a=h[E](a));return h[t](a)};function cLa(a,b,c,d,e,f,g,k,l){this.rma=a;this.U$=b;this.V$=c;this.ug=d;this.dg=e;this.la=f;this.VQ=g;this.lb=k;this.K_=l;this.qma=Ho(a);this.XQ=Ho(b);this.dg.gl(this.U$)}function dLa(a,b,c){var d=a.la.ib(b);c=a.la.ib(c);d=(d+c)/2;return fV(a.la.tf(d),d,a.dg[Nb](b))};function yV(a,b,c,d,e,f,g){this.la=a;this.qk=b;this.ug=c;this.dg=d;this.VQ=e;this.lb=f;this.K_=g;this.X$=[zV(this,uf,1),zV(this,uf,7),zV(this,Jf,1),zV(this,Jf,2),zV(this,Jf,3),zV(this,Pf,1),zV(this,Jf,6),zV(this,gg,1),zV(this,gg,2),zV(this,gg,5),zV(this,gg,10),zV(this,gg,20),zV(this,gg,50),zV(this,gg,100),zV(this,gg,1E3),zV(this,gg,1E4),zV(this,gg,1E7)]}function zV(a,b,c){return new cLa(a.qk,b,c,a.ug,a.dg,a.la,a.VQ,a.lb,a.K_)} +yV[K].wH=function(){for(var a=Ho(this.qk),b=0;bd.qma,l=sV(d.XQ*d.V$),n=sV(d.XQ),c=[],p=ia,s=l[yb](e),e=n[yb](e);e<=f;e=n[qc]()){var u=d.la.ib(e);if(e==s){var s=l[qc](),v=d,z=p,B=e,D=v.ug.cv(v.dg[Nb](z),v.lb),N=v.ug.cv(v.dg[Nb](B),v.lb);if(h.abs(v.la.ib(z)- +v.la.ib(B))-(D+N)/2s/2&&k[C](fV(f,p,n)));if(d.K_){f=d;n=g;l=c;k=void 0;i:{for(k=l[J]-1;0<=k;k--)if(null!=l[k].bd()){k=l[k];break i}k=null}null!=k&&(l=f.ug.cv(k.bd(),f.lb),s=f.ug.cv(n.bd(),f.lb),h.abs(k[fz]()-n[fz]())-(l+s)/ +2f)c=d,d=c.dg[Nb](c.la.$b()),g=c.dg[Nb](c.la.ec()),d=d+Te+g,g=[],f=h.abs(c.la.Fo()-c.la.fn()),c.ug.mb(d)>f+40||g[C](fV(ia,c.la.Fo()+c.la.fn()/2,d)),c=g;else{i:{d=c;if(!(2>d[J]))for(g=d[0],f=1;fh.abs(n[fz]()-g[fz]())&&g[I]()!=n[I]()){d=!0;break i}g=n}d=!1}if(d){d=[];for(g=0;gu||u>d)s=h.min(f,e);c=a.ib(s);b=a.ib(b);b=eLa(c,a)/eLa(b,a)}return(.65=s&&(u=l[J]);var B=n.Ao();if(null!=B){B=c(B[ec]()-a.RH);if(Bz){k=h.max(0,k-1);break}k++}B|| +l[C]({ta:v,X:z,R:!0,brush:b.Bt,length:null})}if(p){1v.end){f=h.max(0,f-1);break}f++}z&&k[C]({ta:p.ta,R:!0,X:s,Aa:{text:e[n][id],ba:b,I:[{x:s,y:0,text:e[n][id],length:u}],Kc:a,Jc:sF,vwa:e[n][id],anchor:null,Gb:0}})}}return k} +function mLa(a){return Ti(a,function(a){return 0a.Ox||null===a.Ox&&a.Rz)&&(a.mV=!0,a.Ox=-1);d[Kc](c,a.SF,a.Ox);a.ea=d;a.dataType=b;a.Fg=d.S(c,a.Ja(gh));a.Yg=d.S(c,a.Ja(eh));a.hr=c.S(a.Ja(CD),WIa.vAxis.gridlines.baseline)} +function GV(a,b){a.dr=ao(b,a.Ja(vK),GIa);if(null===a.dr||a.dr==uF){if(a[H]==Qh){var c=a.ea,d=c.S(b,a.Ja(EBa));qi(d)||(d=wT(c,c.S(b,a.Ja(uK))));var e=c.S(b,a.Ja(DBa));qi(e)||(e=wT(c,c.S(b,a.Ja(tK))));null!=d&&(a.zb.min=d);null!=e&&(a.zb.max=e)}else a.zb.min=Mn(b,a.Ja(uK),a.zb.min),a.zb.max=Mn(b,a.Ja(tK),a.zb.max);a.zb.min>a.zb.max&&(c=a.zb.min,a.zb.min=a.zb.max,a.zb.max=c);a.dr=a.zb.min!=-da||a.zb.max!=da?uF:a.fha;a[H]==Qh&&a.dr==uF&&(a.zb.min!=-da&&(a.ea.sc=a.zb.min),a.zb.max!=da&&(a.ea.qc=a.zb.max))}} +function oLa(a){return a.dr==uF&&(a.zb.min==-da||a.zb.max==da)}function pLa(a){if(a[H]==Qh&&!a.ea)throw m("Axis type/data type mismatch for "+a.SF);} +function qLa(a,b,c,d,e,f){a.Te=d+(1==a[Ox]?.5:-.5);a.fF=c-1;a.ef=d+c*a[Ox];c=a.a$(b);rLa(a)&&(a.mV||In(a.b,a.Ja(mva)))&&(a.bV=!0);b=a.bV?sLa(a,b,e,f):tLa(a,b,e,f);return{title:a[fA],name:a.b$(),type:a[H],ap:a.Rz,dataType:a[ez],tm:a.tm,Te:a.Te,ef:a.ef,Xd:{Ee:X(a.L9,a),rk:X(a.pp,a)},position:{Ee:X(a.UH,a),rk:X(a.O7,a)},Jj:c,Eb:b.Eb,Ia:b.Ia,Th:b.Th,text:a.Mi}} +function tLa(a,b,c,d){a[H]==Qh?(uLa(a),a.Ui?vLa(a):a.mV?rLa(a)?wLa(a,b):xLa(a,b):yLa(a)):zLa(a,b,a.fF+1);var e=ALa(a),f=null;if(a[H]==Qh){var f=Ti(a[cz],function(a){return{a9:a,ta:a.ta,X:a.X,R:!0,length:null,brush:this.Bt}},a),g;if(g=a.Rz?BLa(a,f):CLa(a,f))g=Ti(g,function(a){return{ta:this.O7(a),X:a,R:!0,length:null,brush:this.YL}},a),ij(f,g);Ri(f,function(a){if(a.X*this[Ox]=a.ea.qc)return{Ia:null,Th:null,Eb:null};var e=ALa(a);mj(a.mF);for(var f=da,g=1;g=this.zb.min&&a<=this.zb.max},a));qi(a.Ox)&&2>a.Ox&&(b=jj(b,0,a.Ox));a.ea.rp(b);a.ea.MI();var c=xT(a.ea);IV(a);Rw(a,Ti(a.ea[cz],function(a){var b=this.ea.pp(a),f=c.Oc(b);return{ta:b,X:this.Fe(a),text:f,R:!0}},a))} +function ELa(a){var b=da,c=null,d,e=a.ea[cz],e=Ti(e,function(a){d=0b&&(d=0=b[J]||0==a.vp)return null;var c=(b[1].X-b[0].X)/(a.vp+1),d=[],e,f,g=b[0].X;for(e=f=h[t]((g-a.Te)/c);0=b[J]||0==a.vp)return null;for(var c=b[0],d=c.ta,e=d,f=[c],g=1;g=b[J])return null;var k=b[1].X-b[0].X,c=[],d=[],l;a.vp=h.min(TIa[J],a.vp);e=TIa[a.vp-1];a.vp=e[J];for(g=0;gk)&&sT(k))for(1>k&&(f=-1,e=b[g+1].X),k=b[g+1].X-b[g].X,l=0;lb.qc&&a.zb.max==da&&(b.qc=h.min(b.qc+c,0))}} +W.Fe=function(a){return null!=a?this.Te+(a-this.fA)*this[Ox]*this.lw:null};function JV(a,b){if(null==b)return null;sw(a,1);var c=null!=b?(b-a.Te)*a[Ox]/a.lw+a.fA:null;sw(a,-1);return a.Fe(c)}W.L9=function(a){return this[H]==Qh?wT(this.ea,a):a};W.pp=function(a){return null!=a?this[H]==Qh?this.ea.pp(a):a:null};W.O7=function(a){a=null!=a?(a-this.Te)*this[Ox]/this.lw+this.fA:null;return null!=a?this.pp(a):null};W.UH=function(a){return this.Fe(this.L9(a))}; +function DLa(a){switch(a[H]){case eE:return a.zb.min-.5}return a.zb.min}function SU(a,b){return a[H]==Qh?b>=a.zb.min&&b<=a.zb.max:b>=h[t](a.zb.min)&&ba.ef*a[Ox]}function rLa(a){return null!=a.ea&&(a.ea instanceof oU||a.ea instanceof tU)};function GLa(a,b,c,d,e,f,g,k,l,n){this.fba=a;this.Yh=b;this.Bqa=c;this.Kpa=d;this.Qda=e;this.UT=f;this.Xna=g;this.Wna=k;this.Vna=l;this.eba=n}function HLa(a,b,c,d){switch(d){case mra:return(b-1-a)%c;default:return a}}function KV(a,b,c){b=h[yb]((a.Yh[J]-0)/(b*c));return 2>a.Yh[J]||2>b} +function ILa(a,b,c,d,e){b=HLa(b,a.Yh[J],d,a.Xna);for(var f=1>=a.Yh[J]?a.fba:h.abs(a.Yh[1].X-a.Yh[0].X)*d-a.Wna,g=[];ba||90s||0==u.su)v=PV(this,e),u=null}else v=PV(this,e);var z=QP(e,l,this[fA].ba,a.A[r],da),B=this.gp,D=h.max(B,h[E](f/1.618)), +N=h.max(B,h[E](f/3.236)),M=function(){return{key:TJ,min:v.minHeight+B,max:v.maxHeight+B,Wb:[D-B]}},R=[];R[C]({key:QD,min:B,Wb:[da]});0s&&(Ha=u=null,v=PV(this,e),R[S]=M(),R=LFa(R,0,V,f,void 0),g=XR(R,a[A]-a.A[Mc])));var Va=a.A[Mc],Ja=g[cz]||[];if(0a[cz][J]?1:h[yb]((e+a.gp)/f/h.abs(a[cz][1].X-a[cz][0].X)));for(var l=0,n=0;nh.abs(a))?f[Nb](a):g[Nb](a)}),l=a.N,n=l.kb==ZI?ZI:SG,p=0,s=l.l[J],u=0;u=M&&(M=6);M/=2;0< +M&&(M+=1);var S={};null!=v.ga[$]&&qa(S,v.ga[$]);var V=Pn(a[Eq],[z+UG,UG],2);$n(a[Eq],z+VE,UT,Q);In(a[Eq],z+wK,!1);var D=PU(D),B=AIa[B],ma=a.Dg[0],Ja=a.gf[0];if(l[Vz]===Rh)var Ha=ma,ma=Ja,Ja=Ha;if(ma[H]===Qh){var Va=ma.ea,Ge=Ja.ea,Jb=v.ga[$][0],Qc=zj,ne=zj;0p;++p){var s=a.D(p);c=a.gj(p,vh);l(c);aMa(f,s);s={ga:{},dataType:s};s.ga.domain=[p];e[C](s);n[c]=p;g[C]({We:p,zw:ms,Zz:0,uc:null})}for(p=0;pk)throw m("Invalid gap value ("+k+") in data row #"+f+". Gap value must be non-negative.");c[C]({xd:d,Hf:g,Qka:k})}d=g}return c}W.y8=function(){return this.qr&&this.qr.fp==T?null:null!=this.gf[0]&&null!=this.gf[1]?$J:null!=this.gf[1]?ah:Os};W.x8=function(){return this.qr&&this.qr.fp==T?$J:null}; +function XV(a){var b=a.ga[$];return b?b[0]:a.ga[bI][0]}function dMa(a){for(var b=a.N,c=a.Ub,d=a.ld,e=0;e=d[G]&&this.Cf.ip(d);rMa(this);sMa(this);this.qr||($La(this,this.Ub),ZLa(this),tMa(this))}; +function fMa(a){var b=a.N,c=a.$c,d=Yj(a.Dg)[fA].ba,e=h.max(b[fA].ba[yc],d[yc]),f=a.Cf.Ha[yc],g=a.Cf[fz](),k=a.Ej.Ha[yc],l=a.Ej[fz](),n=b.Lz==sG?b[fA][id]:O,p=O,s=O;if(b.ME==sG){var u=function(a){var b=ak(a);mj(b);b=Ti(b,function(b){return a[b][fA][id]});return Si(b,function(a){return a!=O})[me](Se)};switch(b.kb){case ZI:case WD:p=u(a.Dg);s=u(a.gf);break;case Mg:p=u({0:a.ld}),s=u(a.jf)}}var p=p&&s?p+ala+s:p?p:s?s:O,s=h.max(2,h[E](e/1.618)),v=h.max(2,h[E](f/1.618)),z=h.max(2,h[E](k/1.618)),B=b.A[r]- +2*s,k=QP(c,n,b[fA].ba,B,1),u=0s.$w||1>n.$w)u=bW(u,!1),p.$r=u;1!=s.sx&&1!=n.sx&&(n=h.min(n.sx,s.sx),u=CMa(u,n),p.$r=u);0==s.tla&&k&&!k.Qe&&(p.$r=null);n=s}k=p}}} +function DMa(a){var b={fill:{},stroke:{},shape:{}};null!=a&&(null!=a[Yz]&&rx(b,a[Yz]),null!=a[Ry]&&Mw(b,a[Ry]),null!=a[F]&&Ya(b[ic],Ya(b[$b],a[F])),null!=a[Od]&&nb(b[ic],nb(b[$b],a[Od])),null!=a[Qx]&&Ya(b[ic],a[Qx]),null!=a.fillOpacity&&nb(b[ic],a.fillOpacity),null!=a[cy]&&Ya(b[$b],a[cy]),null!=a.strokeOpacity&&nb(b[$b],a.strokeOpacity),null!=a.strokeWidth&&pa(b[$b],a.strokeWidth),null!=a.shapeType&&cb(b[Px],a.shapeType),null!=a.shapeSides&&(b[Px].sides=a.shapeSides),null!=a.shapeRotation&&(b[Px].rotation= +a.shapeRotation),null!=a.shapeDent&&(b[Px].dent=a.shapeDent));return b}function EMa(a,b,c){var d=void 0;b=null!=b.ga[x]?b.ga[x][0]:void 0;if(null!=b&&a.Ub.D(b)===Eh&&(a=a.Ub[I](c,b),null!=a)){var e,d=Di(a);if(Gm(d))e={fill:{color:d},stroke:{color:d}};else if(d[Cb](0)===Yh){try{var f=vo(d)}catch(g){}null!=f&&(e=f)}null==e&&(Fi(d,Yh)?(e=Vj(kKa(d),DMa),O in e&&(jk(e,e[O]),dk(e,O)),Pe in e&&(jk(e,e[Pe]),dk(e,Pe))):e=DMa(rm(d)));d=e}if(null!=d)return new Bn([d])} +function $V(a,b,c,d,e){a.tt&&(b.de=FMa(a,c,d,e));var f=EMa(a,c,e);d=GMa(a,c,e);var g=HMa(a,c,e);a=IMa(a,c,e);e=EU(b,c);var k=c.Cg;if(null!=f){var k=k[Bc](),l=function(a,b,c){b=b||O;c!==GJ&&(a.Oe(Wn(f,[b+FF,b+DF],a.cb())),a.Ch(Rn(f,b+iua,a.Pe)));c!==DF&&(a.hd(Wn(f,[b+JJ,b+GJ],a.re)),cn(a,Rn(f,b+lAa,a.qi)),a.mk(Mn(f,b+mAa,a.Nb)))};lx(b,e=Pn(f,Ixa,e));var n=bo(f,Hxa);null!=n&&(b.shape=n);n=Jn(f,Jxa);null!=n&&rx(b,n);l(k);switch(c[H]){case SG:case ZI:case sD:l(k,Gxa);null!=c.Lc&&(b.$r=(b.$r||b.Lc||c.Lc)[Bc](), +l(b.$r,null,GJ),l(b.$r,TG,GJ));null!=c.Vv&&(b.eF=(b.eF||b.Lc||c.Vv)[Bc](),l(b.eF,null,DF),l(b.eF,kra,DF));break;case CJ:l(k,kra,DF),null!=c.Lc&&(b.Lc=(b.Lc||c.Lc)[Bc](),l(b.Lc,null,GJ),l(b.Lc,TG,GJ));case BD:l(k,tra);break;case cE:b.Pz=b.Pz[Bc](),l(b.Pz),l(b.Lc),l(b.Pz,tra),l(b.Lc,TG)}b.brush=k}a||(b.scope=a,c.Xaa=c.Xaa||k.lH(),k=c.Xaa,b.brush=k);1!=g&&(b.sx=g,c[H]==SG||c[H]==sD||c[H]==ZI)&&(e=h[E](e*h[zd](g)*10)/10,lx(b,e));if(1>d)switch(b.$w=d,c[H]){case SG:case sD:case ZI:b.brush=bW(k,!0);lx(b, +h.max(e-en(b.brush)/2,0));break;case BD:case CJ:b.brush=bW(k,!1)}}function FMa(a,b,c,d){c=a.cW(b,c,d);var e=b.ga.tooltip;e&&!b.$g&&(a=TV(a,e[0],d))&&jk(c,a);c.ql=!!c.ql;return c}function TV(a,b,c){var d=a.Ub;a=a.N.pr&&(d.hp(c,b,Vg)||d.gj(b,Vg));b=d.Ea(c,b);return{ql:!!a,ki:b?!0:!1,content:b}} +W.cW=function(a,b,c){if(this.N.kb===ZI||a.$g){var d=this.Ub,e=this.N,f,g,k,l;if(a.$g)f=a[$][c][0],g=a[$][c][1],null!=f&&(f=kp(f,d.D(a.We))),null!=g&&(g=kp(g,a[ez])),k=e.di===eE?g:f+Se+g,l=f;else if(this.N.jd){var n=this.Dg[0][fA][id]||ZC,p=this.gf[0][fA][id]||Rpa;k=b%2?b-1:b;b=e.l[k];k=e.l[k+1];f=e.uk[k.We].ga[Jz][0];g=XV(k);f=d.Ea(c,f);g=d.Ea(c,g);k=n+PB+f+Se+p+PB+g;f=e.uk[b.We].ga[Jz][0];g=XV(b);f=d.Ea(c,f);g=d.Ea(c,g);k+=re+n+PB+f+Se+p+PB+g}else f=e.uk[a.We].ga[Jz][0],g=XV(a),f=d.Ea(c,f),g=d.Ea(c, +g),k=f+Se+g;a={ki:!1,content:k,Cm:a[fA],hw:l}}else a=JMa(this,a,c);return a}; +function JMa(a,b,c){var d=a.Ub,e=a.N.Da[c],e=b.$g?b[$][c][0][kc]():e.Nt[b.We];if(b[H]==cE){var f=b.ga[$];a=d.Ea(c,f[0])+IA+d.Ea(c,f[3])+Se+d.Ea(c,f[1])+IA+d.Ea(c,f[2])}else if(a.N.jd){var g=b.ga[bI],f=b.ga[$],k=a.Ub[I](c,g[0]);a=a.Ub[I](c,f[0]);g=d.Ea(c,g[0]);f=d.Ea(c,f[0]);if(null===k&&zi(g)&&null===a&&zi(f))return{ki:!1,content:null};a=f+re+g}else{f=b.ga[$];k=b.$g?b[$][c][1]:a.Ub[I](c,f[0]);a=b.$g?b[$][c][1][kc]():a.Ub.Ea(c,f[0]);if(null===k&&zi(a))return{ki:!1,content:null};k=b.ga[Gb]||[];k[J]&& +(k=Ti(k,function(a){return d.Ea(c,a)}),a+=rga+k[me](Se)+kg)}return{ki:!1,content:a,hw:e,Cm:b[fA],ql:!1}} +function jMa(a){function b(a){return{ol:a.x,Mw:a.y}}function c(a){return new CL(a.ol,a.Mw)}function d(a){return{x:a.x,y:a.y}}function e(a){return new CL(a.x,a.y)}var f=a.N,g=a.ld,k=X(function(a,b,c){b.uia&&(this.Dg[0].nc(c.x),this.gf[0].nc(c.y))},a);a=X(function(a,b,c){g.nc(c.ol);b.C6&&this.jf[a.qe].nc(c.Mw)},a);var l,n,p;switch(f.kb){case ZI:l=e;n=d;p=k;break;case Mg:l=c,n=b,p=a}for(k=0;ke)var f=d,d=e,e=f;for(var g,k,f=0;fc&&e(),b.UQ=new Fl(f,c,g,d)):1==n?(dc&&e(),b.UQ=new Fl(d,l,c,k))} +function rMa(a){var b=a.N;Sj(b.Kd,function(a,d){eW(this,this.gf[d],b.Kd[d],this.Ipa)},a);Sj(b.ce,function(a,d){eW(this,this.Dg[d],b.ce[d],this.Hpa)},a)}function sMa(a){var b=a.N;Sj(b.ce,function(a,d){eW(this,this.Dg[d],b.ce[d],this.rqa)},a)}function eW(a,b,c,d){c[id]&&cx(c,Si(c[id],X(d,a,b)))}W.Hpa=function(a,b){var c=this.N,d=b.Aa;return d.Gb?!0:(d=SR(d))?a.wm!=sG||(new Fl(c.A.top,c.A[cd],c.A[Mc],c.A[G]))[Rc](d)?!0:!1:!0}; +W.rqa=function(a,b){var c=this.N;if(a.wm!=sG)return!0;var d=b.Aa;if(d.Gb)return!0;var e=SR(d);if(!e)return!0;var d=d.ba[yc]/2,f=new Fl(e.top,e[cd]+d,e[Mc],e[G]-d),g;for(g in c.Kd){var k=ha(g);if(this.gf[k].wm==sG&&!(1>(c.Kd[k][id]?c.Kd[k][id][J]:0))){var l=SR(c.Kd[k][id][0].Aa),n=SR(Oi(c.Kd[k][id]).Aa);if(l||n){if(l&&Hl(f,l)||n&&Hl(f,n))return!1;l?n?(k=h.min(l[G],n[G]),l=h.max(l[cd],n[cd])):(k=l[G],l=l[cd]):(k=n[G],l=n[cd]);if(h.abs(e[G]-k)b[r]?(c=b[G],n=AJ):(c=n,n=iE),V={$U:!1,label:{text:V,ba:k,I:[{x:0,y:0,length:Ha[r],text:V}],Kc:n,Jc:sF,anchor:new RR(c, +M),Gb:0}},a.tt&&(V[Wc].sb=ioa),M=V);c=[];for(n=0;nJb[r]-mh)if(Qc[A]ed[yc]/3)Oj=sc,hj=[Ve],xf=h[t](Jb[Dz]().y),$f.Jc=iE,$f.hC=!0;else{Jb=null;break t}$f.I=[];if(hj[J])for(ed=sc=0,rk=hj[J];edVa[r]?(Ge.x=B,Ha.Kc=iE):(Ge.x=N[G],Ha.Kc=AJ);break;case Rh:Ge.x=N[G]+N[r]+2,Ha.Kc=AJ,Ha.Jc=iE,Ge.y=N[Dz]().y}}else Ge.x=R,Ha.Kc=iE,Ha.Jc=sF;if(Jb&&(e||!e&&!Jb.hC)){c[C](Jb);var ag=!0}else{switch(f){case Tg:Ha.Kc=iE;Ha.Jc=sF;break;case Rh:Ha.Kc=AJ,Ha.Jc=iE}cx(Ha,V[id]);Ha.ba=k;Ha.Kq=l;Ex(Ha,Ge);Ha.hC=!1;Ha.I=[{x:0,y:0,length:Va[r],text:V[id]}];Ha.Gb=0;Va=V.e8;a.tt&&null!=Va&&(Ha.de=TV(a,Va,V.rowIndex));c[C](Ha); +S-=k[yc]}}n=ag?0:ma;a=Rh;s&&f===Rh&&(n=0,a=Tg,B=b[G]+b[r],D=h[t](b.top+b[A]/2));return{G5:{x:B,y:D,length:n,orientation:a,color:p},labels:c,bundle:M?M:null}} +function LMa(a,b,c,d,e){var f=b.x,g=b.y,k=d[yc];b=[];for(var l=0;la.N.A[Mc]&&(k=a.N.A[Mc],g=k-l)}else g=a.N.A.top,k=a.N.A[Mc];for(var s=h[E]((g+k)/2),u=f+2,v=[],l=0;l=b.z8||c.nr>=f[cz][J]&&f[H]!=Qh)return null;f=h.min(g.Fe(d),g.Fe(e));d=h.max(g.Fe(d),g.Fe(e));g=(e=a.N.kb===jG)?xMa(g.lw,In(a[Eq],kG))?0:1:h.min(1,.2*(d-f));0===g||h[t](f+g)h[t](f)?(f=h[t](f+g),d=h[t](d)):f+=g;var k=Mn(a[Eq],nta,.3),g=OMa(a,c);c=(c.oia?k:1)*b.aP/2;b=(e?h[yb]:h[t])(g-c);c=h[t](g+c);f=iW(a,b,f);a=iW(a,c,d);return RLa(f.x,f.y,a.x,a.y)} +W.Bta=function(a,b){function c(a){return null!=a?a:e}var d=this.jf[a.qe],e=wT(d.ea,d.Eb.ta),d=fW(this,a.qe,b.ol,b.Mw),f=fW(this,a.qe,b.u6,c(b.v6)),g=fW(this,a.qe,b.w6,c(b.x6)),k=fW(this,a.qe,b.y6,c(b.z6)),l=fW(this,a.qe,b.A6,c(b.B6)),n=gW(this,a,b);return{x:d.x,y:d.y,DV:f.x,EV:f.y,FV:g.x,GV:g.y,tM:k.x,uM:k.y,vM:l.x,wM:l.y,fr:n}}; +function gW(a,b,c){if(!c.VF)return[];var d=a.ld;b=a.jf[b.qe];var e=a.yO;if(c.yw>=e.z8||c.nr>=d[cz][J]&&d[H]!=Qh)return[];for(var f=OMa(a,c),g=[],k=0,l;l=c.VF[k];k++){var n=b.Fe(l.Cka),p=b.Fe(l.Dka),s=(d[H]==Qh?d[cz]&&1d&&(f=h[t](f));a.yO={z8:e,aP:f,Gla:b.kb===jG?0:((f+1)*e-1)/2}}} +function PMa(a,b){if(aj(b))return 0;if(a[H]==Qh){for(var c=a.fF,d=null,e=0;ed)break;d={ZQ:d};a[fq](kwa+b,d);break;case PG:d={Goa:ha(d[1])};a[fq](pwa+b,d);break;case oya:d=ha(d[1]);d={ZQ:d};a[fq](iya+b,d);break;default:a.Xda(b,c)}}up(W,function(a,b){this.Mn[fq]({type:a,data:b})});function mW(a,b,c,d){kW[L](this,a,b,c,d.kb);this.P=d;this.n0=WMa(this)}Y(mW,kW);mW[K].n5=function(a){this.P=a;this.n0=WMa(this)};function WMa(a){var b=a.P;if(b.kb!=Mg&&b.kb!=ZI)return{};a={};for(var b=b.l,c=0;cd?b:c}this.P.di==eE?(c=b[rc](we)[0],c=c!=ds&&c!=WD&&c!=bE&&c!=sI&&c!=wI&&c!=DJ):c=!0;return c?b:fs}; +function XMa(a,b){if(!(new Il(a.P.A[G]+1,a.P.A.top+1,a.P.A[r]-2,a.P.A[A]-2))[Rc](b))return null;switch(a.P.di){case $E:var c=b.x,d=b.y,e=null,f=da,g;for(g in a.n0){var k=a.n0[g],l=k[Sx].x,n=k[Sx].y,p=k[Lz];l-c<=p&&l-c>=-p&&n-d<=p&&n-d>=-p&&(l=(l-c)*(l-c)+(n-d)*(n-d),l<=p*p&&l<=f&&(e=JP([wI,k.uc,k.fj]),f=l))}return e;case eE:t:{c=a.P.Da;for(d=0;df?[c,g]:[g,c],g=[this.n9,this.o9]);c={entries:[]};e.Cm?uW(this,c,e.Cm,e[zb],!0,this.Qr,d,!0,f,g,k):uW(this,c,null,e[zb],!1,this.Qr,d);this.qu(c,a.vk);return c}; +function eNa(a,b,c){var d=b.Mb,e={entries:[]};Z(c,X(function(a){a=d.l[a];var b=a.de;b.Cm?uW(this,e,b.Cm,b[zb],!0,this.Qr,a,!0):uW(this,e,null,b[zb],!1,this.Qr,a)},a));a.qu(e,b.vk);return e} +sW[K].B9=function(a,b){var c=a.Mb,d=c.Da[b].de,e=!1,f={entries:[]};if(d&&d[zb])uW(this,f,null,d[zb],!1,!1);else{var g=0,k=1,l=c.l[J];OJa(c)&&(g=c.l[J]-1,l=k=-1);for(var n=null;g!=l;g+=k){var p=c.l[g],d=vU(c,g,b);if(n!=p.We){var n=p.We,s=c.Da[b].Nt[n];Ai(s)||tW(this,f,s)}p.k[d]&&p.k[d].de&&p.k[d].de[zb]&&(d=p.k[d].de,uW(this,f,d.Cm,d[zb],!0,this.Qr,p,void 0,void 0,void 0,void 0,d.ki&&d.ql),e=!0)}}null!=a.vk&&0=a.x?b:-b),d.y+(d.y<=a.y?-b:b))}function hNa(a,b){var c=DL(a.pie[Sx],QV(((b.$q?45:(b.Ud+b.pd)/2)/180-.5)*h.PI,a.pie.cd,a.pie.dd)),c=new Kk(c.x+b[uy].x,c.y+b[uy].y);c.x=Aj(c.x,0,a[r]);c.y=Aj(c.y,0,a[A]);return c}function iNa(a){var b=a[sA]?a[sA]:new Kk(0,0),c=a.I[0],d=a.ba[yc];return 270==a.Gb?new Kk(b.x+c.x+d,b.y+c.y-c[J]/2):new Kk(b.x+c.x+c[J]/2,b.y+c.y-d)} +function jNa(a,b,c){var d=a.l[b],e=d[H];c=vU(a,b,c);switch(a.kb){case Mg:case jG:switch(e){case BD:case CJ:return d=d.k[c],d=d.V.Rq||d.V,b=wW(a),d=new Kk(d[G]+(d[G]b.x?d[G]+d[r]:d[G],d.topa.A[cd])d.x+=2*(b.x-d.x);if(d.ya.A[Mc])d.y+= +2*(b.y-d.y);return d}return new Kk(0,0)}function kNa(a,b){var c=a.A;b.x=Aj(b.x,c[G],c[cd]);b.y=Aj(b.y,c.top,c[Mc])}function lNa(a,b,c,d){var e=null,f=null,g=Yj(b.ce),k=Yj(b.Kd),l=g.tm,n=k.tm,p=d;b[Vz]&&b[Vz]!==Tg?(n=-n,k[H]===Qh&&(p=b.Da[d][$]),f=k[mc].Ee(p)):(g[H]===Qh&&(p=b.Da[d][$]),e=g[mc].Ee(p));a=a.ds.Ha[yc];c.x=null===e?c.x:e;c.y=null===f?c.y:f;e=c.x-l*a;f=c.y+n*a;return new Kk(e,f)} +function mNa(a,b){var c=DL(a.pie[Sx],QV(((b.$q?45:(b.Ud+b.pd)/2)/180-.5)*h.PI,a.pie.cd-.1,a.pie.dd-.1));return new Kk(c.x+b[uy].x,c.y+b[uy].y)}function nNa(a){var b=a[sA]?a[sA]:new Kk(0,0),c=a.I[0],d=a.ba[yc];return 270==a.Gb?new Kk(b.x+c.x+d/2,b.y+c.y):new Kk(b.x+c.x,b.y+c.y-d/2)} +function oNa(a,b,c){c=vU(a,b,c);var d=a.l[b];b=d[H];c=d.k[c].V;if(b==BD||b==CJ||b==cE){var e=c.Rq||c[kA]||c;c=e[G];b=e[r];var d=c+b,f=e.top,e=e[A],g=f+e,k=wW(a);a=a[Vz]==Tg?g>k.y?new Kk(c+b/2,g-.1):new Kk(c+b/2,f+.1):c=s.rY?s.JH:h[t]((l-s.aq)/s.Ym)+s.gs,v=k+1-c;d.Fa(u,v,(d[I](u,v)||0)+1);v=this.nA.Ra(k)||YC;n[k-c][u][C]({Wa:g,zc:k,label:{title:a,hw:a,Cm:v,content:l[kc](),I:[{title:v,value:l||0}]}})}for(var z=[],k=c;kd?1:0}),d.Kw(k-c,zva,b),Z(b,function(a,b){z[a.zc][a.Wa]=b}); +for(k=c;ka||b}function wMa(a,b,c){for(var d=[],e=0;e=d[kA][r]||0>= +d[kA][A])&&delete c.Ji;break;case SG:case sD:case ZI:case XD:rx(c,!0);d.x=g.V.x;d.y=g.V.y;if(a.iP===xg||a.iP===zh){var n=sn(a.oka||k.cb(),1,!1,a.pka);FNa(b,g,c,n,a.qka)}d.brush=new bn({fill:l,Ce:e,stroke:k.cb(),ua:1});lx(d,EU(g,f)+1.5+d.brush.Nb/2)}}} +function FNa(a,b,c,d,e){c=c.M7||(c.M7={});c.x=b.V.x;c.y=b.V.y;c.brush=d;b=new Kk(a.A[G],c.y);d=new Kk(a.A[cd],c.y);var f=new Kk(c.x,a.A.top);a=new Kk(c.x,a.A[Mc]);c.path=c[Qz]||new pL;if(e===xg||e===Rh)for(f=sL([f,a]),a=0;a=a[J]?Oi(a):SW(a[b-1],a[b],.5)};a.Cr.jd?PNa(a,p,function(a,b,c,d){return b.ez?a[b.si*c+d]:s(a,b.si*c+d)}):TW(a,p,function(a,b){return b.ez?a[b.si]:s(a,b.si)})}} +function MNa(a,b,c){var d=a.Cr.Da,e=a.Tw.Da;if(d&&e)if(0==d[J]||0==e[J])a.Oj.Da=[],TW(a,[],function(){return null});else{var f=function(a){return b(a[$])},g=[],k=[];if(d[J]===e[J])for(var l=0;l=c.top&&b<=c[Mc]:!1);return(!d||(c?a>=c[G]&&a<=c[cd]:!1))&&b} +function SNa(a,b,c,d,e){a[mc]&&a[mc].Ee&&b[mc]&&b[mc].Ee&&(c[mc].Ee=function(c){var d=a[mc].Ee(c);c=b[mc].Ee(c);return VW(d,c,e)});a[fA]&&b[fA]&&Z(c[fA].I,function(c,d){c.x=VW(a[fA].I[d].x,b[fA].I[d].x,e);c.y=VW(a[fA].I[d].y,b[fA].I[d].y,e)});a.Eb&&b.Eb&&(c.Eb.X=VW(a.Eb.X,b.Eb.X,e));a.Ia&&b.Ia&&Z(c.Ia,function(c,g){c.X=VW(a.Ia[g].X,b.Ia[g].X,e);c.R=d(c.X,c.X)});a.Th&&b.Th&&Z(c.Th,function(c,g){c.X=VW(a.Th[g].X,b.Th[g].X,e);c.R=d(c.X,c.X)});a.Jj&&b.Jj&&(c.Jj=QNa(a.Jj,b.Jj,e));null!=a.Te&&null!=b.Te&& +(c.Te=VW(a.Te,b.Te,e));null!=a.ef&&null!=b.ef&&(c.ef=VW(a.ef,b.ef,e));a[id]&&b[id]&&Z(c[id],function(c,g){if(c){var k=a[id][g].Aa,l=b[id][g].Aa,n=c.Aa;n&&n[sA]&&(n[sA].x=VW(k[sA].x,l[sA].x,e),n[sA].y=VW(k[sA].y,l[sA].y,e));c.Aa&&(k=0d)&&(g===f||0c)&&(g===e||0a.wheelDelta){if(d[mz]>=d.dpa)return;Na(d,d[mz]*d.eca)}else{if(d[mz]<=d.z1)return;Na(d,d[mz]/d.eca)}if(c.Ju){var e=(d.Jo+d.kn)/2,f=d.uR*d[mz]/2;d.kn=e-f;d.Jo=e+f}c.Iu&&(c=(d.Ko+d.ln)/2,e=d.tR*d[mz]/2,d.ln=c-e,d.Ko=c+e);this[Kz]()}};var VNa=[{isEnabled:function(a){a=a.S(wF);return null==a||ki(a)&&$i(a,Bta)?!0:!1},constructor:$W},{isEnabled:function(a){a=a.S(wF);return ki(a)&&$i(a,Cta)?!0:!1},constructor:aX},{isEnabled:function(a){a=a.S(wF);return null==a||ki(a)&&$i(a,Qya)?!0:!1},constructor:cX},{isEnabled:function(a){a=a.S(wF);return ki(a)&&$i(a,Cxa),!1},constructor:bX},{isEnabled:function(a){a=a.S(wF);return null==a||ki(a)&&$i(a,Tya)?!0:!1},constructor:dX}];function WNa(a,b,c,d){if(c.S(Nh)===pI)throw m("Cannot use explorer with a pie chart");this.b=c;this.Na=a;this.Xr=null;this.Nj=b;this.P=d;this.Pg=null;this.yo=[];XNa(this)}W=WNa[K];W.Ew=function(){var a=Mn(this.b,aua,4);1>a&&(a=1/a);var b=Mn(this.b,$ta,.25);1c){if(b-a.K5<1E3/this.Lg.OV)return}else c=1,a.H5=!0;c=a.aha.interpolate(a.$ga(c));a.J5=c;a.K5=b;this.Qc.cp(c,{});this.hf[fq](Mqa)}this.P=a.I5};W.Tq=function(){this.Lg&&(wt(this.Lg.timer),this.Lg=null)};W.kra=function(){var a=this.P.A;return{left:a[G],top:a.top,width:a[r],height:a[A]}}; +W.ul=function(a){return null==this.Qc?null:(a=this.Qc.ul(a))?{left:a[G],top:a.top,width:a[cd]-a[G],height:a[Mc]-a.top}:null};W.jp=function(){var a=this.P;return{getChartAreaBoundingBox:X(this.kra,this),getBoundingBox:X(this.ul,this),getXLocation:X(PJa,null,a),getYLocation:X(QJa,null,a),getHAxisValue:X(RJa,null,a),getVAxisValue:X(SJa,null,a),getPointDatum:X(TJa,null,a)}};W.Bz=function(){return this.P}; +W.kk=function(){if(!this.b)throw m("Chart not drawn.");var a=new Pk(this.Q,this.qa),b=Sk(this.ra)[Sb](P),a=TL(b,a),a=new FL(b,a),c=new OL(b),a=this.nM(c,a),c=BW(this.Wf,this.P,this.Na);a.cp(this.P,c);return b[Zb][0].toDataURL(Kva)};function mX(a){gX[L](this,a);this.Nd(Mg,sD,Tg)}Y(mX,gX);function nX(a){gX[L](this,a);this.Nd(Mg,CJ,Tg)}Y(nX,gX);function oX(a){gX[L](this,a);this.Nd(Mg,Q,Tg,Mza)}Y(oX,gX);function pX(a){gX[L](this,a);this.Nd(Mg,SG,Tg)}Y(pX,gX);function qX(a){gX[L](this,a);this.Nd(ZI)}Y(qX,gX);qX[K].Uv=function(a,b){return iX(a,b)};function rX(a){gX[L](this,a);this.Nd(WD)}Y(rX,gX);function sX(a){gX[L](this,a);this.Nd(Mg,BD,Rh)}Y(sX,gX);sX[K].Uv=function(a,b){return iX(a,b)}; +function tX(a){gX[L](this,a);this.Nd(Mg,cE,Tg)}Y(tX,gX);function uX(a){gX[L](this,a);this.Nd(Mg,BD,Tg)}Y(uX,gX);uX[K].Uv=function(a,b){return iX(a,b)};function vX(a){gX[L](this,a);this.Nd(Mg,Q,Tg)}Y(vX,gX);function wX(a){gX[L](this,a);this.Nd(jG,BD,Tg)}Y(wX,gX);function xX(a){Tt[L](this);this.td={};this.L=null;this.wk={$t:!1};this.ZF=this.$F=this.G=this.g=this.Ng=this.P=this.Ij=this.t=null;this.n=a;this.cG=50;this.T5=0;this.cN=1;this.dW=this.eW=this.gM=!1;this.RM=this.UM=this.eV=this.fV=null;this.yf=!1;this.ed=null;this.o={range:null,mN:null,dh:null};this.Kj={Gk:{min:0,max:0},value:{min:0,max:0}};this.kW=null;this.gV=!1;this.au=null}Y(xX,Tt); +var yX={pca:HH,oca:yH,Ry:xg},zX={q5:"rangeSelectorMinHandle",p5:"rangeSelectorMaxHandle",s5:"rangeSelectorMinScreen",r5:"rangeSelectorMaxScreen"},kOa={Oua:Or,qua:Br,vua:Hr,Rua:Ur},lOa={fill:iB,Ce:.5},mOa={chartArea:{top:Xe,height:GB},enableInteractivity:!1,legend:{position:Q},hAxis:{textPosition:sG},vAxis:{textPosition:Q,gridlines:{color:Q}}},nOa={chartArea:{left:Xe,width:GB},enableInteractivity:!1,legend:{position:Q},vAxis:{textPosition:sG},hAxis:{textPosition:Q,gridlines:{color:Q}}},AX={brush:new bn({stroke:QA, +fill:ze}),aI:new Pk(10,16),Yla:3};W=xX[K]; +aq(W,function(a,b,c){this.Zf();this.t=a;this.Ij=nU(a.D(0));this.td={};null==this.$F&&(this.$F=new OP(X(this.Ila,this)));null==this.ZF&&(this.ZF=new OP(X(this.mY,this,!0)));b=new Bn([b||{}]);this.Xq(b);this.ed=this.k$(b);c=c||{};Gu(this.L,Ls,X(this.Hla,this,c));this.gM&&(this.UM=this.t[I](0,0),this.RM=this.t[I](h.max(0,this.t.M()-1),0),b={min:this.UM,max:this.RM},c[hz]&&oOa(this,b,c[hz]),this.ed.domainAxis=this.ed.domainAxis||{},this.ed.domainAxis.viewWindow=b);this.L[br](a,this.ed)}); +W.Xq=function(a){this.cG=Pn(a,eya,50);this.T5=Pn(a,Ywa,0);this.lV=In(a,mua,!1);this.gM=In(a,LBa,!1);this.eW=In(a,Kza,!1);this.dW=In(a,Qra,!1);this.fV=co(a,Aza,new bn(lOa));this.eV=qn[Bc]();this.Zf();var b=null;switch($n(a,rE,kOa,Hr)){case Br:b=new mX(this.n);break;case Hr:b=new vX(this.n);break;case Ur:b=new qX(this.n);break;case Or:b=new pX(this.n);break;default:b=new vX(this.n)}this.L=b;this.yf=$n(a,iI,ST,Tg)==Rh};W.k$=function(a){a=An(Fn(a,asa));a.theme=this.yf?nOa:mOa;return a}; +function pOa(a,b){var c=VR(a.M(),function(b){return a[I](b,0)}),c=Si(c,ji);return Ti(c,b)}W.Hla=function(a){Lu(this.L);this.wk={$t:!0};qOa(this,a);wt(this.g);this.g=this.L.Xa.jb(1);wt(this.G);this.G=new Vv;this.mf()};W.l$=function(a){Lu(this.L);qOa(this,a);BX(this,xg)}; +function qOa(a,b){a.P=a.L.Bz();a.Ng=a.yf?a.P.Kd[0]:a.P.ce[0];var c=a.Kj,d;d={min:h.min(a.Ng.Te,a.Ng.ef),max:h.max(a.Ng.Te,a.Ng.ef)};c.Gk=d;c=a.Kj;d=a.Ng[mc].rk(a.Ng.Te);var e=a.Ng[mc].rk(a.Ng.ef);d={min:h.min(d,e),max:h.max(d,e)};gx(c,d);c=a.T5;if(0>=c)a.cN=1;else{d=0;d=a.Kj.Gk.min;var e=a.Ng[mc].rk(d),f=null;mi(e)?(f=new Date,f[Oc](e[ec]()+c)):f=e+c;d=h[yb](h.abs(a.Ng[mc].Ee(f)-d));c=h.max(d,1);a.cN=cd)return{direction:-1*c,t$:d/.1};a=(a.Kj.Gk.max-a.o[hz].Lh)/b;return.1>a?{direction:1*c,t$:a/.1}:null}function DX(a){if(a.gM){var b=!1;a.o.dh==xg&&xOa(a)&&(b=!0);b&&!a.au?(a.au=new Vt(a.cG),a.G.m(a.au,Vs,X(a.tma,a)),a.au[y]()):!b&&a.au&&(wt(a.au),a.au=null)}} +W.tma=function(){if(this.au){var a=xOa(this),b=this.cG/Cj(1E3,6E4,a.t$),c=this.Ij.ak(this.UM),d=this.Ij.ak(this.RM),e=(d-c)*b,b=this.ed.domainAxis.viewWindow,f=b.max,g=this.Ij.ak(b.min),f=this.Ij.ak(f);0>a[Ox]?(c=h.max(g-e,c),a=f-(g-c)):(a=h.min(f+e,d),c=g+(a-f));g=this.Ij.By(c);a=this.Ij.By(a);b.min=g;b.max=a;Gu(this.L,Ls,X(this.l$,this,null));this.L[br](this.t,this.ed);this.mY(!0)}};W.Uga=function(a,b){a.$t&&null!=this.o.dh&&(this.gV||yOa(this,b),Lw(b[ar][x],SH))}; +W.Tga=function(a,b){a.$t&&null!=this.o.dh&&yOa(this,b)};function yOa(a,b){var c=a.o;c[hz]&&null!=c[hz].Mh&&null!=c[hz].Lh||Uw(c,{Mh:a.Kj.Gk.min,Lh:a.Kj.Gk.max});var d=Zl(b),e,d=(a.yf?d.y:d.x)-c.mN,f=a.o[hz],g=a.Kj.Gk,k;switch(a.o.dh){case xg:e=g.min-f.Mh;k=g.max-f.Lh;break;case HH:e=g.min-f.Mh;k=f.Lh-a.cN-f.Mh;break;case yH:e=f.Mh+a.cN-f.Lh,k=g.max-f.Lh}e=Aj(d,e,k);c.mN+=e;c.dh!=yH&&(c[hz].Mh+=e);c.dh!=HH&&(c[hz].Lh+=e);DX(a);PP(a.$F,a.cG);PP(a.ZF,a.cG)} +W.iM=function(a,b,c){if(a.$t&&Ct(c)){a=Zl(c);var d=this.o;d.mN=this.yf?a.y:a.x;d.dh=b.dh;DX(this);c[eq]()}}; +W.v5=function(a){if(a.$t&&(a=this.o,null!==a.dh)){if(this.eW){var b=this.kW,c=a[hz].Lh,d=$m(b,a[hz].Mh),c=$m(b,c);CX(this,d,c,a.dh)}else if(this.dW){var e=new Pm(a[hz].Mh,a[hz].Lh),d=e.end-e[y],c=this.Kj.Gk,f=b=this.kW,g=X(Sm,null,e),b=Xi(f,g),g=Zi(f,g);if(null===b||null===g)b=$m(f,e[y]),f=$m(f,e.end),g=b=f=h.abs(e[y]-b)<=h.abs(e.end-f)?b:f;e=e.end-e[y];b=Jj(b,g)-e/2;e=new Pm(b,b+e);Ka(e,h.max(e[y],c.min));e.end=e[y]+d;e.end=h.min(e.end,c.max);Ka(e,e.end-d);CX(this,e[y],e.end,a.dh)}else this.gM&& +a.dh!=xg&&(d=this.ed.domainAxis.viewWindow,c=this.mQ(),oOa(this,d,c),Gu(this.L,Ls,X(this.l$,this,{range:c})),this.L[br](this.t,this.ed));this.mY(!1);a.dh=null;DX(this)}}; +function oOa(a,b,c){var d=b.max,e=a.Ij.ak(b.min),d=a.Ij.ak(d),f=d-e;0===f&&(e-=1,d+=1,f=2);var g=c[y];c=c.end;if(null!=g&&null!=c){var k=a.Ij.ak(g),l=a.Ij.ak(c);c=l-k;var g=.1*f,n=.6*f;c>=g&&c<=n||(k=(k+l)/2,f/=(cb.end&&(Ka(a,a[y]-(a.end-b.end)),a.end=b.end);a[y]M?(S=sF,M=0):90<=M&&260>M?(S=AJ,M=d,d=this.Q):(R=h.min(d,this.Q-d),M=d-R,d+=R,e+=h[E](N/4)),a.Ii(n,M,e,d,e,S,iE,D,c))}a.sa(B,DYa,c);a.sa(z,EYa,c);this.Tq();b0(this,this.wd);this.k7=b;c0(this);this.tha()};W.dsa=function(a){this.JI=a.x;c0(this)};W.csa=function(){this.Tq()};W.Tq=function(){this.Lg&&(Rt(this.Lg),this.Lg[Wq](!1),wt(this.Lg),this.Lg=null)};function b0(a,b){var c=(b-a.Ga)/(a.ob-a.Ga),c=h.max(c,-.02);return c=h.min(c,1.02)} +function e0(a,b){var c=b0(a,b);return a.oQ*c+Bj((360-a.oQ)/2+90,360)} +function c0(a){if(a.g){var b=a.k7,c=a.g,d=a.Q/2,e=a.qa/2,f=a.oQ*a.JI+Bj((360-a.oQ)/2+90,360),g=h[E](.95*b),k=h[E](.3*b),l=Ej(f,g),g=Fj(f,g),n=Ej(f,k),k=Fj(f,k),f=Bj(f+90,360),p=.07*b,s=Ej(f,p),p=Fj(f,p),f=new pL;f[Hz](d+l,e+g);f.Bp(d+s,e+p,d-n+s/2,e-k+p/2,d-n,e-k);f.Bp(d-n-s/2,e-k-p/2,d-s,e-p,d+l,e+g);l=h[E](.15*b);(g=a.m$)?c.Nc(g):g=a.m$=c.Ba();a.WZ&&(b=e+h[E](.75*b),c.Ii(a.WZ,0,b,a.Q,b,iE,iE,a.nja,g));c.sa(f,FYa,g);c.oe(d-.5,e-.5,l,GYa,g);c[q](a.Tf,g)}};function HYa(a,b,c,d){this.n=a;this.Q=b;this.qa=c;this.yM=d;this.wx=[];this.Vc=[];this.Cw=[];this.vY=[];this.yk=[];this.Ga=0;this.ob=100;this.j$=this.WV=this.IM=this.HM=this.XV=this.LM=this.KM=this.VV=this.EM=this.zM=null;this.xp=!0;this.zY=0}W=HYa[K];W.Qz=2;W.zt=function(a){this.Ga!=a&&(this.Ga=a,this.xp=!0)};W.of=function(){return this.Ga};W.Uq=function(a){this.ob!=a&&(this.ob=a,this.xp=!0)};W.nf=function(){return this.ob};W.h8=function(a){this.j$=a}; +W.setValues=function(a,b,c){this.xp=this.xp||this.Vc[J]!=a[J]||this.yk[J]!=c[J]||!oj(this.yk,c);this.Vc=a;this.vY=b;this.yk=c};W.ZV=function(a){1==a[J]&&(a=[O,a[0],O]);oj(this.Cw,a)||(this.Cw=a,this.xp=!0)};function f0(a,b,c){return h.min(h[t](a.Q/c),h[t](a.qa/b))}aq(W,function(a){if(this.xp)IYa(this,a);else for(a=0;a=k&&(f=g,e++);k>=g&&(f=k,d++)}f=f0(a,d,e);f-=4;k=Sk();k.Nc(a.n);a.wx=[];if(0!=c){var l=k.j(Ss,{style:oYa,cellpadding:2,cellspacing:0,align:iE}),n=k.j(OJ,null);k[q](l,n);for(var g=[],p=0,s=0;sa.l[J])return!1;this.Tf=b;for(var d=a.pie.ei,e=a.l[J]/d[J],f=0;fa.l[n].pd;)v0(this,a.l[n],g,k),n+=1;l&&v0(this,l,g,k);for(l=p-1;l>=n;--l)v0(this,a.l[l],g,k)}a.bp&&(this.zN=c.Ba(),PZa(this,a.bp),c[q](this.Tf,this.zN));return!0}; +function v0(a,b,c,d){if(b.R){var e=a.F.Ba(),f=a.Mb,g=f.pie[Sx],k=b[uy];if(b.Xb){var l=f.pie.Dz,n=b.Xb,p=new pL;p[Hz](k.x+n.kf.x,k.y+n.kf.y);p.da(k.x+n.kf.x,k.y+n.kf.y+l);p.xf(k.x+g.x,k.y+g.y+l,c,d,n.Ud,n.pd,!0);p.da(k.x+n.Hh.x,k.y+n.Hh.y);p.xf(k.x+g.x,k.y+g.y,c,d,n.pd,n.Ud,!1);a.F.sa(p,n.brush,e)}if(b.Ct||b.nw)l=f.pie.Dz,n=new pL,n[Hz](k.x+g.x,k.y+g.y),n.da(k.x+g.x,k.y+g.y+l),b.nw&&(n.da(k.x+b.Hh.x,k.y+b.Hh.y+l),n.da(k.x+b.Hh.x,k.y+b.Hh.y)),b.Ct&&(n.da(k.x+b.kf.x,k.y+b.kf.y+l),n.da(k.x+b.kf.x,k.y+ +b.kf.y)),a.F.sa(n,b.WL,e);n=b.gw?b.gw.brush:b.brush;b.$q?0==b.kF&&0==b.Xz?a.F.pk(g.x,g.y,c,d,n,e):(p=new pL,p[Hz](g.x,g.y-d),p.xf(g.x,g.y,c,d,0,180,!0),p.xf(g.x,g.y,c,d,180,360,!0),p[Hz](g.x,g.y-b.Xz),p.xf(g.x,g.y,b.kF,b.Xz,360,180,!1),p.xf(g.x,g.y,b.kF,b.Xz,180,0,!1),p[bz](),a.F.sa(p,n,e)):(p=new pL,p[Hz](k.x+b.Oz.x,k.y+b.Oz.y),p.da(k.x+b.kf.x,k.y+b.kf.y),p.xf(k.x+g.x,k.y+g.y,c,d,b.Ud,b.pd,!0),p.da(k.x+b.yt.x,k.y+b.yt.y),p.xf(k.x+g.x,k.y+g.y,b.kF,b.Xz,b.pd,b.Ud,!1),a.F.sa(p,n,e));b.Ji&&f.V4&&QZa(a, +b.Ji,e);if(c=b.Ln){c.Xb&&(d=new pL,d[Hz](c.Xb.kf.x,c.Xb.kf.y),d.da(c.Xb.kf.x,c.Xb.kf.y+l),d.xf(c.Xb.Oh.x,c.Xb.Oh.y+l,c.Xb.cd,c.Xb.dd,c.Xb.Ud,c.Xb.pd,!0),d.da(c.Xb.Hh.x,c.Xb.Hh.y),d.xf(c.Xb.Oh.x,c.Xb.Oh.y,c.Xb.cd,c.Xb.dd,c.Xb.pd,c.Xb.Ud,!1),a.F.sa(d,c.Xb.brush,e));if(c.Ct||c.nw)d=new pL,d[Hz](c.oA.x,c.oA.y),d.da(c.eM.x,c.eM.y),d.da(c.eM.x,c.eM.y+l),d.da(c.oA.x,c.oA.y+l),d.da(c.oA.x,c.oA.y),a.F.sa(d,c.WL,e);QZa(a,c,e)}b.tV&&a.F.Sd(b[id],b.uV.x+k.x,b.uV.y+k.y,b.fM[r],AJ,AJ,b.ba,e);k=JP([m0,b[pc]]);e= +e.a();a.De(a.Tf,k,e);b.sb&&(e=JP([Xs,b[pc]]),a.HF(b.sb,e))}}function QZa(a,b,c){if(b.$q)a.F.pk(b.Oh.x,b.Oh.y,b.cd,b.dd,b.brush,c);else{var d=new pL;d[Hz](b.kf.x,b.kf.y);d.xf(b.Oh.x,b.Oh.y,b.cd,b.dd,b.Ud,b.pd,!0);a.F.sa(d,b.brush,c)}} +function PZa(a,b){for(var c=X(a.Dt,a),d=X(a[dy],a),e=a.F,f=a.zN,g=0;gc)return{};var d={};d[c]={d6:4,Lc:new bn({stroke:s0,ua:2,Xg:.7})};return d};function x0(a,b,c,d,e){this.ub=b.S(HE,WT);this.G8=Mn(b,wZa,0);this.Wja=0>Mn(b,Dg,1);YU[L](this,a,b,c,d,e)}Y(x0,YU);La(x0[K],function(){this.N.di=fJ;this.N.jd=In(this[Eq],Tva);this.N.Pc&=!this.N.jd;this.N.jd&&(this.N.Dh=this.N.Dh||{},this.N.Dh.pie=this.N.Dh.pie||{},this.N.Dh.pie.k5=this[Eq].S(EZa,!0),this.N.Dh.pie.rV=this[Eq].S(FZa,.6));for(var a=0;athis.Ub[I](a,1))throw m("Negative values are invalid for a pie chart.");x0.e[Kc][L](this)});x0[K].y8=function(){return Os}; +x0[K].x8=function(){return null}; +x0[K].w8=function(){var a=this.N;if(this.Ub.D(0)!=Eh)throw m("Pie chart should have a first column of type string");var b;b=this.N;var c=b.A,d=this.Cf[fz](),e=null,f=null,g=h[E](1.618*b.pm),e=h[E](c[r]*(1-1/1.618)-g);d==ah?(f=new Fl(c.top,c[G]+e,c[Mc],c[G]),e=new Fl(c.top,c[cd],c[Mc],f[cd]+g)):d==Os?(f=new Fl(c.top,c[cd],c[Mc],c[cd]-e),e=new Fl(c.top,f[G]-g,c[Mc],c[G])):d==RD?(e=new Fl(c.top,c[cd],c.top+1/1.618*(c[Mc]-c.top-g),c[G]),f=new Fl(e[Mc]+g,c[cd],c[Mc],c[G])):e=new Fl(c.top,c[cd],c[Mc],c[G]); +var c=0,d=h.min(e[cd]-e[G],e[Mc]-e.top),k=g=h[t](d/2),d=h[E]((e[cd]+e[G])/2),e=h[E]((e[Mc]+e.top)/2);b.Pc&&(k*=.8,c=g/5,e-=c/2);if(b.jd){var l={cd:g*b.Dh.pie.rV,dd:k*b.Dh.pie.rV},g={cd:g,dd:k};b={pie:{center:new CL(d,e),cd:g.cd,dd:g.dd,Dz:c,ei:b.Dh.pie.k5?[l,g]:[g,l]},Ca:f}}else b={pie:{center:new CL(d,e),cd:g,dd:k,Dz:c,ei:[{cd:g,dd:k}]},Ca:f};VZa(this,b);f=this.Cf[fz]();b.Ca?this.Cf.ip(b.Ca):f==PD?this.Cf.ip(WZa(this)):f==HG&&XZa(this,a.A,b,this.Cf.Ha)}; +function YZa(a,b,c){var d=a.N,e={},f=Wn(a[Eq],p0,O);a=b[F];var g=b.wb;b=b.ij;var k;d.Pc?(d=a,k=g,f=b):k=d=f;e.normal=new bn({stroke:d,ua:1,fill:a,Ce:null!=c?c:1});e.wb=new bn({stroke:k,ua:1,fill:g,Ce:null!=c?c:1});e.ij=new bn({stroke:f,ua:1,fill:b,Ce:null!=c?c:1});return e}function WZa(a){var b=a.N,c=b[A]-b.A[Mc];a=a.Cf.Ha[yc];var d=[];d[C]({min:2,Wb:[da]});var e=d[J];d[C]({min:a+2,Wb:[da]});c=WR(d,c);return c[J]>e?(c=b.A[Mc]+c[e],new Fl(c-a,b.A[cd],c,b.A[G])):null} +function VZa(a,b){var c=a.N,d=a.Ub,e=b.pie[Sx],f=b.pie.Dz,g=d.M(),k=PU(Wn(a[Eq],zZa,O)),l=YZa(a,k,1),n=fo(a[Eq],xZa,{ab:c.lk,fontSize:c.pm}),p=$n(a[Eq],o0,MIa,c.jd?Q:oI),s=$n(a[Eq],sZa,NIa,xg),u=Rn(a[Eq],uZa,1/720),v=In(a[Eq],DZa),z=Tn(a[Eq],yZa,bpa),B=Rn(a[Eq],q0,0);a[Eq][BZa]=2;c.l=[];c.Kn=[];var D,N,M;c.jd?(D=a[Eq].S(GZa,.01),D=c.Dh.pie.rV*(1+D),D=c.Dh.pie.k5?[0,D]:[D,0],N=[!1,!0],M=[a[Eq].S(fF,.5),a[Eq].S(eF,1)]):(D=[0],N=[!0],M=[1]);c.pie={center:e,Dz:f,cd:b.pie.cd,dd:b.pie.dd,ei:[]};for(var f= +X(function(a,b){var d=c.l[a];if(1==b)y0(d,s,d);else{var e=c.l[a-g];y0(d,s,d,e);y0(e,s,d,e)}},a),R=X(function(a){var b=c.pie.ei[a-1].YM,d=c.pie.ei[0].YM;1==a&&b?y0(b,s,b):1=u;Xg?wf+=xf:ed+=xf;var gr=tZa+Ha,zp=a[Eq].S(gr+NZa,a.ub[mh%a.ub[J]]),zp=PU(zp),iy=YZa(a,zp,M[Va]),dC=Mn(a[Eq],gr+Sma,0),hr=Rn(a[Eq],gr+LZa,B)+ne,Yg=fo(a[Eq],gr+KZa,n),to=In(a[Eq],[gr+MZa,rF],!0),xf=ZZa(a,Ha,mh,Oj,ag,xf,Pq,hj,Xg,e,Qc,Ge,hr, +dC,p,Yg,zp,iy,to);c.l[C](xf);Xg=In(a[Eq],gr+JZa,sc&&(Xg||v));S($f,hj,zp[F],Ha,Xg);Va==Ja-1&&f(Ha,Ja);Ha+=1}0ma?M=null:(ma=h[zd](ma),M=[M-ma,M+ma]);if(null===M||0>M[1]){z=null;break i}k=D(k,M[1])}z=k}if(.4>z)a=null;else{l=l[Bc]();l[mz](-z);a=OLa(a,g,g);i:{a=QLa(l,a);g=Bj(f-c,2*h.PI);z=0;k=g;for(D=0;D=g||0==N){a=!1;break i}k=h.min(N,k);z=h.max(N,z)}a=z-k=S.Ud&&90<=S.pd&&(s={},90>S.Ud?(s.Ud=90,s.kf=new CL(n.x+p,n.y)):(s.Ud=S.Ud,s.kf=S.kf),270e;if(S.Ct||S.nw)S.WL=S.pe.wb;return S}function y0(a,b,c,d){c=z0(c,b);d&&(c+=re+z0(d,b));a.de={Cm:a[fA],content:c}} +function XZa(a,b,c,d){var e=a.N,f=e.pie.cd,g=e.pie.dd,k=c.pie[Sx],l=$n(a[Eq],AZa,NIa,oI),n=h.PI*(3*(f+g)-h[zd]((3*f+g)*(f+3*g))),p=[];c=[];for(var s=0;sz?S=h.min(S,180):R=h.max(R,180)):S=R=N;var V=function(a){return DL(k,QV(a,B,D))},M=function(a){return V(h.asin(Aj((a- +k.y)/D,-1,1)))},ma=function(a){return V(h.PI-h.asin(Aj((a-k.y)/D,-1,1)))},u={d9:V(Dj(N-90)).y,yN:new Pm(V(Dj(R-90)).y,V(Dj(S-90)).y),aA:u[id],bA:z0(v,l),c9:v[od],index:v[pc]};180>z?(u.N6=M,p[C](u)):(u.N6=ma,c[C](u))}}f=b[r]/2-f-d[yc];e=RZa(new Fl(b.top,b[cd],b[Mc],b[cd]-f),a.$c,2,d,p);b=RZa(new Fl(b.top,b[G]+f,b[Mc],b[G]),a.$c,1,d,c);d=[];ij(d,e,b);a.N.bp=d};function A0(a,b,c){kW[L](this,a,b,c,pI)}Y(A0,kW);A0[K].lt=function(a){return this.F.Uu(a[ar])};A0[K].Xda=function(a,b){var c=b[rc](we);switch(c[0]){case m0:c=ha(c[1]);if(0>c)break;this[fq](Vya+a,{uc:c,fj:null})}};function B0(a,b,c,d,e,f,g){AW[L](this,a,b,c,d,e,g);var k=In(a,rF,!0);this.bla=VR(f,function(b){return In(a,tZa+b+MZa,k)});this.cla=In(a,vZa,!0)}Y(B0,AW);B0[K].Bs=function(a,b,c){this.s4(a,b,c)};B0[K].l5=function(a,b){return a[Mz](b,!0)};function C0(a,b){a.l=a.l||{};var c=a.l;c[b]=c[b]||{};return c[b]} +B0[K].s4=function(a,b,c){var d={Mb:a,vk:this.se.getEntries(),Gt:c,Ak:b.Uh},e=b.Uh.Sa.Xw;null!=e&&Xw(b.Uh.Sa,this.se.oh(e)[oz]);for(var f=this.Tn.qV,e=f==zh||f==xg,g=f==Kg||f==xg,k=this.se&&0= size; unit = units.pop()) { + num /= size; + } + return [num, unit]; +} + +// Following the IEC naming convention +function humanizeIEC(num) { + var ret = humanize(num, 1024, ["TiB", "GiB", "MiB", "KiB", "Bytes"]); + return ret[0].toFixed(2) + " " + ret[1]; +} + +// Following the Metric naming convention +function humanizeMetric(num) { + var ret = humanize(num, 1000, ["TB", "GB", "MB", "KB", "Bytes"]); + return ret[0].toFixed(2) + " " + ret[1]; +} + +// Draw a line chart. +function drawLineChart(seriesTitles, data, elementId, unit) { + var min = Infinity; + var max = -Infinity; + for (var i = 0; i < data.length; i++) { + // Convert the first column to a Date. + if (data[i] != null) { + data[i][0] = new Date(data[i][0]); + } + + // Find min, max. + for (var j = 1; j < data[i].length; j++) { + var val = data[i][j]; + if (val < min) { + min = val; + } + if (val > max) { + max = val; + } + } + } + + // We don't want to show any values less than 0 so cap the min value at that. + // At the same time, show 10% of the graph below the min value if we can. + var minWindow = min - (max - min) / 10; + if (minWindow < 0) { + minWindow = 0; + } + + // Add the definition of each column and the necessary data. + var dataTable = new google.visualization.DataTable(); + dataTable.addColumn('datetime', seriesTitles[0]); + for (var i = 1; i < seriesTitles.length; i++) { + dataTable.addColumn('number', seriesTitles[i]); + } + dataTable.addRows(data); + + // Create and draw the visualization. + if (!(elementId in window.charts)) { + window.charts[elementId] = new google.visualization.LineChart(document.getElementById(elementId)); + } + + // TODO(vmarmol): Look into changing the view window to get a smoother animation. + var opts = { + curveType: 'function', + height: 300, + legend:{position:"none"}, + focusTarget: "category", + vAxis: { + title: unit, + viewWindow: { + min: minWindow, + }, + }, + legend: { + position: 'bottom', + }, + }; + // If the whole data series has the same value, try to center it in the chart. + if ( min == max) { + opts.vAxis.viewWindow.max = 1.1 * max + opts.vAxis.viewWindow.min = 0.9 * max + } + + window.charts[elementId].draw(dataTable, opts); +} + +// Gets the length of the interval in nanoseconds. +function getInterval(current, previous) { + var cur = new Date(current); + var prev = new Date(previous); + + // ms -> ns. + return (cur.getTime() - prev.getTime()) * 1000000; +} + +// Checks if the specified stats include the specified resource. +function hasResource(stats, resource) { + return stats.stats.length > 0 && stats.stats[0][resource]; +} + +// Draw a set of gauges. Data is comprised of an array of arrays with two elements: +// a string label and a numeric value for the gauge. +function drawGauges(elementId, gauges) { + gauges.unshift(['Label', 'Value']); + + // Create and populate the data table. + var data = google.visualization.arrayToDataTable(gauges); + + // Create and draw the visualization. + var options = { + height: 100, + redFrom: 90, redTo: 100, + yellowFrom:75, yellowTo: 90, + minorTicks: 5, + animation: { + duration: 900, + easing: 'linear' + } + }; + var chart = new google.visualization.Gauge(document.getElementById(elementId)); + chart.draw(data, options); +} + +// Get the machine info. +function getMachineInfo(callback) { + $.getJSON("/api/v1.0/machine", function(data) { + callback(data); + }); +} + +// Get the container stats for the specified container. +function getStats(containerName, callback) { + // Request 60s of container history and no samples. + var request = JSON.stringify({ + // Update main.statsRequestedByUI while updating "num_stats" here. + "num_stats": 60, + "num_samples": 0 + }); + $.post("/api/v1.0/containers" + containerName, request, function(data) { + callback(data); + }, "json"); +} + +// Draw the graph for CPU usage. +function drawCpuTotalUsage(elementId, machineInfo, stats) { + if (stats.spec.has_cpu && !hasResource(stats, "cpu")) { + return; + } + + var titles = ["Time", "Total"]; + var data = []; + for (var i = 1; i < stats.stats.length; i++) { + var cur = stats.stats[i]; + var prev = stats.stats[i - 1]; + var intervalInNs = getInterval(cur.timestamp, prev.timestamp); + + var elements = []; + elements.push(cur.timestamp); + elements.push((cur.cpu.usage.total - prev.cpu.usage.total) / intervalInNs); + data.push(elements); + } + drawLineChart(titles, data, elementId, "Cores"); +} + +// Draw the graph for CPU load. +function drawCpuLoad(elementId, machineInfo, stats) { + + var titles = ["Time", "Average"]; + var data = []; + for (var i = 1; i < stats.stats.length; i++) { + var cur = stats.stats[i]; + + var elements = []; + elements.push(cur.timestamp); + elements.push(cur.cpu.load_average/1000); + data.push(elements); + } + drawLineChart(titles, data, elementId, "Runnable threads"); +} + + +// Draw the graph for per-core CPU usage. +function drawCpuPerCoreUsage(elementId, machineInfo, stats) { + if (stats.spec.has_cpu && !hasResource(stats, "cpu")) { + return; + } + + // Add a title for each core. + var titles = ["Time"]; + for (var i = 0; i < machineInfo.num_cores; i++) { + titles.push("Core " + i); + } + var data = []; + for (var i = 1; i < stats.stats.length; i++) { + var cur = stats.stats[i]; + var prev = stats.stats[i - 1]; + var intervalInNs = getInterval(cur.timestamp, prev.timestamp); + + var elements = []; + elements.push(cur.timestamp); + for (var j = 0; j < machineInfo.num_cores; j++) { + elements.push((cur.cpu.usage.per_cpu_usage[j] - prev.cpu.usage.per_cpu_usage[j]) / intervalInNs); + } + data.push(elements); + } + drawLineChart(titles, data, elementId, "Cores"); +} + +// Draw the graph for CPU usage breakdown. +function drawCpuUsageBreakdown(elementId, machineInfo, containerInfo) { + if (containerInfo.spec.has_cpu && !hasResource(containerInfo, "cpu")) { + return; + } + + var titles = ["Time", "User", "Kernel"]; + var data = []; + for (var i = 1; i < containerInfo.stats.length; i++) { + var cur = containerInfo.stats[i]; + var prev = containerInfo.stats[i - 1]; + var intervalInNs = getInterval(cur.timestamp, prev.timestamp); + + var elements = []; + elements.push(cur.timestamp); + elements.push((cur.cpu.usage.user - prev.cpu.usage.user) / intervalInNs); + elements.push((cur.cpu.usage.system - prev.cpu.usage.system) / intervalInNs); + data.push(elements); + } + drawLineChart(titles, data, elementId, "Cores"); +} + +// Draw the gauges for overall resource usage. +function drawOverallUsage(elementId, machineInfo, containerInfo) { + var cur = containerInfo.stats[containerInfo.stats.length - 1]; + var gauges = []; + + var cpuUsage = 0; + if (containerInfo.spec.has_cpu && containerInfo.stats.length >= 2) { + var prev = containerInfo.stats[containerInfo.stats.length - 2]; + var rawUsage = cur.cpu.usage.total - prev.cpu.usage.total; + var intervalInNs = getInterval(cur.timestamp, prev.timestamp); + + // Convert to millicores and take the percentage + cpuUsage = Math.round(((rawUsage / intervalInNs) / machineInfo.num_cores) * 100); + if (cpuUsage > 100) { + cpuUsage = 100; + } + gauges.push(['CPU', cpuUsage]); + } + + var memoryUsage = 0; + if (containerInfo.spec.has_memory) { + // Saturate to the machine size. + var limit = containerInfo.spec.memory.limit; + if (limit > machineInfo.memory_capacity) { + limit = machineInfo.memory_capacity; + } + + memoryUsage = Math.round((cur.memory.usage / limit) * 100); + gauges.push(['Memory', memoryUsage]); + } + + var numGauges = gauges.length; + if (cur.filesystem) { + for (var i = 0; i < cur.filesystem.length; i++) { + var data = cur.filesystem[i]; + var totalUsage = Math.floor((data.usage * 100.0) / data.capacity); + var els = window.cadvisor.fsUsage.elements[data.device]; + + // Update the gauges in the right order. + gauges[numGauges + els.index] = ['FS #' + (els.index + 1), totalUsage]; + } + + // Limit the number of filesystem gauges displayed to 5. + // 'Filesystem details' section still shows information for all filesystems. + var max_gauges = numGauges + 5; + if (gauges.length > max_gauges) { + gauges = gauges.slice(0, max_gauges); + } + } + + drawGauges(elementId, gauges); +} + +var oneMegabyte = 1024 * 1024; +var oneGigabyte = 1024 * oneMegabyte; + +function drawMemoryUsage(elementId, machineInfo, containerInfo) { + if (containerInfo.spec.has_memory && !hasResource(containerInfo, "memory")) { + return; + } + + var titles = ["Time", "Total", "Hot"]; + var data = []; + for (var i = 0; i < containerInfo.stats.length; i++) { + var cur = containerInfo.stats[i]; + + var elements = []; + elements.push(cur.timestamp); + elements.push(cur.memory.usage / oneMegabyte); + elements.push(cur.memory.working_set / oneMegabyte); + data.push(elements); + } + + // Get the memory limit, saturate to the machine size. + var memory_limit = machineInfo.memory_capacity; + if (containerInfo.spec.memory.limit && (containerInfo.spec.memory.limit < memory_limit)) { + memory_limit = containerInfo.spec.memory.limit; + } + + // Updating the progress bar. + var cur = containerInfo.stats[containerInfo.stats.length-1]; + var hotMemory = Math.floor((cur.memory.working_set * 100.0) / memory_limit); + var totalMemory = Math.floor((cur.memory.usage * 100.0) / memory_limit); + var coldMemory = totalMemory - hotMemory; + $("#progress-hot-memory").width(hotMemory + "%"); + $("#progress-cold-memory").width(coldMemory + "%"); + $("#memory-text").text(humanizeIEC(cur.memory.usage) + " / " + humanizeIEC(memory_limit) + " ("+ totalMemory +"%)"); + + drawLineChart(titles, data, elementId, "Megabytes"); +} + +// Draw the graph for network tx/rx bytes. +function drawNetworkBytes(elementId, machineInfo, stats) { + if (stats.spec.has_network && !hasResource(stats, "network")) { + return; + } + + var titles = ["Time", "Tx bytes", "Rx bytes"]; + var data = []; + for (var i = 1; i < stats.stats.length; i++) { + var cur = stats.stats[i]; + var prev = stats.stats[i - 1]; + var intervalInSec = getInterval(cur.timestamp, prev.timestamp) / 1000000000; + + var elements = []; + elements.push(cur.timestamp); + elements.push((cur.network.tx_bytes - prev.network.tx_bytes) / intervalInSec); + elements.push((cur.network.rx_bytes - prev.network.rx_bytes) / intervalInSec); + data.push(elements); + } + drawLineChart(titles, data, elementId, "Bytes per second"); +} + +// Draw the graph for network errors +function drawNetworkErrors(elementId, machineInfo, stats) { + if (stats.spec.has_network && !hasResource(stats, "network")) { + return; + } + + var titles = ["Time", "Tx", "Rx"]; + var data = []; + for (var i = 1; i < stats.stats.length; i++) { + var cur = stats.stats[i]; + var prev = stats.stats[i - 1]; + var intervalInSec = getInterval(cur.timestamp, prev.timestamp) / 1000000000; + + var elements = []; + elements.push(cur.timestamp); + elements.push((cur.network.tx_errors - prev.network.tx_errors) / intervalInSec); + elements.push((cur.network.rx_errors - prev.network.rx_errors) / intervalInSec); + data.push(elements); + } + drawLineChart(titles, data, elementId, "Errors per second"); +} + +// Update the filesystem usage values. +function drawFileSystemUsage(machineInfo, stats) { + var cur = stats.stats[stats.stats.length - 1]; + if (!cur.filesystem) { + return; + } + + var el = $("
"); + for (var i = 0; i < cur.filesystem.length; i++) { + var data = cur.filesystem[i]; + var totalUsage = Math.floor((data.usage * 100.0) / data.capacity); + + // Update DOM elements. + var els = window.cadvisor.fsUsage.elements[data.device]; + els.progressElement.width(totalUsage + "%"); + els.textElement.text(humanizeMetric(data.usage) + " / " + humanizeMetric(data.capacity)+ " (" + totalUsage + "%)"); + } +} + +// Draw the filesystem usage nodes. +function startFileSystemUsage(elementId, machineInfo, stats) { + window.cadvisor.fsUsage = {}; + + // A map of device name to DOM elements. + window.cadvisor.fsUsage.elements = {}; + + var cur = stats.stats[stats.stats.length - 1]; + var el = $("
"); + if (!cur.filesystem) { + return; + } + for (var i = 0; i < cur.filesystem.length; i++) { + var data = cur.filesystem[i]; + el.append($("
") + .addClass("row col-sm-12") + .append($("

") + .text("FS #" + (i + 1) + ": " + data.device))); + + var progressElement = $("
").addClass("progress-bar progress-bar-danger"); + el.append($("
") + .addClass("col-sm-9") + .append($("
") + .addClass("progress") + .append(progressElement))); + + var textElement = $("
").addClass("col-sm-3"); + el.append(textElement); + + window.cadvisor.fsUsage.elements[data.device] = { + 'progressElement': progressElement, + 'textElement': textElement, + 'index': i, + }; + } + $("#" + elementId).empty().append(el); + + drawFileSystemUsage(machineInfo, stats); +} + +// Expects an array of closures to call. After each execution the JS runtime is given control back before continuing. +// This function returns asynchronously +function stepExecute(steps) { + // No steps, stop. + if (steps.length == 0) { + return; + } + + // Get a step and execute it. + var step = steps.shift(); + step(); + + // Schedule the next step. + setTimeout(function() { + stepExecute(steps); + }, 0); +} + +// Draw all the charts on the page. +function drawCharts(machineInfo, containerInfo) { + var steps = []; + + if (containerInfo.spec.has_cpu || containerInfo.spec.has_memory) { + steps.push(function() { + drawOverallUsage("usage-gauge", machineInfo, containerInfo) + }); + } + + // CPU. + if (containerInfo.spec.has_cpu) { + steps.push(function() { + drawCpuTotalUsage("cpu-total-usage-chart", machineInfo, containerInfo); + }); + // TODO(rjnagal): Re-enable CPU Load after understanding resource usage. + // steps.push(function() { + // drawCpuLoad("cpu-load-chart", machineInfo, containerInfo); + // }); + steps.push(function() { + drawCpuPerCoreUsage("cpu-per-core-usage-chart", machineInfo, containerInfo); + }); + steps.push(function() { + drawCpuUsageBreakdown("cpu-usage-breakdown-chart", machineInfo, containerInfo); + }); + } + + // Memory. + if (containerInfo.spec.has_memory) { + steps.push(function() { + drawMemoryUsage("memory-usage-chart", machineInfo, containerInfo); + }); + } + + // Network. + if (containerInfo.spec.has_network) { + steps.push(function() { + drawNetworkBytes("network-bytes-chart", machineInfo, containerInfo); + }); + steps.push(function() { + drawNetworkErrors("network-errors-chart", machineInfo, containerInfo); + }); + } + + // Filesystem. + if (containerInfo.spec.has_filesystem) { + steps.push(function() { + drawFileSystemUsage(machineInfo, containerInfo); + }); + } + + stepExecute(steps); +} + +// Executed when the page finishes loading. +function startPage(containerName, hasCpu, hasMemory) { + // Don't fetch data if we don't have any resource. + if (!hasCpu && !hasMemory) { + return; + } + + window.charts = {}; + window.cadvisor = {}; + window.cadvisor.firstRun = true; + + // Get machine info, then get the stats every 1s. + getMachineInfo(function(machineInfo) { + setInterval(function() { + getStats(containerName, function(containerInfo){ + if (window.cadvisor.firstRun && containerInfo.spec.has_filesystem) { + window.cadvisor.firstRun = false; + startFileSystemUsage("filesystem-usage", machineInfo, containerInfo); + } + + drawCharts(machineInfo, containerInfo); + }); + }, 1000); + }); +} +` diff --git a/Godeps/_workspace/src/github.com/google/cadvisor/pages/static/google_jsapi_js.go b/Godeps/_workspace/src/github.com/google/cadvisor/pages/static/google_jsapi_js.go new file mode 100644 index 00000000000..9e319b2243c --- /dev/null +++ b/Godeps/_workspace/src/github.com/google/cadvisor/pages/static/google_jsapi_js.go @@ -0,0 +1,57 @@ +// Copyright 2014 Google Inc. 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. + +package static + +const googleJsapiJs = ` +if(!window['googleLT_']){window['googleLT_']=(new Date()).getTime();}if (!window['google']) { +window['google'] = {}; +} +if (!window['google']['loader']) { +window['google']['loader'] = {}; +google.loader.ServiceBase = 'https://www.google.com/uds'; +google.loader.GoogleApisBase = 'https://ajax.googleapis.com/ajax'; +google.loader.ApiKey = 'notsupplied'; +google.loader.KeyVerified = true; +google.loader.LoadFailure = false; +google.loader.Secure = true; +google.loader.GoogleLocale = 'www.google.com'; +google.loader.ClientLocation = null; +google.loader.AdditionalParams = ''; +(function() {var d=encodeURIComponent,g=window,h=document;function l(a,b){return a.load=b}var m="replace",n="charAt",q="getTime",r="setTimeout",t="push",u="indexOf",v="ServiceBase",w="name",x="length",y="prototype",z="loader",A="substring",B="join",C="toLowerCase";function D(a){return a in E?E[a]:E[a]=-1!=navigator.userAgent[C]()[u](a)}var E={};function F(a,b){var c=function(){};c.prototype=b[y];a.U=b[y];a.prototype=new c} +function G(a,b,c){var e=Array[y].slice.call(arguments,2)||[];return function(){return a.apply(b,e.concat(Array[y].slice.call(arguments)))}}function H(a){a=Error(a);a.toString=function(){return this.message};return a}function I(a,b){for(var c=a.split(/\./),e=g,f=0;f\x3c/script>"):(D("safari")||D("konqueror"))&&g[r](S,10)),O[t](a)):P(g,"load",a)};K("google.setOnLoadCallback",google.T); +function P(a,b,c){if(a.addEventListener)a.addEventListener(b,c,!1);else if(a.attachEvent)a.attachEvent("on"+b,c);else{var e=a["on"+b];a["on"+b]=null!=e?aa([c,e]):c}}function aa(a){return function(){for(var b=0;b\x3c/script>'):"css"==a&&h.write('')}; +K("google.loader.writeLoadTag",google[z].d);google[z].Q=function(a){N=a};K("google.loader.rfm",google[z].Q);google[z].S=function(a){for(var b in a)"string"==typeof b&&b&&":"==b[n](0)&&!M[b]&&(M[b]=new T(b[A](1),a[b]))};K("google.loader.rpl",google[z].S);google[z].R=function(a){if((a=a.specs)&&a[x])for(var b=0;b)[^>]*|#([\w-]*))$/,k=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,E=/^[\],:{}\s]*$/,S=/(?:^|:|,)(?:\s*\[)+/g,A=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,j=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,D=/^-ms-/,L=/-([\da-z])/gi,H=function(e,t){return t.toUpperCase()},q=function(e){(a.addEventListener||"load"===e.type||"complete"===a.readyState)&&(_(),x.ready())},_=function(){a.addEventListener?(a.removeEventListener("DOMContentLoaded",q,!1),e.removeEventListener("load",q,!1)):(a.detachEvent("onreadystatechange",q),e.detachEvent("onload",q))};x.fn=x.prototype={jquery:f,constructor:x,init:function(e,n,r){var i,o;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof x?n[0]:n,x.merge(this,x.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:a,!0)),k.test(i[1])&&x.isPlainObject(n))for(i in n)x.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(o=a.getElementById(i[2]),o&&o.parentNode){if(o.id!==i[2])return r.find(e);this.length=1,this[0]=o}return this.context=a,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:"",length:0,toArray:function(){return g.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(g.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},l=2),"object"==typeof s||x.isFunction(s)||(s={}),u===l&&(s=this,--l);u>l;l++)if(null!=(o=arguments[l]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(x.isPlainObject(r)||(n=x.isArray(r)))?(n?(n=!1,a=e&&x.isArray(e)?e:[]):a=e&&x.isPlainObject(e)?e:{},s[i]=x.extend(c,a,r)):r!==t&&(s[i]=r));return s},x.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),noConflict:function(t){return e.$===x&&(e.$=u),t&&e.jQuery===x&&(e.jQuery=l),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){if(e===!0?!--x.readyWait:!x.isReady){if(!a.body)return setTimeout(x.ready);x.isReady=!0,e!==!0&&--x.readyWait>0||(n.resolveWith(a,[x]),x.fn.trigger&&x(a).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===x.type(e)},isArray:Array.isArray||function(e){return"array"===x.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?c[y.call(e)]||"object":typeof e},isPlainObject:function(e){var n;if(!e||"object"!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&&!v.call(e,"constructor")&&!v.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(r){return!1}if(x.support.ownLast)for(n in e)return v.call(e,n);for(n in e);return n===t||v.call(e,n)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||a;var r=k.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&&x(i).remove(),x.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=x.trim(n),n&&E.test(n.replace(A,"@").replace(j,"]").replace(S,"")))?Function("return "+n)():(x.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||x.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&x.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(D,"ms-").replace(L,H)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:b&&!b.call("\ufeff\u00a0")?function(e){return null==e?"":b.call(e)}:function(e){return null==e?"":(e+"").replace(C,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?x.merge(n,"string"==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(m)return m.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return d.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),x.isFunction(e)?(r=g.call(arguments,2),i=function(){return e.apply(n||this,r.concat(g.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):t},access:function(e,n,r,i,o,a,s){var l=0,u=e.length,c=null==r;if("object"===x.type(r)){o=!0;for(l in r)x.access(e,n,l,r[l],!0,a,s)}else if(i!==t&&(o=!0,x.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(x(e),n)})),n))for(;u>l;l++)n(e[l],r,s?i:i.call(e[l],l,n(e[l],r)));return o?e:c?n.call(e):u?n(e[0],r):a},now:function(){return(new Date).getTime()},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),x.ready.promise=function(t){if(!n)if(n=x.Deferred(),"complete"===a.readyState)setTimeout(x.ready);else if(a.addEventListener)a.addEventListener("DOMContentLoaded",q,!1),e.addEventListener("load",q,!1);else{a.attachEvent("onreadystatechange",q),e.attachEvent("onload",q);var r=!1;try{r=null==e.frameElement&&a.documentElement}catch(i){}r&&r.doScroll&&function o(){if(!x.isReady){try{r.doScroll("left")}catch(e){return setTimeout(o,50)}_(),x.ready()}}()}return n.promise(t)},x.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){c["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=x(a),function(e,t){var n,r,i,o,a,s,l,u,c,p,f,d,h,g,m,y,v,b="sizzle"+-new Date,w=e.document,T=0,C=0,N=st(),k=st(),E=st(),S=!1,A=function(e,t){return e===t?(S=!0,0):0},j=typeof t,D=1<<31,L={}.hasOwnProperty,H=[],q=H.pop,_=H.push,M=H.push,O=H.slice,F=H.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},B="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",P="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",W=R.replace("w","w#"),$="\\["+P+"*("+R+")"+P+"*(?:([*^$|!~]?=)"+P+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+W+")|)|)"+P+"*\\]",I=":("+R+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+$.replace(3,8)+")*)|.*)\\)|)",z=RegExp("^"+P+"+|((?:^|[^\\\\])(?:\\\\.)*)"+P+"+$","g"),X=RegExp("^"+P+"*,"+P+"*"),U=RegExp("^"+P+"*([>+~]|"+P+")"+P+"*"),V=RegExp(P+"*[+~]"),Y=RegExp("="+P+"*([^\\]'\"]*)"+P+"*\\]","g"),J=RegExp(I),G=RegExp("^"+W+"$"),Q={ID:RegExp("^#("+R+")"),CLASS:RegExp("^\\.("+R+")"),TAG:RegExp("^("+R.replace("w","w*")+")"),ATTR:RegExp("^"+$),PSEUDO:RegExp("^"+I),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+P+"*(even|odd|(([+-]|)(\\d*)n|)"+P+"*(?:([+-]|)"+P+"*(\\d+)|))"+P+"*\\)|)","i"),bool:RegExp("^(?:"+B+")$","i"),needsContext:RegExp("^"+P+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+P+"*((?:-\\d)?\\d*)"+P+"*\\)|)(?=[^-]|$)","i")},K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,et=/^(?:input|select|textarea|button)$/i,tt=/^h\d$/i,nt=/'|\\/g,rt=RegExp("\\\\([\\da-f]{1,6}"+P+"?|("+P+")|.)","ig"),it=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(55296|r>>10,56320|1023&r)};try{M.apply(H=O.call(w.childNodes),w.childNodes),H[w.childNodes.length].nodeType}catch(ot){M={apply:H.length?function(e,t){_.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function at(e,t,n,i){var o,a,s,l,u,c,d,m,y,x;if((t?t.ownerDocument||t:w)!==f&&p(t),t=t||f,n=n||[],!e||"string"!=typeof e)return n;if(1!==(l=t.nodeType)&&9!==l)return[];if(h&&!i){if(o=Z.exec(e))if(s=o[1]){if(9===l){if(a=t.getElementById(s),!a||!a.parentNode)return n;if(a.id===s)return n.push(a),n}else if(t.ownerDocument&&(a=t.ownerDocument.getElementById(s))&&v(t,a)&&a.id===s)return n.push(a),n}else{if(o[2])return M.apply(n,t.getElementsByTagName(e)),n;if((s=o[3])&&r.getElementsByClassName&&t.getElementsByClassName)return M.apply(n,t.getElementsByClassName(s)),n}if(r.qsa&&(!g||!g.test(e))){if(m=d=b,y=t,x=9===l&&e,1===l&&"object"!==t.nodeName.toLowerCase()){c=mt(e),(d=t.getAttribute("id"))?m=d.replace(nt,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",u=c.length;while(u--)c[u]=m+yt(c[u]);y=V.test(e)&&t.parentNode||t,x=c.join(",")}if(x)try{return M.apply(n,y.querySelectorAll(x)),n}catch(T){}finally{d||t.removeAttribute("id")}}}return kt(e.replace(z,"$1"),t,n,i)}function st(){var e=[];function t(n,r){return e.push(n+=" ")>o.cacheLength&&delete t[e.shift()],t[n]=r}return t}function lt(e){return e[b]=!0,e}function ut(e){var t=f.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ct(e,t){var n=e.split("|"),r=e.length;while(r--)o.attrHandle[n[r]]=t}function pt(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function ft(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function dt(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function ht(e){return lt(function(t){return t=+t,lt(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}s=at.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},r=at.support={},p=at.setDocument=function(e){var n=e?e.ownerDocument||e:w,i=n.defaultView;return n!==f&&9===n.nodeType&&n.documentElement?(f=n,d=n.documentElement,h=!s(n),i&&i.attachEvent&&i!==i.top&&i.attachEvent("onbeforeunload",function(){p()}),r.attributes=ut(function(e){return e.className="i",!e.getAttribute("className")}),r.getElementsByTagName=ut(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),r.getElementsByClassName=ut(function(e){return e.innerHTML="
",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),r.getById=ut(function(e){return d.appendChild(e).id=b,!n.getElementsByName||!n.getElementsByName(b).length}),r.getById?(o.find.ID=function(e,t){if(typeof t.getElementById!==j&&h){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){return e.getAttribute("id")===t}}):(delete o.find.ID,o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){var n=typeof e.getAttributeNode!==j&&e.getAttributeNode("id");return n&&n.value===t}}),o.find.TAG=r.getElementsByTagName?function(e,n){return typeof n.getElementsByTagName!==j?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},o.find.CLASS=r.getElementsByClassName&&function(e,n){return typeof n.getElementsByClassName!==j&&h?n.getElementsByClassName(e):t},m=[],g=[],(r.qsa=K.test(n.querySelectorAll))&&(ut(function(e){e.innerHTML="",e.querySelectorAll("[selected]").length||g.push("\\["+P+"*(?:value|"+B+")"),e.querySelectorAll(":checked").length||g.push(":checked")}),ut(function(e){var t=n.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&g.push("[*^$]="+P+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(r.matchesSelector=K.test(y=d.webkitMatchesSelector||d.mozMatchesSelector||d.oMatchesSelector||d.msMatchesSelector))&&ut(function(e){r.disconnectedMatch=y.call(e,"div"),y.call(e,"[s!='']:x"),m.push("!=",I)}),g=g.length&&RegExp(g.join("|")),m=m.length&&RegExp(m.join("|")),v=K.test(d.contains)||d.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},A=d.compareDocumentPosition?function(e,t){if(e===t)return S=!0,0;var i=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t);return i?1&i||!r.sortDetached&&t.compareDocumentPosition(e)===i?e===n||v(w,e)?-1:t===n||v(w,t)?1:c?F.call(c,e)-F.call(c,t):0:4&i?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return S=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:c?F.call(c,e)-F.call(c,t):0;if(o===a)return pt(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?pt(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},n):f},at.matches=function(e,t){return at(e,null,null,t)},at.matchesSelector=function(e,t){if((e.ownerDocument||e)!==f&&p(e),t=t.replace(Y,"='$1']"),!(!r.matchesSelector||!h||m&&m.test(t)||g&&g.test(t)))try{var n=y.call(e,t);if(n||r.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(i){}return at(t,f,null,[e]).length>0},at.contains=function(e,t){return(e.ownerDocument||e)!==f&&p(e),v(e,t)},at.attr=function(e,n){(e.ownerDocument||e)!==f&&p(e);var i=o.attrHandle[n.toLowerCase()],a=i&&L.call(o.attrHandle,n.toLowerCase())?i(e,n,!h):t;return a===t?r.attributes||!h?e.getAttribute(n):(a=e.getAttributeNode(n))&&a.specified?a.value:null:a},at.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},at.uniqueSort=function(e){var t,n=[],i=0,o=0;if(S=!r.detectDuplicates,c=!r.sortStable&&e.slice(0),e.sort(A),S){while(t=e[o++])t===e[o]&&(i=n.push(o));while(i--)e.splice(n[i],1)}return e},a=at.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=a(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=a(t);return n},o=at.selectors={cacheLength:50,createPseudo:lt,match:Q,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(rt,it),e[3]=(e[4]||e[5]||"").replace(rt,it),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||at.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&at.error(e[0]),e},PSEUDO:function(e){var n,r=!e[5]&&e[2];return Q.CHILD.test(e[0])?null:(e[3]&&e[4]!==t?e[2]=e[4]:r&&J.test(r)&&(n=mt(r,!0))&&(n=r.indexOf(")",r.length-n)-r.length)&&(e[0]=e[0].slice(0,n),e[2]=r.slice(0,n)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(rt,it).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=N[e+" "];return t||(t=RegExp("(^|"+P+")"+e+"("+P+"|$)"))&&N(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==j&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=at.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var u,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!l&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[b]||(m[b]={}),u=c[e]||[],d=u[0]===T&&u[1],f=u[0]===T&&u[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[T,d,f];break}}else if(v&&(u=(t[b]||(t[b]={}))[e])&&u[0]===T)f=u[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[b]||(p[b]={}))[e]=[T,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=o.pseudos[e]||o.setFilters[e.toLowerCase()]||at.error("unsupported pseudo: "+e);return r[b]?r(t):r.length>1?(n=[e,e,"",t],o.setFilters.hasOwnProperty(e.toLowerCase())?lt(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=F.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:lt(function(e){var t=[],n=[],r=l(e.replace(z,"$1"));return r[b]?lt(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:lt(function(e){return function(t){return at(e,t).length>0}}),contains:lt(function(e){return function(t){return(t.textContent||t.innerText||a(t)).indexOf(e)>-1}}),lang:lt(function(e){return G.test(e||"")||at.error("unsupported lang: "+e),e=e.replace(rt,it).toLowerCase(),function(t){var n;do if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===d},focus:function(e){return e===f.activeElement&&(!f.hasFocus||f.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!o.pseudos.empty(e)},header:function(e){return tt.test(e.nodeName)},input:function(e){return et.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:ht(function(){return[0]}),last:ht(function(e,t){return[t-1]}),eq:ht(function(e,t,n){return[0>n?n+t:n]}),even:ht(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:ht(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:ht(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:ht(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}},o.pseudos.nth=o.pseudos.eq;for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})o.pseudos[n]=ft(n);for(n in{submit:!0,reset:!0})o.pseudos[n]=dt(n);function gt(){}gt.prototype=o.filters=o.pseudos,o.setFilters=new gt;function mt(e,t){var n,r,i,a,s,l,u,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,l=[],u=o.preFilter;while(s){(!n||(r=X.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),l.push(i=[])),n=!1,(r=U.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(z," ")}),s=s.slice(n.length));for(a in o.filter)!(r=Q[a].exec(s))||u[a]&&!(r=u[a](r))||(n=r.shift(),i.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?at.error(e):k(e,l).slice(0)}function yt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function vt(e,t,n){var r=t.dir,o=n&&"parentNode"===r,a=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||o)return e(t,n,i)}:function(t,n,s){var l,u,c,p=T+" "+a;if(s){while(t=t[r])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[r])if(1===t.nodeType||o)if(c=t[b]||(t[b]={}),(u=c[r])&&u[0]===p){if((l=u[1])===!0||l===i)return l===!0}else if(u=c[r]=[p],u[1]=e(t,n,s)||i,u[1]===!0)return!0}}function bt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function xt(e,t,n,r,i){var o,a=[],s=0,l=e.length,u=null!=t;for(;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),u&&t.push(s));return a}function wt(e,t,n,r,i,o){return r&&!r[b]&&(r=wt(r)),i&&!i[b]&&(i=wt(i,o)),lt(function(o,a,s,l){var u,c,p,f=[],d=[],h=a.length,g=o||Nt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:xt(g,f,e,s,l),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,l),r){u=xt(y,d),r(u,[],s,l),c=u.length;while(c--)(p=u[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){u=[],c=y.length;while(c--)(p=y[c])&&u.push(m[c]=p);i(null,y=[],u,l)}c=y.length;while(c--)(p=y[c])&&(u=i?F.call(o,p):f[c])>-1&&(o[u]=!(a[u]=p))}}else y=xt(y===a?y.splice(h,y.length):y),i?i(null,a,y,l):M.apply(a,y)})}function Tt(e){var t,n,r,i=e.length,a=o.relative[e[0].type],s=a||o.relative[" "],l=a?1:0,c=vt(function(e){return e===t},s,!0),p=vt(function(e){return F.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;i>l;l++)if(n=o.relative[e[l].type])f=[vt(bt(f),n)];else{if(n=o.filter[e[l].type].apply(null,e[l].matches),n[b]){for(r=++l;i>r;r++)if(o.relative[e[r].type])break;return wt(l>1&&bt(f),l>1&&yt(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(z,"$1"),n,r>l&&Tt(e.slice(l,r)),i>r&&Tt(e=e.slice(r)),i>r&&yt(e))}f.push(n)}return bt(f)}function Ct(e,t){var n=0,r=t.length>0,a=e.length>0,s=function(s,l,c,p,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,C=u,N=s||a&&o.find.TAG("*",d&&l.parentNode||l),k=T+=null==C?1:Math.random()||.1;for(w&&(u=l!==f&&l,i=n);null!=(h=N[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,l,c)){p.push(h);break}w&&(T=k,i=++n)}r&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,r&&b!==v){g=0;while(m=t[g++])m(x,y,l,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=q.call(p));y=xt(y)}M.apply(p,y),w&&!s&&y.length>0&&v+t.length>1&&at.uniqueSort(p)}return w&&(T=k,u=C),x};return r?lt(s):s}l=at.compile=function(e,t){var n,r=[],i=[],o=E[e+" "];if(!o){t||(t=mt(e)),n=t.length;while(n--)o=Tt(t[n]),o[b]?r.push(o):i.push(o);o=E(e,Ct(i,r))}return o};function Nt(e,t,n){var r=0,i=t.length;for(;i>r;r++)at(e,t[r],n);return n}function kt(e,t,n,i){var a,s,u,c,p,f=mt(e);if(!i&&1===f.length){if(s=f[0]=f[0].slice(0),s.length>2&&"ID"===(u=s[0]).type&&r.getById&&9===t.nodeType&&h&&o.relative[s[1].type]){if(t=(o.find.ID(u.matches[0].replace(rt,it),t)||[])[0],!t)return n;e=e.slice(s.shift().value.length)}a=Q.needsContext.test(e)?0:s.length;while(a--){if(u=s[a],o.relative[c=u.type])break;if((p=o.find[c])&&(i=p(u.matches[0].replace(rt,it),V.test(s[0].type)&&t.parentNode||t))){if(s.splice(a,1),e=i.length&&yt(s),!e)return M.apply(n,i),n;break}}}return l(e,f)(i,t,!h,n,V.test(e)),n}r.sortStable=b.split("").sort(A).join("")===b,r.detectDuplicates=S,p(),r.sortDetached=ut(function(e){return 1&e.compareDocumentPosition(f.createElement("div"))}),ut(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||ct("type|href|height|width",function(e,n,r){return r?t:e.getAttribute(n,"type"===n.toLowerCase()?1:2)}),r.attributes&&ut(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||ct("value",function(e,n,r){return r||"input"!==e.nodeName.toLowerCase()?t:e.defaultValue}),ut(function(e){return null==e.getAttribute("disabled")})||ct(B,function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&i.specified?i.value:e[n]===!0?n.toLowerCase():null}),x.find=at,x.expr=at.selectors,x.expr[":"]=x.expr.pseudos,x.unique=at.uniqueSort,x.text=at.getText,x.isXMLDoc=at.isXML,x.contains=at.contains}(e);var O={};function F(e){var t=O[e]={};return x.each(e.match(T)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e="string"==typeof e?O[e]||F(e):x.extend({},e);var n,r,i,o,a,s,l=[],u=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=l.length,n=!0;l&&o>a;a++)if(l[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,l&&(u?u.length&&c(u.shift()):r?l=[]:p.disable())},p={add:function(){if(l){var t=l.length;(function i(t){x.each(t,function(t,n){var r=x.type(n);"function"===r?e.unique&&p.has(n)||l.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=l.length:r&&(s=t,c(r))}return this},remove:function(){return l&&x.each(arguments,function(e,t){var r;while((r=x.inArray(t,l,r))>-1)l.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?x.inArray(e,l)>-1:!(!l||!l.length)},empty:function(){return l=[],o=0,this},disable:function(){return l=u=r=t,this},disabled:function(){return!l},lock:function(){return u=t,r||p.disable(),this},locked:function(){return!u},fireWith:function(e,t){return!l||i&&!u||(t=t||[],t=[e,t.slice?t.slice():t],n?u.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},x.extend({Deferred:function(e){var t=[["resolve","done",x.Callbacks("once memory"),"resolved"],["reject","fail",x.Callbacks("once memory"),"rejected"],["notify","progress",x.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var a=o[0],s=x.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=g.call(arguments),r=n.length,i=1!==r||e&&x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?g.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,l,u;if(r>1)for(s=Array(r),l=Array(r),u=Array(r);r>t;t++)n[t]&&x.isFunction(n[t].promise)?n[t].promise().done(a(t,u,n)).fail(o.reject).progress(a(t,l,s)):--i;return i||o.resolveWith(u,n),o.promise()}}),x.support=function(t){var n,r,o,s,l,u,c,p,f,d=a.createElement("div");if(d.setAttribute("className","t"),d.innerHTML="

 
a",n=d.getElementsByTagName("*")||[],r=d.getElementsByTagName("a")[0],!r||!r.style||!n.length)return t;s=a.createElement("select"),u=s.appendChild(a.createElement("option")),o=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t.getSetAttribute="t"!==d.className,t.leadingWhitespace=3===d.firstChild.nodeType,t.tbody=!d.getElementsByTagName("tbody").length,t.htmlSerialize=!!d.getElementsByTagName("link").length,t.style=/top/.test(r.getAttribute("style")),t.hrefNormalized="/a"===r.getAttribute("href"),t.opacity=/^0.5/.test(r.style.opacity),t.cssFloat=!!r.style.cssFloat,t.checkOn=!!o.value,t.optSelected=u.selected,t.enctype=!!a.createElement("form").enctype,t.html5Clone="<:nav>"!==a.createElement("nav").cloneNode(!0).outerHTML,t.inlineBlockNeedsLayout=!1,t.shrinkWrapBlocks=!1,t.pixelPosition=!1,t.deleteExpando=!0,t.noCloneEvent=!0,t.reliableMarginRight=!0,t.boxSizingReliable=!0,o.checked=!0,t.noCloneChecked=o.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!u.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}o=a.createElement("input"),o.setAttribute("value",""),t.input=""===o.getAttribute("value"),o.value="t",o.setAttribute("type","radio"),t.radioValue="t"===o.value,o.setAttribute("checked","t"),o.setAttribute("name","t"),l=a.createDocumentFragment(),l.appendChild(o),t.appendChecked=o.checked,t.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip;for(f in x(t))break;return t.ownLast="0"!==f,x(function(){var n,r,o,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",l=a.getElementsByTagName("body")[0];l&&(n=a.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",l.appendChild(n).appendChild(d),d.innerHTML="
t
",o=d.getElementsByTagName("td"),o[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===o[0].offsetHeight,o[0].style.display="",o[1].style.display="none",t.reliableHiddenOffsets=p&&0===o[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",x.swap(l,null!=l.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===d.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(a.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="
",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(l.style.zoom=1)),l.removeChild(n),n=d=o=r=null)}),n=s=l=u=r=o=null,t +}({});var B=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;function R(e,n,r,i){if(x.acceptData(e)){var o,a,s=x.expando,l=e.nodeType,u=l?x.cache:e,c=l?e[s]:e[s]&&s;if(c&&u[c]&&(i||u[c].data)||r!==t||"string"!=typeof n)return c||(c=l?e[s]=p.pop()||x.guid++:s),u[c]||(u[c]=l?{}:{toJSON:x.noop}),("object"==typeof n||"function"==typeof n)&&(i?u[c]=x.extend(u[c],n):u[c].data=x.extend(u[c].data,n)),a=u[c],i||(a.data||(a.data={}),a=a.data),r!==t&&(a[x.camelCase(n)]=r),"string"==typeof n?(o=a[n],null==o&&(o=a[x.camelCase(n)])):o=a,o}}function W(e,t,n){if(x.acceptData(e)){var r,i,o=e.nodeType,a=o?x.cache:e,s=o?e[x.expando]:x.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){x.isArray(t)?t=t.concat(x.map(t,x.camelCase)):t in r?t=[t]:(t=x.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;while(i--)delete r[t[i]];if(n?!I(r):!x.isEmptyObject(r))return}(n||(delete a[s].data,I(a[s])))&&(o?x.cleanData([e],!0):x.support.deleteExpando||a!=a.window?delete a[s]:a[s]=null)}}}x.extend({cache:{},noData:{applet:!0,embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?x.cache[e[x.expando]]:e[x.expando],!!e&&!I(e)},data:function(e,t,n){return R(e,t,n)},removeData:function(e,t){return W(e,t)},_data:function(e,t,n){return R(e,t,n,!0)},_removeData:function(e,t){return W(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&x.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),x.fn.extend({data:function(e,n){var r,i,o=null,a=0,s=this[0];if(e===t){if(this.length&&(o=x.data(s),1===s.nodeType&&!x._data(s,"parsedAttrs"))){for(r=s.attributes;r.length>a;a++)i=r[a].name,0===i.indexOf("data-")&&(i=x.camelCase(i.slice(5)),$(s,i,o[i]));x._data(s,"parsedAttrs",!0)}return o}return"object"==typeof e?this.each(function(){x.data(this,e)}):arguments.length>1?this.each(function(){x.data(this,e,n)}):s?$(s,e,x.data(s,e)):null},removeData:function(e){return this.each(function(){x.removeData(this,e)})}});function $(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(P,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:B.test(r)?x.parseJSON(r):r}catch(o){}x.data(e,n,r)}else r=t}return r}function I(e){var t;for(t in e)if(("data"!==t||!x.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}x.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=x._data(e,n),r&&(!i||x.isArray(r)?i=x._data(e,n,x.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),a=function(){x.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return x._data(e,n)||x._data(e,n,{empty:x.Callbacks("once memory").add(function(){x._removeData(e,t+"queue"),x._removeData(e,n)})})}}),x.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?x.queue(this[0],e):n===t?this:this.each(function(){var t=x.queue(this,e,n);x._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=x.Deferred(),a=this,s=this.length,l=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=x._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(l));return l(),o.promise(n)}});var z,X,U=/[\t\r\n\f]/g,V=/\r/g,Y=/^(?:input|select|textarea|button|object)$/i,J=/^(?:a|area)$/i,G=/^(?:checked|selected)$/i,Q=x.support.getSetAttribute,K=x.support.input;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return e=x.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,l="string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,l=0===arguments.length||"string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?x.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var t,r=0,o=x(this),a=e.match(T)||[];while(t=a[r++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else(n===i||"boolean"===n)&&(this.className&&x._data(this,"__className__",this.className),this.className=this.className||e===!1?"":x._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(U," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=x.isFunction(e),this.each(function(n){var o;1===this.nodeType&&(o=i?e.call(this,n,x(this).val()):e,null==o?o="":"number"==typeof o?o+="":x.isArray(o)&&(o=x.map(o,function(e){return null==e?"":e+""})),r=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=x.valHooks[o.type]||x.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(V,""):null==n?"":n)}}}),x.extend({valHooks:{option:{get:function(e){var t=x.find.attr(e,"value");return null!=t?t:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,l=0>i?s:o?i:0;for(;s>l;l++)if(n=r[l],!(!n.selected&&l!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&x.nodeName(n.parentNode,"optgroup"))){if(t=x(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n,r,i=e.options,o=x.makeArray(t),a=i.length;while(a--)r=i[a],(r.selected=x.inArray(x(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,n,r){var o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof e.getAttribute===i?x.prop(e,n,r):(1===s&&x.isXMLDoc(e)||(n=n.toLowerCase(),o=x.attrHooks[n]||(x.expr.match.bool.test(n)?X:z)),r===t?o&&"get"in o&&null!==(a=o.get(e,n))?a:(a=x.find.attr(e,n),null==a?t:a):null!==r?o&&"set"in o&&(a=o.set(e,r,n))!==t?a:(e.setAttribute(n,r+""),r):(x.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(T);if(o&&1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(n)?K&&Q||!G.test(n)?e[r]=!1:e[x.camelCase("default-"+n)]=e[r]=!1:x.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&&"radio"===t&&x.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!x.isXMLDoc(e),a&&(n=x.propFix[n]||n,o=x.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var t=x.find.attr(e,"tabindex");return t?parseInt(t,10):Y.test(e.nodeName)||J.test(e.nodeName)&&e.href?0:-1}}}}),X={set:function(e,t,n){return t===!1?x.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&x.propFix[n]||n,n):e[x.camelCase("default-"+n)]=e[n]=!0,n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,n){var r=x.expr.attrHandle[n]||x.find.attr;x.expr.attrHandle[n]=K&&Q||!G.test(n)?function(e,n,i){var o=x.expr.attrHandle[n],a=i?t:(x.expr.attrHandle[n]=t)!=r(e,n,i)?n.toLowerCase():null;return x.expr.attrHandle[n]=o,a}:function(e,n,r){return r?t:e[x.camelCase("default-"+n)]?n.toLowerCase():null}}),K&&Q||(x.attrHooks.value={set:function(e,n,r){return x.nodeName(e,"input")?(e.defaultValue=n,t):z&&z.set(e,n,r)}}),Q||(z={set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},x.expr.attrHandle.id=x.expr.attrHandle.name=x.expr.attrHandle.coords=function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&""!==i.value?i.value:null},x.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&r.specified?r.value:t},set:z.set},x.attrHooks.contenteditable={set:function(e,t,n){z.set(e,""===t?!1:t,n)}},x.each(["width","height"],function(e,n){x.attrHooks[n]={set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}}})),x.support.hrefNormalized||x.each(["href","src"],function(e,t){x.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),x.support.style||(x.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.support.enctype||(x.propFix.enctype="encoding"),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,n){return x.isArray(n)?e.checked=x.inArray(x(e).val(),n)>=0:t}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function it(){return!0}function ot(){return!1}function at(){try{return a.activeElement}catch(e){}}x.event={global:{},add:function(e,n,r,o,a){var s,l,u,c,p,f,d,h,g,m,y,v=x._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=x.guid++),(l=v.events)||(l=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof x===i||e&&x.event.triggered===e.type?t:x.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(T)||[""],u=n.length;while(u--)s=rt.exec(n[u])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),g&&(p=x.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=x.event.special[g]||{},d=x.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&x.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=l[g])||(h=l[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),x.event.global[g]=!0);e=null}},remove:function(e,t,n,r,i){var o,a,s,l,u,c,p,f,d,h,g,m=x.hasData(e)&&x._data(e);if(m&&(c=m.events)){t=(t||"").match(T)||[""],u=t.length;while(u--)if(s=rt.exec(t[u])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){p=x.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),l=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));l&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||x.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)x.event.remove(e,d+t[u],n,r,!0);x.isEmptyObject(c)&&(delete m.handle,x._removeData(e,"events"))}},trigger:function(n,r,i,o){var s,l,u,c,p,f,d,h=[i||a],g=v.call(n,"type")?n.type:n,m=v.call(n,"namespace")?n.namespace.split("."):[];if(u=f=i=i||a,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+x.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),l=0>g.indexOf(":")&&"on"+g,n=n[x.expando]?n:new x.Event(g,"object"==typeof n&&n),n.isTrigger=o?2:3,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:x.makeArray(r,[n]),p=x.event.special[g]||{},o||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!o&&!p.noBubble&&!x.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(u=u.parentNode);u;u=u.parentNode)h.push(u),f=u;f===(i.ownerDocument||a)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((u=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(x._data(u,"events")||{})[n.type]&&x._data(u,"handle"),s&&s.apply(u,r),s=l&&u[l],s&&x.acceptData(u)&&s.apply&&s.apply(u,r)===!1&&n.preventDefault();if(n.type=g,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(h.pop(),r)===!1)&&x.acceptData(i)&&l&&i[g]&&!x.isWindow(i)){f=i[l],f&&(i[l]=null),x.event.triggered=g;try{i[g]()}catch(y){}x.event.triggered=t,f&&(i[l]=f)}return n.result}},dispatch:function(e){e=x.event.fix(e);var n,r,i,o,a,s=[],l=g.call(arguments),u=(x._data(this,"events")||{})[e.type]||[],c=x.event.special[e.type]||{};if(l[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((x.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,l),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],l=n.delegateCount,u=e.target;if(l&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(o=[],a=0;l>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?x(r,this).index(u)>=0:x.find(r,this,null,[u]).length),o[r]&&o.push(i);o.length&&s.push({elem:u,handlers:o})}return n.length>l&&s.push({elem:this,handlers:n.slice(l)}),s},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,o=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new x.Event(o),t=r.length;while(t--)n=r[t],e[n]=o[n];return e.target||(e.target=o.srcElement||a),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,o):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,o,s=n.button,l=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||a,o=i.documentElement,r=i.body,e.pageX=n.clientX+(o&&o.scrollLeft||r&&r.scrollLeft||0)-(o&&o.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(o&&o.scrollTop||r&&r.scrollTop||0)-(o&&o.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&l&&(e.relatedTarget=l===e.target?n.toElement:l),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==at()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===at()&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},click:{trigger:function(){return x.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t},_default:function(e){return x.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},x.removeEvent=a.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},x.Event=function(e,n){return this instanceof x.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&x.extend(this,n),this.timeStamp=e&&e.timeStamp||x.now(),this[x.expando]=!0,t):new x.Event(e,n)},x.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},x.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!x.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.submitBubbles||(x.event.special.submit={setup:function(){return x.nodeName(this,"form")?!1:(x.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=x.nodeName(n,"input")||x.nodeName(n,"button")?n.form:t;r&&!x._data(r,"submitBubbles")&&(x.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),x._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&x.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return x.nodeName(this,"form")?!1:(x.event.remove(this,"._submit"),t)}}),x.support.changeBubbles||(x.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(x.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),x.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),x.event.simulate("change",this,e,!0)})),!1):(x.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!x._data(t,"changeBubbles")&&(x.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||x.event.simulate("change",this.parentNode,e,!0)}),x._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return x.event.remove(this,"._change"),!Z.test(this.nodeName)}}),x.support.focusinBubbles||x.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0===n++&&a.addEventListener(e,r,!0)},teardown:function(){0===--n&&a.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return x().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=x.guid++)),this.each(function(){x.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,x(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){x.event.remove(this,e,r,n)})},trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?x.event.trigger(e,n,r,!0):t}});var st=/^.[^:#\[\.,]*$/,lt=/^(?:parents|prev(?:Until|All))/,ut=x.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};x.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(x(e).filter(function(){for(t=0;i>t;t++)if(x.contains(r[t],this))return!0}));for(t=0;i>t;t++)x.find(e,r[t],n);return n=this.pushStack(i>1?x.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},has:function(e){var t,n=x(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(x.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e||[],!0))},filter:function(e){return this.pushStack(ft(this,e||[],!1))},is:function(e){return!!ft(this,"string"==typeof e&&ut.test(e)?x(e):e||[],!1).length},closest:function(e,t){var n,r=0,i=this.length,o=[],a=ut.test(e)||"string"!=typeof e?x(e,t||this.context):0;for(;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(11>n.nodeType&&(a?a.index(n)>-1:1===n.nodeType&&x.find.matchesSelector(n,e))){n=o.push(n);break}return this.pushStack(o.length>1?x.unique(o):o)},index:function(e){return e?"string"==typeof e?x.inArray(this[0],x(e)):x.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?x(e,t):x.makeArray(e&&e.nodeType?[e]:e),r=x.merge(this.get(),n);return this.pushStack(x.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}x.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return x.dir(e,"parentNode")},parentsUntil:function(e,t,n){return x.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return x.dir(e,"nextSibling")},prevAll:function(e){return x.dir(e,"previousSibling")},nextUntil:function(e,t,n){return x.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return x.dir(e,"previousSibling",n)},siblings:function(e){return x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return x.sibling(e.firstChild)},contents:function(e){return x.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=x.filter(r,i)),this.length>1&&(ct[e]||(i=x.unique(i)),lt.test(e)&&(i=i.reverse())),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,n,r){var i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!x(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function ft(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return x.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(st.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return x.inArray(e,t)>=0!==n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/\s*$/g,At={option:[1,""],legend:[1,"
","
"],area:[1,"",""],param:[1,"",""],thead:[1,"","
"],tr:[2,"","
"],col:[2,"","
"],td:[3,"","
"],_default:x.support.htmlSerialize?[0,"",""]:[1,"X
","
"]},jt=dt(a),Dt=jt.appendChild(a.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,x.fn.extend({text:function(e){return x.access(this,function(e){return e===t?x.text(this):this.empty().append((this[0]&&this[0].ownerDocument||a).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(Ft(n)),n.parentNode&&(t&&x.contains(n.ownerDocument,n)&&_t(Ft(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&x.cleanData(Ft(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&x.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return x.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!x.support.htmlSerialize&&mt.test(e)||!x.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(x.cleanData(Ft(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&&(r&&r.parentNode!==i&&(r=this.nextSibling),x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=d.apply([],e);var r,i,o,a,s,l,u=0,c=this.length,p=this,f=c-1,h=e[0],g=x.isFunction(h);if(g||!(1>=c||"string"!=typeof h||x.support.checkClone)&&Nt.test(h))return this.each(function(r){var i=p.eq(r);g&&(e[0]=h.call(this,r,i.html())),i.domManip(e,t,n)});if(c&&(l=x.buildFragment(e,this[0].ownerDocument,!1,!n&&this),r=l.firstChild,1===l.childNodes.length&&(l=r),r)){for(a=x.map(Ft(l,"script"),Ht),o=a.length;c>u;u++)i=l,u!==f&&(i=x.clone(i,!0,!0),o&&x.merge(a,Ft(i,"script"))),t.call(this[u],i,u);if(o)for(s=a[a.length-1].ownerDocument,x.map(a,qt),u=0;o>u;u++)i=a[u],kt.test(i.type||"")&&!x._data(i,"globalEval")&&x.contains(s,i)&&(i.src?x._evalUrl(i.src):x.globalEval((i.text||i.textContent||i.innerHTML||"").replace(St,"")));l=r=null}return this}});function Lt(e,t){return x.nodeName(e,"table")&&x.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function Ht(e){return e.type=(null!==x.find.attr(e,"type"))+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function _t(e,t){var n,r=0;for(;null!=(n=e[r]);r++)x._data(n,"globalEval",!t||x._data(t[r],"globalEval"))}function Mt(e,t){if(1===t.nodeType&&x.hasData(e)){var n,r,i,o=x._data(e),a=x._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)x.event.add(t,n,s[n][r])}a.data&&(a.data=x.extend({},a.data))}}function Ot(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!x.support.noCloneEvent&&t[x.expando]){i=x._data(t);for(r in i.events)x.removeEvent(t,r,i.handle);t.removeAttribute(x.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),x.support.html5Clone&&e.innerHTML&&!x.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Ct.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}x.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){x.fn[e]=function(e){var n,r=0,i=[],o=x(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),x(o[r])[t](n),h.apply(i,n.get());return this.pushStack(i)}});function Ft(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||x.nodeName(o,n)?s.push(o):x.merge(s,Ft(o,n));return n===t||n&&x.nodeName(e,n)?x.merge([e],s):s}function Bt(e){Ct.test(e.type)&&(e.defaultChecked=e.checked)}x.extend({clone:function(e,t,n){var r,i,o,a,s,l=x.contains(e.ownerDocument,e);if(x.support.html5Clone||x.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(x.support.noCloneEvent&&x.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(r=Ft(o),s=Ft(e),a=0;null!=(i=s[a]);++a)r[a]&&Ot(i,r[a]);if(t)if(n)for(s=s||Ft(e),r=r||Ft(o),a=0;null!=(i=s[a]);a++)Mt(i,r[a]);else Mt(e,o);return r=Ft(o,"script"),r.length>0&&_t(r,!l&&Ft(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,l,u,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===x.type(o))x.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),l=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[l]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!x.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!x.support.tbody){o="table"!==l||xt.test(o)?""!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;while(i--)x.nodeName(u=o.childNodes[i],"tbody")&&!u.childNodes.length&&o.removeChild(u)}x.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),x.support.appendChecked||x.grep(Ft(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===x.inArray(o,r))&&(a=x.contains(o.ownerDocument,o),s=Ft(f.appendChild(o),"script"),a&&_t(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,l=x.expando,u=x.cache,c=x.support.deleteExpando,f=x.event.special;for(;null!=(n=e[s]);s++)if((t||x.acceptData(n))&&(o=n[l],a=o&&u[o])){if(a.events)for(r in a.events)f[r]?x.event.remove(n,r):x.removeEvent(n,r,a.handle); +u[o]&&(delete u[o],c?delete n[l]:typeof n.removeAttribute!==i?n.removeAttribute(l):n[l]=null,p.push(o))}},_evalUrl:function(e){return x.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}}),x.fn.extend({wrapAll:function(e){if(x.isFunction(e))return this.each(function(t){x(this).wrapAll(e.call(this,t))});if(this[0]){var t=x(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,"body")||x(this).replaceWith(this.childNodes)}).end()}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+w+")(.*)$","i"),Yt=RegExp("^("+w+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+w+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===x.css(e,"display")||!x.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=x._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=x._data(r,"olddisplay",ln(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&x._data(r,"olddisplay",i?n:x.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}x.fn.extend({css:function(e,n){return x.access(this,function(e,n,r){var i,o,a={},s=0;if(x.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=x.css(e,n[s],!1,o);return a}return r!==t?x.style(e,n,r):x.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){nn(this)?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":x.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,l=x.camelCase(n),u=e.style;if(n=x.cssProps[l]||(x.cssProps[l]=tn(u,l)),s=x.cssHooks[n]||x.cssHooks[l],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:u[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(x.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||x.cssNumber[l]||(r+="px"),x.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(u[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{u[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,l=x.camelCase(n);return n=x.cssProps[l]||(x.cssProps[l]=tn(e.style,l)),s=x.cssHooks[n]||x.cssHooks[l],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||x.isNumeric(o)?o||0:a):a}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s.getPropertyValue(n)||s[n]:t,u=e.style;return s&&(""!==l||x.contains(e.ownerDocument,e)||(l=x.style(e,n)),Yt.test(l)&&Ut.test(n)&&(i=u.width,o=u.minWidth,a=u.maxWidth,u.minWidth=u.maxWidth=u.width=l,l=s.width,u.width=i,u.minWidth=o,u.maxWidth=a)),l}):a.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s[n]:t,u=e.style;return null==l&&u&&u[n]&&(l=u[n]),Yt.test(l)&&!zt.test(n)&&(i=u.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),u.left="fontSize"===n?"1em":l,l=u.pixelLeft+"px",u.left=i,a&&(o.left=a)),""===l?"auto":l});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=x.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=x.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=x.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=x.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=x.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function ln(e){var t=a,n=Gt[e];return n||(n=un(e,t),"none"!==n&&n||(Pt=(Pt||x("