diff --git a/.gitignore b/.gitignore index f1c181e..7f5e282 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,8 @@ # Output of the go coverage tool, specifically when used with LiteIDE *.out + +.idea +logs/* +./wow_api +wow_api.exe \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..09e136c --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 Segment + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md index 4c1c850..a97d6e6 100644 --- a/README.md +++ b/README.md @@ -1 +1,32 @@ -# wow_api \ No newline at end of file +# wow_api + +## 宏工具(macro tool) + +这是一个为魔兽世界玩家制作的游戏工具,该工具提供给玩家一个分享游戏中宏命令的平台,也同时提供给玩家以搜索功能。 + +This is a game tool for World of Warcraft players that provides players with a platform to share macro commands in the game, as well as a search function. + +### 功能(function) +- 快速创建(fast create) + + - 提供给对游戏中宏命令感兴趣,却不懂的玩家,融合搜索和自动生成的功能,返回给玩家一个命令列表以供选择。 + - Players who are interested in the macro commands in the game but do not understand, combine the search and auto-generated functions, and return a list of commands to the player for selection. + +- 手动组合(create by hand) + + - 提供给熟悉游戏的玩家,通过工具,手动组合出自己所需的命令。 + - Provided to players who are familiar with the game, through the tools, manually combine the commands they need. + +- 分享及搜索(share and search) + + - 提供给玩家一个分享自己收集的宏命令的功能,同时也可以搜索其他玩家分享的宏命令。 + -Provides the player with the ability to share the macro commands they have collected, as well as the macro commands shared by other players. + +## 魔兽世界插件开发api(api document) + +这是一个为魔兽世界插件开发者提供api查询的平台。 + +### 功能(function) +- 游戏内部api查询 +- 游戏内部事件event查询 +- 游戏内部合法宏命令查询 \ No newline at end of file diff --git a/database/api.go b/database/api.go new file mode 100644 index 0000000..f3566fa --- /dev/null +++ b/database/api.go @@ -0,0 +1,56 @@ +package database + +import "time" + +type ApiUnverify struct { + ID int `gorm:"column:id" json:"id"` + ApiID int `json:"apiID" gorm:"column:api_id"` + Type string `json:"type" gorm:"column:type"` + Name string `json:"name" gorm:"column:name"` + NameCn string `json:"nameCn" gorm:"column:name_cn"` + Desc string `json:"desc" gorm:"column:desc"` + InfoDesc string `json:"infoDesc" gorm:"column:info_desc"` + CreateTime string `json:"createTime" gorm:"column:create_time"` + IsHandle uint8 `json:"isHandle" gorm:"column:is_handle"` +} + +type ApiUnit struct { + // 主键ID + ID uint64 `grom:"primary_key;column:id" json:"id"` + // 英文名称 + Name string `grom:"column:name" json:"name"` + // 中文名称 + NameCn string `grom:"column:name_cn" json:"nameCn"` + // 描述 + Desc string `grom:"column:desc" json:"desc"` + // 父级ID + ParentID uint64 `grom:"column:parent_id" json:"parentId"` + // 删除标识 + Enabled uint8 `grom:"column:enabled" json:"enabled"` + // 创建时间 + CreateTime time.Time `grom:"column:create_time" json:"createTime"` + // 更新时间 + UpdateTime time.Time `grom:"column:update_time" json:"updateTime"` +} + +type ApiItem struct { + ApiUnit + ApiID int32 `gorm:"column:api_id" json:"apiId"` + Type uint8 `gorm:"column:type" json:"type"` +} + +type SimpleApiItem struct { + // api ID + ID int32 `gorm:"column:id" json:"id"` + // 英文名称 + Name string `grom:"column:name" json:"name"` + // 中文名称 + NameCn string `grom:"column:name_cn" json:"nameCn"` + // 描述 + Desc string `grom:"column:desc" json:"desc"` +} + +type SearchApiItem struct { + SimpleApiItem + Type string `json:"type"` +} diff --git a/database/common.go b/database/common.go new file mode 100644 index 0000000..636bab8 --- /dev/null +++ b/database/common.go @@ -0,0 +1 @@ +package database diff --git a/database/login_log.go b/database/login_log.go new file mode 100644 index 0000000..e6b61d3 --- /dev/null +++ b/database/login_log.go @@ -0,0 +1,12 @@ +package database + +type ApiLoginLog struct { + ID int `json:"id" gorm:"column:id"` + IP string `json:"ip" gorm:"column:ip"` + Method string `json:"method" gorm:"column:method"` + LoginDate string `json:"loginDate" gorm:"column:login_date"` + Count int `json:"count" gorm:"column:count"` + Type uint8 `gorm:"column:type" json:"type"` + CreateTime string `json:"createTime" gorm:"column:create_time"` + UpdateTime string `json:"updateTime" gorm:"column:update_time"` +} diff --git a/database/macro.go b/database/macro.go new file mode 100644 index 0000000..ddf1df1 --- /dev/null +++ b/database/macro.go @@ -0,0 +1,30 @@ +package database + +import "time" + +type Macros struct { + ID int64 `gorm:"column:id" json:"id"` + UpdateTime time.Time `gorm:"column:updatetime" json:"updatetime"` + IsVerify uint8 `gorm:"column:is_verify" json:"isVerify"` + MasteryID int64 `gorm:"column:mastery_id" json:"masteryId"` + ProfessionID int64 `gorm:"column:profession_id" json:"professionId"` + + SimpleMacro +} + +type SimpleMacro struct { + Title string `gorm:"column:title" json:"title"` + Macro string `gorm:"column:macro" json:"macro"` + Author string `gorm:"column:author" json:"author"` +} + +type Profession struct { + PID int64 `gorm:"column:pid" json:"pid"` + Version int8 `gorm:"column:version" json:"version"` + SimpleProfession +} + +type SimpleProfession struct { + ID int64 `gorm:"column:id" json:"id"` + Name string `gorm:"column:name" json:"name"` +} diff --git a/database/macro60.go b/database/macro60.go new file mode 100644 index 0000000..a17f515 --- /dev/null +++ b/database/macro60.go @@ -0,0 +1,18 @@ +package database + +import "time" + +type MacrosOld60 struct { + SimpleMacro60 + ID int64 `gorm:"column:id" json:"id"` + UpdateTime time.Time `gorm:"column:updatetime" json:"updatetime"` + IsVerify uint8 `gorm:"column:is_verify" json:"isVerify"` + MasteryID int64 `gorm:"column:mastery_id" json:"masteryId"` + ProfessionID int64 `gorm:"column:profession_id" json:"professionId"` +} + +type SimpleMacro60 struct { + Title string `gorm:"column:title" json:"title"` + Macro string `gorm:"column:macro" json:"macro"` + Author string `gorm:"column:author" json:"author"` +} diff --git a/global/config.go b/global/config.go new file mode 100644 index 0000000..26ad549 --- /dev/null +++ b/global/config.go @@ -0,0 +1,58 @@ +package global + +import ( + "github.com/rifflock/lfshook" + "github.com/sirupsen/logrus" +) + +var Config = struct { + // 系统 + ListenHost string + ListenPort int32 + ApiRootPath string + // 数据库 + DbHost string + DbPort int32 + DbUser string + DbPwd string + DbName string + // 日志 + IsSaveLog bool + LogPath string + Log *logrus.Logger + LogLevel logrus.Level + // 基础验证 + VerifyCode string + // 统计天数 + ChartDay int64 +}{ + ListenHost: "127.0.0.1", + ListenPort: 8002, + DbHost: "127.0.0.1", + DbPort: 3306, + DbUser: "xxx", + DbPwd: "xxx", + DbName: "wow_hong", + IsSaveLog: false, + Log: logrus.New(), + LogPath: "./logs/log.txt", + LogLevel: logrus.DebugLevel, + VerifyCode: "testcode", + ChartDay: 20, +} + +func init() { + if Config.IsSaveLog { + pathMap := lfshook.PathMap{ + logrus.InfoLevel: Config.LogPath, + logrus.ErrorLevel: Config.LogPath, + logrus.WarnLevel: Config.LogPath, + } + Config.Log.Hooks.Add(lfshook.NewHook( + pathMap, + &logrus.JSONFormatter{}, + )) + } + + Config.Log.Level = Config.LogLevel +} diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..2a803b8 --- /dev/null +++ b/go.mod @@ -0,0 +1,26 @@ +module github.com/illidan33/wow_tools + +go 1.16 + +require ( + github.com/gin-gonic/gin v1.7.2 + github.com/go-playground/validator/v10 v10.6.1 // indirect + github.com/go-sql-driver/mysql v1.4.1 + github.com/golang/protobuf v1.5.2 // indirect + github.com/illidan33/wow_api v0.0.0-20200902012123-54b9c81760ff + github.com/jinzhu/gorm v1.9.10 + github.com/json-iterator/go v1.1.11 // indirect + github.com/kr/pretty v0.2.1 // indirect + github.com/leodido/go-urn v1.2.1 // indirect + github.com/mattn/go-isatty v0.0.13 // indirect + github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect + github.com/modern-go/reflect2 v1.0.1 // indirect + github.com/rifflock/lfshook v0.0.0-20180920164130-b9218ef580f5 + github.com/sirupsen/logrus v1.2.0 + github.com/ugorji/go v1.2.6 // indirect + golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e // indirect + golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c // indirect + golang.org/x/text v0.3.6 // indirect + google.golang.org/protobuf v1.27.1 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..b2e80c8 --- /dev/null +++ b/go.sum @@ -0,0 +1,221 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.37.4 h1:glPeL3BQJsbF6aIIYfZizMwc5LTYz250bDMjttbBGAU= +cloud.google.com/go v0.37.4/go.mod h1:NHPJ89PdicEuT9hdPXMROBD91xc5uRDxsMtSB16k7hw= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= +github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= +github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= +github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/denisenkom/go-mssqldb v0.0.0-20190515213511-eb9f6a1743f3 h1:tkum0XDgfR0jcVVXuTsYv/erY2NnEDqwRojbxR1rBYA= +github.com/denisenkom/go-mssqldb v0.0.0-20190515213511-eb9f6a1743f3/go.mod h1:zAg7JM8CkOJ43xKXIj7eRO9kmWm/TW578qo+oDO6tuM= +github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= +github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= +github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= +github.com/erikstmartin/go-testdb v0.0.0-20160219214506-8d10e4a1bae5 h1:Yzb9+7DPaBjB8zlTR87/ElzFsnQfuHnVUVqpZZIcV5Y= +github.com/erikstmartin/go-testdb v0.0.0-20160219214506-8d10e4a1bae5/go.mod h1:a2zkGnVExMxdzMo3M0Hi/3sEU+cWnZpSni0O6/Yb/P0= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= +github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= +github.com/gin-gonic/gin v1.7.2 h1:Tg03T9yM2xa8j6I3Z3oqLaQRSmKvxPd6g/2HJ6zICFA= +github.com/gin-gonic/gin v1.7.2/go.mod h1:jD2toBW3GZUr5UMcdrwQA10I7RuaFOl/SGeDjXkfUtY= +github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= +github.com/go-playground/assert/v2 v2.0.1 h1:MsBgLAaY856+nPRTKrp3/OZK38U/wa0CcBYNjji3q3A= +github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= +github.com/go-playground/locales v0.13.0 h1:HyWk6mgj5qFqCT5fjGBuRArbVDfE4hi8+e8ceBS/t7Q= +github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= +github.com/go-playground/universal-translator v0.17.0 h1:icxd5fm+REJzpZx7ZfpaD876Lmtgy7VtROAbHHXk8no= +github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= +github.com/go-playground/validator/v10 v10.4.1/go.mod h1:nlOn6nFhuKACm19sB/8EGNn9GlaMV7XkbRSipzJ0Ii4= +github.com/go-playground/validator/v10 v10.6.1 h1:W6TRDXt4WcWp4c4nf/G+6BkGdhiIo0k417gfr+V6u4I= +github.com/go-playground/validator/v10 v10.6.1/go.mod h1:xm76BBt941f7yWdGnI2DVPFFg1UK3YY04qifoXU3lOk= +github.com/go-sql-driver/mysql v1.4.1 h1:g24URVg0OFbNUTx9qqY1IRZ9D9z3iPyi5zKhQZpNwpA= +github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= +github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= +github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= +github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/illidan33/wow_api v0.0.0-20200902012123-54b9c81760ff h1:iqlkrOGcUOk9972UcgBNv9LTSgMg8u7fDZLTiTcFvw0= +github.com/illidan33/wow_api v0.0.0-20200902012123-54b9c81760ff/go.mod h1:l6xky2WXNTlx7mgslOAkdJ7IpZPRbBGe1UN6V3RTuos= +github.com/jinzhu/gorm v1.9.10 h1:HvrsqdhCW78xpJF67g1hMxS6eCToo9PZH4LDB8WKPac= +github.com/jinzhu/gorm v1.9.10/go.mod h1:Kh6hTsSGffh4ui079FHrR5Gg+5D0hgihqDcsDN2BBJY= +github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= +github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= +github.com/jinzhu/now v1.0.1 h1:HjfetcXq097iXP0uoPCdnM4Efp5/9MsM0/M+XOTeR3M= +github.com/jinzhu/now v1.0.1/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= +github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.11 h1:uVUAXhF2To8cbw/3xN3pxj6kk7TYKs98NIrTqPlMWAQ= +github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk= +github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= +github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= +github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w= +github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= +github.com/lib/pq v1.1.1 h1:sJZmqHoEaY7f+NPP8pgLB/WxulyR3fewgCM2qaSlBb4= +github.com/lib/pq v1.1.1/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= +github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= +github.com/mattn/go-isatty v0.0.13 h1:qdl+GuBjcsKKDco5BsxPJlId98mSWNKqYA+Co0SC1yA= +github.com/mattn/go-isatty v0.0.13/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= +github.com/mattn/go-sqlite3 v1.10.0 h1:jbhqpg7tQe4SupckyijYiy0mJJ/pRyHvXf7JdWK860o= +github.com/mattn/go-sqlite3 v1.10.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= +github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= +github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= +github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= +github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= +github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= +github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= +github.com/rifflock/lfshook v0.0.0-20180920164130-b9218ef580f5 h1:mZHayPoR0lNmnHyvtYjDeq0zlVHn9K/ZXoy17ylucdo= +github.com/rifflock/lfshook v0.0.0-20180920164130-b9218ef580f5/go.mod h1:GEXHk5HgEKCvEIIrSpFI3ozzG5xOKA2DVlEX/gGnewM= +github.com/sirupsen/logrus v1.2.0 h1:juTguoYk5qI21pwyTXY3B3Y5cOTH3ZUyZCg1v/mihuo= +github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= +github.com/ugorji/go v1.2.6 h1:tGiWC9HENWE2tqYycIqFTNorMmFRVhNwCpDOpWqnk8E= +github.com/ugorji/go v1.2.6/go.mod h1:anCg0y61KIhDlPZmnH+so+RQbysYVyDko0IMgJv0Nn0= +github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= +github.com/ugorji/go/codec v1.2.6 h1:7kbGefxLoDBuYXOms4yD7223OpNMMPNPZxXk5TvFcyQ= +github.com/ugorji/go/codec v1.2.6/go.mod h1:V6TCNZ4PHqoHGFZuSG1W8nrCzzdgA2DozYxWFFpvxTw= +go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= +golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e h1:gsTQYXdTw2Gq7RBsWvlQ91b+aEQ6bXFUngBGuR8sPpI= +golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c h1:F1jZWGFhYfh0Ci55sIpILtKKK8p3i2/krTr0H1rg74I= +golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0 h1:/wp5JvzpHIxhs/dumFmF7BXTf3Z+dd4uXta4kVyO508= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190404172233-64821d5d2107/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ= +google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/main.go b/main.go new file mode 100644 index 0000000..2fe50ba --- /dev/null +++ b/main.go @@ -0,0 +1,46 @@ +package main + +import ( + "fmt" + "github.com/gin-gonic/gin" + "github.com/illidan33/wow_tools/global" + "github.com/illidan33/wow_tools/modules" + "github.com/illidan33/wow_tools/routers" + "github.com/illidan33/wow_tools/routers/index" + "github.com/jinzhu/gorm" + "github.com/sirupsen/logrus" + "net/http" +) + +var ( + WowApi *gin.Engine + DB *gorm.DB +) + +func main() { + defer func() { + modules.DbConn.Close() + }() + if global.Config.LogLevel != logrus.DebugLevel { + gin.SetMode(gin.ReleaseMode) + } + + WowApi = gin.New() + routers.Chart = WowApi.Group("/chart") + routers.Chart.Use(index.AuthMiddleware) + routers.Auth = WowApi.Group("/auth") + routers.Auth.Use(index.AuthMiddleware) + + routers.Api = WowApi.Group("/api") + routers.Macro = WowApi.Group("/macro") + routers.MacroOld60 = WowApi.Group("/macro60") + routers.New() + WowApi.StaticFS("/js/", http.Dir("./public/js")) + WowApi.StaticFS("/css/", http.Dir("./public/css")) + WowApi.StaticFile("/favicon.ico", "./public/favicon.ico") + WowApi.LoadHTMLGlob( "./public/html/*/*") + + WowApi.GET("/", index.Index) + WowApi.NoRoute(index.Index) + WowApi.Run(fmt.Sprintf("%s:%d", global.Config.ListenHost, global.Config.ListenPort)) +} diff --git a/modules/common.go b/modules/common.go new file mode 100644 index 0000000..d568b76 --- /dev/null +++ b/modules/common.go @@ -0,0 +1,287 @@ +package modules + +import ( + "fmt" + "github.com/gin-gonic/gin" + "github.com/illidan33/wow_tools/database" + "github.com/illidan33/wow_tools/global" + "net/http" + "strings" +) + +func Return(c *gin.Context, code int32, resp interface{}) { + if e, ok := resp.(error); ok { + global.Config.Log.Error(e) + if e.Error() == "record not found" { + c.JSON(http.StatusOK, gin.H{ + "code": code, + "msg": "Interner Error", + }) + } else { + c.JSON(http.StatusOK, gin.H{ + "code": code, + "msg": e.Error(), + }) + } + + } else { + c.JSON(http.StatusOK, gin.H{ + "code": code, + "data": resp, + }) + } +} + +func ReturnPage(c *gin.Context, code int32, pageNo int64, pageSize int64, resp interface{}) { + if e, ok := resp.(error); ok { + global.Config.Log.Error(e) + if e.Error() == "record not found" { + c.JSON(http.StatusOK, gin.H{ + "code": code, + "msg": "Interner Error", + }) + } else { + c.JSON(http.StatusOK, gin.H{ + "code": code, + "msg": e.Error(), + }) + } + + } else { + if pageSize == -1 { + c.JSON(http.StatusOK, gin.H{ + "code": code, + "data": resp, + }) + } else { + c.JSON(http.StatusOK, gin.H{ + "code": code, + "pageNo": pageNo, + "data": resp, + }) + } + } +} + +func IsNotFound(err error) bool { + if err.Error() == "record not found" { + return true + } + return false +} + +// 快速创建 +type MacroSequence struct { + // 名称 + SkillName string `json:"skillName"` + // 优先级 + Level int `json:"level"` + // 冷却时间(秒*100) + Cooldown int `json:"cooldown"` + // 剩余时间 + CDTime int `json:"-"` +} + +func CreateSequence(temps []MacroSequence) (macroText []string, maxTime int) { + for _, value := range temps { + if maxTime == 0 { + maxTime = value.Cooldown + } else { + if value.Cooldown > maxTime { + maxTime = value.Cooldown + } + } + } + + for i := 0; i < maxTime; i++ { + coolIndex := 0 + coolLevel := 0 + for j, value := range temps { + if value.CDTime != 0 { + continue + } + if coolLevel == 0 { + coolLevel = value.Level + coolIndex = j + } else { + if coolLevel > value.Level { + coolLevel = value.Level + coolIndex = j + } + } + } + if coolLevel != 0 { + macroText = append(macroText, temps[coolIndex].SkillName) + temps[coolIndex].CDTime = temps[coolIndex].Cooldown + } + // CD时间减1 + for k, value := range temps { + if value.CDTime != 0 { + temps[k].CDTime -= 1 + } + } + } + + return macroText, maxTime +} + +func CreateLoginLog(c *gin.Context, html string, t uint8) { + go UpdateOrCreateLog(c.ClientIP(), html, t) +} + +// 获取项目的子项目 +func GetApiByParentID(tableType string, parentID string) (interface{}, error) { + simples := make([]database.SimpleApiItem, 0) + t := GetApiTypeByTableType(tableType) + apiList := make([]database.ApiItem, 0) + + err := DbConn.Where("parent_id = ? and type = ?", parentID, t).Find(&apiList).Error + if err != nil { + return nil, err + } + for _, api := range apiList { + simple := database.SimpleApiItem{ + ID: api.ApiID, + Name: api.Name, + NameCn: api.NameCn, + Desc: api.Desc, + } + simples = append(simples, simple) + } + return simples, nil +} + +// 转换前端的tableType为api类型 +func GetApiTypeByTableType(tbType string) (t uint8) { + switch tbType { + case "api": + t = 1 + case "macro": + t = 3 + case "event": + t = 2 + case "widget": + t = 4 + case "widgetHandler": + t = 5 + default: + t = 0 + } + return +} +func GetTbTypeByApiType(t uint8) (tbType string) { + switch t { + case 1: + tbType = "api" + case 3: + tbType = "macro" + case 2: + t = 2 + tbType = "event" + case 4: + tbType = "widget" + case 5: + tbType = "widgetHandler" + default: + tbType = "" + } + return +} + +// 获取详情 +func GetApiByID(id string) (simpleApi database.SimpleApiItem, err error) { + api := database.ApiItem{} + err = DbConn.Where("api_id = ?", id).Find(&api).Error + if err != nil { + return + } + + simpleApi = database.SimpleApiItem{ + ID: api.ApiID, + Name: api.Name, + NameCn: api.NameCn, + Desc: api.Desc, + } + return +} + +func GetApiListBySearchText(s string) (simpleApis []database.SearchApiItem, err error) { + apis := make([]database.ApiItem, 0) + + err = DbConn.Where("parent_id!=? and type != ? and name like ?", 0, 2, "%"+s+"%").Find(&apis).Error + if err != nil { + return + } + for _, api := range apis { + simpleApi := database.SearchApiItem{ + SimpleApiItem: database.SimpleApiItem{ + ID: api.ApiID, + Name: api.Name, + NameCn: api.NameCn, + Desc: api.Desc, + }, + Type: GetTbTypeByApiType(api.Type), + } + simpleApis = append(simpleApis, simpleApi) + } + events := make([]database.ApiItem, 0) + err = DbConn.Where("type = ? and name like ?", 2, "%"+s+"%").Find(&events).Error + if err != nil { + return + } + for _, api := range events { + simpleApi := database.SearchApiItem{ + SimpleApiItem: database.SimpleApiItem{ + ID: api.ApiID, + Name: api.Name, + NameCn: api.NameCn, + Desc: api.Desc, + }, + Type: "event", + } + simpleApis = append(simpleApis, simpleApi) + } + return +} + +func GetApiDetailUrlByID(tableType string, name string) (url string) { + switch tableType { + case "api": + url = fmt.Sprintf("https://wow.gamepedia.com/API_%s", name) + case "macro": + url = fmt.Sprintf("https://wow.gamepedia.com/MACRO_%s", name) + case "event": + url = fmt.Sprintf("https://wow.gamepedia.com/%s", name) + case "widget": + nameArr := strings.Split(name, ":") + if len(nameArr) > 1 { + url = fmt.Sprintf("https://wow.gamepedia.com/API_%s_%s", nameArr[0], nameArr[1]) + } else { + nameArr := strings.Split(name, ":") + if len(nameArr) > 1 { + url = fmt.Sprintf("https://wow.gamepedia.com/API_%s_%s", nameArr[0], nameArr[1]) + } else { + url = fmt.Sprintf("https://wow.gamepedia.com/API_%s", name) + } + } + case "widgetHandler": + url = fmt.Sprintf("https://wow.gamepedia.com/UIHANDLER_%s", name) + default: + url = "" + } + return +} + +type QueryFilter struct { + QueryString string + QueryParams []interface{} +} + +func (query *QueryFilter) FilterParams(fieldName string, fieldValue interface{}) { + if query.QueryString == "" { + query.QueryString = fmt.Sprintf("%s = ?", fieldName) + } else { + query.QueryString = fmt.Sprintf("%s AND %s = ?", query.QueryString, fieldName) + } + query.QueryParams = append(query.QueryParams, fieldValue) +} diff --git a/modules/login_log.go b/modules/login_log.go new file mode 100644 index 0000000..be8a7c5 --- /dev/null +++ b/modules/login_log.go @@ -0,0 +1,59 @@ +package modules + +import ( + "github.com/illidan33/wow_tools/database" + "github.com/illidan33/wow_tools/global" + "time" +) + +// 创建登录日志 +func createLog(ip string, method string, t uint8) error { + now := time.Now() + tm := now.Format("2006-01-02 15:04:05") + + log := database.ApiLoginLog{ + ID: 0, + IP: ip, + Method: method, + LoginDate: now.Format("2006-01-02"), + Count: 1, + CreateTime: tm, + UpdateTime: tm, + Type: t, + } + + err := DbConn.Create(&log).Error + if err != nil { + global.Config.Log.Error(err) + } + + return nil +} + +func UpdateOrCreateLog(ip string, method string, t uint8) error { + date := time.Now().Format("2006-01-02") + + log := database.ApiLoginLog{} + err := DbConn.Where("ip = ? and method = ? and login_date = ? and type = ?", ip, method, date, t).First(&log).Error + if err != nil { + if IsNotFound(err) { + err = createLog(ip, method, t) + if err != nil { + return err + } + return nil + } + return err + } + log.Count += 1 + + err = DbConn.Model(&log).Update(database.ApiLoginLog{ + Count: log.Count, + UpdateTime: time.Now().Format("2006-01-02 15:04:05"), + }).Error + if err != nil { + return err + } + + return nil +} diff --git a/modules/module.go b/modules/module.go new file mode 100644 index 0000000..3d8b145 --- /dev/null +++ b/modules/module.go @@ -0,0 +1,42 @@ +package modules + +type ApiForGet struct { + ID int `json:"id" db:"id"` + Name string `json:"name" db:"name"` + NameCn string `json:"nameCn" db:"name_cn"` + Desc string `json:"desc" db:"desc"` +} + +type Api struct { + ID int `json:"id" db:"id"` + ParentID int `json:"parentID" db:"parent_id"` + Name string `json:"name" db:"name"` + NameCn string `json:"nameCn" db:"name_cn"` + Desc string `json:"desc" db:"desc"` + Enabled int `json:"enabled" db:"enabled"` + CreateTime string `json:"createTime" db:"create_time"` + UpdateTime string `json:"updateTime" db:"update_time"` +} + +type LoginForGet struct { + ID int `json:"id" db:"id"` + IP string `json:"ip" db:"ip"` + Method string `json:"method" db:"method"` + LoginDate string `json:"loginDate" db:"login_date"` + Count int `json:"count" db:"count"` +} + +type UnVerifyApi struct { + ApiID int `json:"apiID" db:"api_id"` + Type string `json:"type" db:"type"` + Name string `json:"name" db:"name"` + NameCn string `json:"nameCn" db:"name_cn"` + Desc string `json:"desc" db:"desc"` + InfoDesc string `json:"infoDesc" db:"info_desc"` + CreateTime string `json:"createTime" db:"create_time"` +} + +type ChartData struct { + Name string `json:"name"` + Data []int `json:"data"` +} diff --git a/modules/mysql.go b/modules/mysql.go new file mode 100644 index 0000000..fa1e3e8 --- /dev/null +++ b/modules/mysql.go @@ -0,0 +1,24 @@ +package modules + +import ( + "fmt" + _ "github.com/go-sql-driver/mysql" + "github.com/illidan33/wow_tools/global" + "github.com/jinzhu/gorm" + "github.com/sirupsen/logrus" +) + +var DbConn *gorm.DB + +func init() { + var err error + DbConn, err = gorm.Open("mysql", fmt.Sprintf("%s:%s@tcp(127.0.0.1:3306)/%s?charset=utf8&parseTime=True&loc=Local", global.Config.DbUser, global.Config.DbPwd, global.Config.DbName)) + if err != nil { + panic(err) + } + DbConn.SingularTable(true) + DbConn.SetLogger(global.Config.Log) + if global.Config.LogLevel == logrus.DebugLevel { + DbConn.LogMode(true) + } +} diff --git a/public/css/bootstrap.min.css b/public/css/bootstrap.min.css new file mode 100644 index 0000000..ed3905e --- /dev/null +++ b/public/css/bootstrap.min.css @@ -0,0 +1,6 @@ +/*! + * Bootstrap v3.3.7 (http://getbootstrap.com) + * Copyright 2011-2016 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,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-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}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{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;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-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!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:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@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.woff2) format('woff2'),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:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-eur:before,.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"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-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}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.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;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.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,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,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,.h5,.h6,h4,h5,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:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.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 ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}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;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;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{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.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-md-1,.col-md-10,.col-md-11,.col-md-12,.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-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.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-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{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:auto}.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:auto}.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-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{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:auto}.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:auto}.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-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{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:auto}.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:auto}.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-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{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:auto}.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:auto}.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{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{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>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border: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;max-width:100%;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=checkbox],input[type=radio]{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=checkbox]:focus,input[type=radio]:focus{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,-webkit-box-shadow ease-in-out .15s;-o-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::-ms-expand{background-color:transparent;border:0}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px\9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.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}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{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;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{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;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{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;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top: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 .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-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;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary:hover{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{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.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{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.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{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.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{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;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;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)}.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:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.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,.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-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-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:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left: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-left-radius:4px;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-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.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-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.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.3333333;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}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.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}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn: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=checkbox],.input-group-addon input[type=radio]{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-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-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:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-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:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{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{z-index:2;margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.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:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.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:focus,.nav-tabs.nav-justified>.active>a:hover{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:focus,.nav-tabs.nav-justified>.active>a:hover{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:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.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{margin-bottom:5px;text-align:center}.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:focus,.nav-tabs-justified>.active>a:hover{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:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-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{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;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-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{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-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{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;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;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;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{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-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-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)}@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 .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;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-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{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:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{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:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{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:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@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:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.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{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.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;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.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:focus,.pager li>a:hover{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:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.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}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom: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}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{padding-right:15px;padding-left:15px;border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left: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:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.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,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.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}}@-o-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{height:20px;margin-bottom:20px;overflow:hidden;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:#337ab7;-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;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.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:-o-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);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-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:-o-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:-o-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:-o-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:-o-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{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.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-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{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-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>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,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.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 th:first-child,.panel>.table-responsive:first-child>.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 th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.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 th:last-child,.panel>.table-responsive:first-child>.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 th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.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 th:first-child,.panel>.table-responsive:last-child>.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 th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.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 th:last-child,.panel>.table-responsive:last-child>.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 th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.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,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.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-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.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-heading .badge{color:#dff0d8;background-color:#3c763d}.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-heading .badge{color:#d9edf7;background-color:#31708f}.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-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.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-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.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;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@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:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;filter:alpha(opacity=0);opacity:0;line-break:auto}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;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{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-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;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;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);line-break:auto}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;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{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";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{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.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;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);background-color:rgba(0,0,0,0);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1}.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%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;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-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left: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}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!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!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}} +/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/public/css/common.css b/public/css/common.css new file mode 100644 index 0000000..1123ce1 --- /dev/null +++ b/public/css/common.css @@ -0,0 +1,38 @@ +#title-ul li { + cursor: pointer; +} + +.navbar-nav { + display: inline-block; + height: 50px; +} + +.navbar-nav > li, .navbar-nav > li > a { + display: inline-block; + padding-top: 0px; + padding-bottom: 0px; + height: 50px; + line-height: 50px; +} + +.navbar-nav > li { + border: 1px solid #333333; + border-radius: 5px; +} + +.navbar-nav > li:hover { + background-color: white; +} + +.navbar-inverse .navbar-nav > li > a:hover { + color: black; +} + +.home-active, .active { + color: white; + background-color: black; +} + +#title-ul > .list-group-item { + cursor: pointer; +} \ No newline at end of file diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000..c99eb1c Binary files /dev/null and b/public/favicon.ico differ diff --git a/public/html/index/404.html b/public/html/index/404.html new file mode 100644 index 0000000..a2e48ae --- /dev/null +++ b/public/html/index/404.html @@ -0,0 +1,22 @@ + + + + 落叶的记录 + + + + + +
+
+
+
404
+
+ The page is missing... +
+ +
+
+
+ + \ No newline at end of file diff --git a/public/html/index/chart.html b/public/html/index/chart.html new file mode 100644 index 0000000..aceb5b1 --- /dev/null +++ b/public/html/index/chart.html @@ -0,0 +1,89 @@ + + + + 落叶的记录 + + + + + + + +
+
+
+ + +
+
+ + +
+ +
+
+
+ + + \ No newline at end of file diff --git a/public/html/index/common_footer.html b/public/html/index/common_footer.html new file mode 100644 index 0000000..4a6fdd3 --- /dev/null +++ b/public/html/index/common_footer.html @@ -0,0 +1,5 @@ +{{define "common_footer"}} +
+
蜀ICP备18034089号-1
+
+{{end}} \ No newline at end of file diff --git a/public/html/index/common_notice.html b/public/html/index/common_notice.html new file mode 100644 index 0000000..e4e8c75 --- /dev/null +++ b/public/html/index/common_notice.html @@ -0,0 +1,9 @@ +{{define "common_notice"}} +
+
+

qq交流群01:923174332

+

qq交流群02:563084730

+

欢迎交流学习插件开发、宏命令相关经验!

+
+
+{{end}} \ No newline at end of file diff --git a/public/html/index/index.html b/public/html/index/index.html new file mode 100644 index 0000000..5051d11 --- /dev/null +++ b/public/html/index/index.html @@ -0,0 +1,95 @@ + + + + World of Warcraft Tools + + + + + + + + + + +
+
+
+ +
+

如果觉得该项目有帮助到您,请给一个Start!^_^

+
+
+
WOW API
+
+

+ 该API项目的重点是提供魔兽API相关的内容的介绍,包括API参考材料,以及指南和教程文章。由于其范围广泛,该项目旨在引出各个子主题的资料,为API相关讨论提供了一个共同的平台。 +
本站发布的内容若侵犯到您的权益,请联系站长删除,我们将及时处理。 +

+

1. 游戏内部api查询

+

2. 游戏内部事件event查询

+

3. 游戏内部合法宏命令查询

+
+
+
+
宏工具
+
+

+ 该API项目的重点是提供魔兽API相关的内容的介绍,包括API参考材料,以及指南和教程文章。由于其范围广泛,该项目旨在引出各个子主题的资料,为API相关讨论提供了一个共同的平台。 +
本站发布的内容若侵犯到您的权益,请联系站长删除,我们将及时处理。 +

+

1. 快速创建(fast create) + 提供给对游戏中宏命令感兴趣,却不懂的玩家,融合搜索和自动生成的功能,返回给玩家一个命令列表以供选择。 + Players who are interested in the macro commands in the game but do not understand, combine the search and auto-generated functions, and return a list of commands to the player + for + selection. + 手动组合(create by hand) +

+

2. 提供给熟悉游戏的玩家,通过工具,手动组合出自己所需的命令。 + Provided to players who are familiar with the game, through the tools, manually combine the commands they need. +

+

3. 分享及搜索(share and search) + 提供给玩家一个分享自己收集的宏命令的功能,同时也可以搜索其他玩家分享的宏命令。 -Provides the player with the ability to share the macro commands they have collected, as well as the macro commands shared by other + players. +

+
+
+
+
+ + \ No newline at end of file diff --git a/public/html/index/unauth.html b/public/html/index/unauth.html new file mode 100644 index 0000000..d8fb7f2 --- /dev/null +++ b/public/html/index/unauth.html @@ -0,0 +1,22 @@ + + + + 落叶的记录 + + + + + +
+
+
+
Forbidden
+
+ You can not get into this page... +
+ +
+
+
+ + \ No newline at end of file diff --git a/public/html/macro60_tool/macro60_byHand.html b/public/html/macro60_tool/macro60_byHand.html new file mode 100644 index 0000000..0ad4481 --- /dev/null +++ b/public/html/macro60_tool/macro60_byHand.html @@ -0,0 +1,243 @@ + + + + {{template "macro60_head_script" .}} + + +{{template "macro60_header"}} + +
+
+
+ +
+
+

动作命令:

+
+
+ +
+
+
+ +
+

判断条件:

+
+
+ +
+
+
+
+
+ 施放技能/喊话内容: + +
+
+
+ + + +
+

宏模板:

+

+ 1. 每次重新选择完宏命令/判断条件之后,点击《组合条件到宏模板》按钮把所选选项放入宏模板中,可以多次选择,多次放入。
+ 2. 技能将按照每一行,顺序执行。
+ 3. 当前行的组合条件,条件符合则施放,不符合,继续下一行组合条件判定。
+ 4. 以下宏模板可以手动修改。
+ 5. 如果需要显示图标等信息,需要在开头加上: #showtooltip。
+

+ +
+ +
+
+ {{template "common_footer"}} +
+


+ + + \ No newline at end of file diff --git a/public/html/macro60_tool/macro60_ctSequence.html b/public/html/macro60_tool/macro60_ctSequence.html new file mode 100644 index 0000000..02726cf --- /dev/null +++ b/public/html/macro60_tool/macro60_ctSequence.html @@ -0,0 +1,148 @@ + + + + {{template "macro60_head_script" .}} + + +{{template "macro60_header"}} + +
+
+
+ +
+
+ + +
+
+ + + + + + + + + + + + + + + +
#宏文本描述信息
${item1.id}$
+
+
+ {{template "common_footer"}} +
+ + + \ No newline at end of file diff --git a/public/html/macro60_tool/macro60_head_script.html b/public/html/macro60_tool/macro60_head_script.html new file mode 100644 index 0000000..992dde5 --- /dev/null +++ b/public/html/macro60_tool/macro60_head_script.html @@ -0,0 +1,13 @@ +{{define "macro60_head_script"}} + 落叶的记录 + + + + + + + + +{{end}} \ No newline at end of file diff --git a/public/html/macro60_tool/macro60_header.html b/public/html/macro60_tool/macro60_header.html new file mode 100644 index 0000000..5db41ed --- /dev/null +++ b/public/html/macro60_tool/macro60_header.html @@ -0,0 +1,37 @@ +{{define "macro60_header"}} + + +{{end}} \ No newline at end of file diff --git a/public/html/macro60_tool/macro60_home.html b/public/html/macro60_tool/macro60_home.html new file mode 100644 index 0000000..1eeb11c --- /dev/null +++ b/public/html/macro60_tool/macro60_home.html @@ -0,0 +1,143 @@ + + + + {{template "macro60_head_script" .}} + + +{{template "macro60_header"}} + +
+
+ {{template "common_notice"}} +
+

宏工具

+

+ 欢迎使用宏制作及分享工具! +



+

+ 本工具旨在提供魔兽世界宏命令创建及收集、分享的平台,在这儿,你可以使用工具创建属于自己的宏命令;也可以将自己喜爱的宏分享到平台上,供所有的玩家使用;同时,还可以查看、修改其他可爱的玩家分享的宏,并且可以应用到自己的游戏中去!
+ 另外,本工具也提供魔兽世界宏命令资料的分享及基础的教学,你可以学到基础的知识,并应用到自己的游戏中。 +

+
+

+
+
+

1. 宏是什么?

+

+ 在魔兽世界中,宏是一种通过一次按键完成多个动作的方法。
+ 它可以将多个技能或者使用物品绑定到一个按钮上,通过按键或鼠标点击触发。这可以让你一次施放几个技能,避免一个技能一个技能的去点击,同时,通过绑定多个技能到一个按钮,也可以节省按钮栏位。
+ 不过,需要注意的是,绑定的多个技能不能有公共冷却时间,否则,后续的技能是不能施放的。 +

+
+ +
+

2. 宏怎么写?

+

+ 一般宏命令以#showtooltip开头,这个命令可以让你的按钮显示技能的说明和技能的图标。
+ 然后,在第二行开始加入你想要施放的技能,或者你想要使用的物品。
+ 比如: +

+
+ #showtooltip
+ /cast 意气风发 +
+

+ 如果你想要使用多个技能或者物品,可以添加多行来实现,比如: +

+
+ #showtooltip
+ /cast 意气风发
+ /cast 部落军旗
+ /cast 灵魂石
+
+

+ 但是,一定要注意,多个技能或者物品在组合时,不能把会触发公共冷却时间的技能放在中间,你可以将顺发技能或物品放在前面,最后一个放一个会触发公共冷却时间的技能(只能放一个,且放在最后,否则,该技能后面的所有技能都不会施放成功)。
+ 比如: +

+
+ #showtooltip
+ /cast 杀戮
+ /cast 意气风发
+ /cast 部落军旗
+ /cast 灵魂石
+
+

+ 以上第一个技能:杀戮,会触发公共冷却时间,施放该技能后,动作条上的大部分技能都会有大概1秒左右的冷却时间,也就是图标在转圈,转圈结束前,其他技能点击都不会施放,图标转圈的这些技能就是有公共冷却时间的技能,这些技能就不能同时绑定在一起。比如上面的技能:意气风发,宏命令执行到这儿时,判定该技能处于公共冷却时间中,不能施放,那么整个宏就停止执行了。
+ 其他那些图标没有转圈的技能(基本都是顺发技能和饰品),是可以随意组合的。
+ 我们修改一下以上组合,只保留一个有公共冷却时间的,其他的技能顺序可以随意组合,比如: +

+
+ #showtooltip
+ /cast 部落军旗
+ /cast 灵魂石
+ /cast 意气风发
+
+

+ 另外,多个有公共冷却时间的技能也可以使用/castsequence命令组合,命令字面意思就是,按顺序施放,也就是说多个技能每次点击只能施放一个,并且施放顺序是宏命令设定的顺序。
+ 比如: +

+
+ #showtooltip
+ /castsequence reset=20 狂野怒火,杀戮,倒刺射击,眼镜蛇射击 +
+

+ 以上技能,按顺序执行,第一次点击施放:狂野怒火,再次点击,就施放:杀戮,一直到执行完所有技能,才会重置顺序,跳转到第一个技能重新开始。
+ 需要注意的是,如果某个技能处于冷却时间中,那么依次执行到该技能时,你点击宏命令,此时该技能是不能被执行的,所以/castsequence宏命令会一直卡在这个技能这儿,直到它冷却完成,可以被施放,才会调到下一个技能。
+ 另外,reset=20的意思是,在你最后依次点击宏命令之后,20秒内都没有再次点击,那么/castsequence宏命令会自动重置到第一个技能处,重新开始顺序执行,每点击依次,执行几个技能。 +

+
+
+
+

3. 什么是命令条件语?

+

+ 命令条件语是插入在宏命令中,使宏根据条件执行不同功能的语句。举个例子,下面这 个宏的作用是,如果是友方目标就施放回春术,如果是敌方目标就施放月火术。 +

+
+ #showtooltip
+ /cast [help]回春术;[harm]月火术 +
+

+ 当这个宏执行时,首先检查[help]条件,判断当前目标是否是一个可以接受治 + 疗/增益法术的目标。如果[help]条件成立,那么就施放"回春术"并执行下一条命令,否则(即没有目标,或目标不接受有益技能)继续执行下一个子句,也就是分号后[harm]那里,再判断[harm]条件。[harm]条件和[help]条件相反,判断目标是否接受敌对法术。同上,如果条件成立就释放“月火术”并执行下 + 一条命令。如果条件不成立,由于后面没有其他子句,这条宏命令就算执行完了,但是什么动作都没有做。
+ 注:如果没有写[harm]条件,实际运行效果是差不多的。不过,如果你没有目标或者当前目标 不接受任何法术,那么屏幕上将会出现错误信息,或者对于某些技能,鼠标将会变成选择施放目标的状态。 +

+
+
+

4. 怎么使用宏?

+

+ 把你写好的宏复制一下,然后打开游戏,在聊天框输入/m,或者按ESC,点击”宏命令设置”,新建一个宏,粘贴进去之后,把新建的宏拖动到动作条上就可以使用了!
+ 首先,打开你的宏窗口:单击主菜单上的“宏”按钮,或者在聊天界面中输入/macro(/m)回车。在宏窗口的顶端,可以看见两个标签:“通用宏”和"你的角色名"的专用宏”。通用宏被存储在账号专有的文件夹中,被所有角色共享。而角色专用宏则存储在角色自己的文件夹下,是角色专用的。 + 在标签下面是18个存放宏的栏位。再往下是一个栏位,用于显示当前选中的宏;还有一个“修改名称/图标”的按钮,用于修改选中的宏。然后是一个用于显示、编辑当前宏的文本框。
+ 现在,把你写好的宏复制一下,新建一个宏,把文本粘贴进去之后,点击保存,然 后把新建的宏拖动到动作条上就可以使用了! +

+

+ 由于宏命令较多,此处只选取了其中两个做了简单的介绍,如果需要查看和使用更多的宏命令,请查看手动组合
+ 如果需要更深入的学习,那么可以去宏资料,那里有许多资料和工具能够帮助到你! +

+

+ 以下是当前客户端中常用的安全化命令的列表(如果需要查看和使用更多的宏命令,请查看手动组合):
+ #showtooltip -- 显示技能图标及描述
+ /assisti -- 协助
+ /cancelaura -- 取消技能
+ /cast -- 施放技能
+ /castsequence -- 按顺序施放技能
+ /clearfocus -- 清除设置的焦点
+ /cleartarget -- 清除当前目标
+ /equip -- 装备物品
+ /focus -- 设置焦点
+ /startattack -- 开始攻击
+ /stopattack -- 停止攻击
+ /stopcasting -- 停止施放动作
+ /stopmacro -- 停止执行宏命令
+ /swapactionbar -- 切换动作条
+ /target -- 设置目标
+ /targetenemy -- 设置最近的敌人为目标
+ /use -- 使用物品
+

+
+
+ {{template "common_footer"}} +
+ + \ No newline at end of file diff --git a/public/html/macro60_tool/macro60_info.html b/public/html/macro60_tool/macro60_info.html new file mode 100644 index 0000000..8b51033 --- /dev/null +++ b/public/html/macro60_tool/macro60_info.html @@ -0,0 +1,32 @@ + + + + {{template "macro60_head_script" .}} + + +{{template "macro60_header"}} + +
+ + {{template "common_footer"}} +
+
+
+ + \ No newline at end of file diff --git a/public/html/macro60_tool/macro60_list.html b/public/html/macro60_tool/macro60_list.html new file mode 100644 index 0000000..c5eaed6 --- /dev/null +++ b/public/html/macro60_tool/macro60_list.html @@ -0,0 +1,208 @@ + + + + {{template "macro60_head_script" .}} + + +{{template "macro60_header"}} + +
+
+
+
+ + +
+ +
+ + + + + + + + + + + + + + + + + +
宏模板
+

作者:${select_macro.author}$

+

标题:${select_macro.title}$

+
+ +
+
+
+ +
+ +
+
+ {{template "common_footer"}} +
+


+ + + \ No newline at end of file diff --git a/public/html/macro60_tool/macro60_precreate.html b/public/html/macro60_tool/macro60_precreate.html new file mode 100644 index 0000000..87ac3ce --- /dev/null +++ b/public/html/macro60_tool/macro60_precreate.html @@ -0,0 +1,235 @@ + + + + {{template "macro60_head_script" .}} + + +{{template "macro60_header"}} + +
+
+
+ + +
+
+ + +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
#宏文本描述信息
${item1.id}$
${item2.id}$ +
${item2.text}$
+
${item2.desc}$
+
+
+ {{template "common_footer"}} +
+ + + \ No newline at end of file diff --git a/public/html/macro60_tool/macro60_share.html b/public/html/macro60_tool/macro60_share.html new file mode 100644 index 0000000..1218ccf --- /dev/null +++ b/public/html/macro60_tool/macro60_share.html @@ -0,0 +1,129 @@ + + + + {{template "macro60_head_script" .}} + + +{{template "macro60_header"}} + +
+
+
+
+ +
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+
+
+ {{template "common_footer"}} +
+

+ + + \ No newline at end of file diff --git a/public/html/macro60_tool/macro60_verify.html b/public/html/macro60_tool/macro60_verify.html new file mode 100644 index 0000000..32f047d --- /dev/null +++ b/public/html/macro60_tool/macro60_verify.html @@ -0,0 +1,113 @@ + + + + {{template "macro60_head_script" .}} + + +{{template "macro60_header"}} + +
+
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + +
状态宏模板操作
+ + + +
+
+
+ {{template "common_footer"}} +
+ + + \ No newline at end of file diff --git a/public/html/macro_tool/macro_byHand.html b/public/html/macro_tool/macro_byHand.html new file mode 100644 index 0000000..1d85d51 --- /dev/null +++ b/public/html/macro_tool/macro_byHand.html @@ -0,0 +1,268 @@ + + + + {{template "macro_head_script" .}} + + +{{template "macro_header"}} + +
+
+
+ +
+
+

动作命令:

+
+
+ +
+
+
+ +
+

判断条件:

+
+
+ +
+
+
+
+
+ 施放技能/喊话内容: + +
+
+
+ + + +
+

宏模板:

+

+ 1. 每次重新选择完宏命令/判断条件之后,点击《组合条件到宏模板》按钮把所选选项放入宏模板中,可以多次选择,多次放入。
+ 2. 技能将按照每一行,顺序执行。
+ 3. 当前行的组合条件,条件符合则施放,不符合,继续下一行组合条件判定。
+ 4. 以下宏模板可以手动修改。
+ 5. 如果需要显示图标等信息,需要在开头加上: #showtooltip。
+

+ +
+ +
+
+ {{template "common_footer"}} +
+


+ + + \ No newline at end of file diff --git a/public/html/macro_tool/macro_by_hand.html b/public/html/macro_tool/macro_by_hand.html new file mode 100644 index 0000000..39d0797 --- /dev/null +++ b/public/html/macro_tool/macro_by_hand.html @@ -0,0 +1,268 @@ + + + + 宏工具-手动组合 + {{template "macro_head_script" .}} + + +{{template "macro_header"}} + +
+
+
+ +
+
+

动作命令:

+
+
+ +
+
+
+ +
+

判断条件:

+
+
+ +
+
+
+
+
+ 施放技能/喊话内容: + +
+
+
+ + + +
+

宏模板:

+

+ 1. 每次重新选择完宏命令/判断条件之后,点击《组合条件到宏模板》按钮把所选选项放入宏模板中,可以多次选择,多次放入。
+ 2. 技能将按照每一行,顺序执行。
+ 3. 当前行的组合条件,条件符合则施放,不符合,继续下一行组合条件判定。
+ 4. 以下宏模板可以手动修改。
+ 5. 如果需要显示图标等信息,需要在开头加上: #showtooltip。
+

+ +
+ +
+
+
+


+ + + \ No newline at end of file diff --git a/public/html/macro_tool/macro_combineSkills.html b/public/html/macro_tool/macro_combineSkills.html new file mode 100644 index 0000000..50b0e45 --- /dev/null +++ b/public/html/macro_tool/macro_combineSkills.html @@ -0,0 +1,105 @@ + + + + {{template "macro_head_script" .}} + + + +{{template "macro_header"}} + +
+
+

组合多个技能到一个键位,节省键位,条件需要的,则输入技能,不需要的保留空。

+

注意:技能名称一定不要填错!!!可以在游戏中按P键查看具体的技能名称!

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

+	
+


+ {{template "common_footer"}} +
+


+ + + \ No newline at end of file diff --git a/public/html/macro_tool/macro_ctSequence.html b/public/html/macro_tool/macro_ctSequence.html new file mode 100644 index 0000000..2618439 --- /dev/null +++ b/public/html/macro_tool/macro_ctSequence.html @@ -0,0 +1,148 @@ + + + + {{template "macro_head_script" .}} + + +{{template "macro_header"}} + +
+
+
+ +
+
+ + +
+
+ + + + + + + + + + + + + + + +
#宏文本描述信息
${item1.id}$
+
+
+ {{template "common_footer"}} +
+ + + \ No newline at end of file diff --git a/public/html/macro_tool/macro_ct_sequence.html b/public/html/macro_tool/macro_ct_sequence.html new file mode 100644 index 0000000..ad0c080 --- /dev/null +++ b/public/html/macro_tool/macro_ct_sequence.html @@ -0,0 +1,148 @@ + + + + 宏工具-技能循环 + {{template "macro_head_script" .}} + + +{{template "macro_header"}} + +
+
+
+ +
+
+ + +
+
+ + + + + + + + + + + + + + + +
#宏文本描述信息
${item1.id}$
+
+
+
+ + + \ No newline at end of file diff --git a/public/html/macro_tool/macro_head_script.html b/public/html/macro_tool/macro_head_script.html new file mode 100644 index 0000000..3993c31 --- /dev/null +++ b/public/html/macro_tool/macro_head_script.html @@ -0,0 +1,13 @@ +{{define "macro_head_script"}} + 落叶的记录 + + + + + + + + +{{end}} \ No newline at end of file diff --git a/public/html/macro_tool/macro_header.html b/public/html/macro_tool/macro_header.html new file mode 100644 index 0000000..a8656ca --- /dev/null +++ b/public/html/macro_tool/macro_header.html @@ -0,0 +1,40 @@ +{{define "macro_header"}} + + +{{end}} \ No newline at end of file diff --git a/public/html/macro_tool/macro_home.html b/public/html/macro_tool/macro_home.html new file mode 100644 index 0000000..339af24 --- /dev/null +++ b/public/html/macro_tool/macro_home.html @@ -0,0 +1,140 @@ + + + + {{template "macro_head_script" .}} + + +{{template "macro_header"}} + +
+
+ {{template "common_notice"}} +
+

宏工具

+

+ 欢迎使用宏制作及分享工具! +



+

+ 本工具旨在提供魔兽世界宏命令创建及收集、分享的平台,在这儿,你可以使用工具创建属于自己的宏命令;也可以将自己喜爱的宏分享到平台上,供所有的玩家使用;同时,还可以查看、修改其他可爱的玩家分享的宏,并且可以应用到自己的游戏中去!
+ 另外,本工具也提供魔兽世界宏命令资料的分享及基础的教学,你可以学到基础的知识,并应用到自己的游戏中。 +

+
+

+
+
+

1. 宏是什么?

+

+ 在魔兽世界中,宏是一种通过一次按键完成多个动作的方法。
+ 它可以将多个技能或者使用物品绑定到一个按钮上,通过按键或鼠标点击触发。这可以让你一次施放几个技能,避免一个技能一个技能的去点击,同时,通过绑定多个技能到一个按钮,也可以节省按钮栏位。
+ 不过,需要注意的是,绑定的多个技能不能有公共冷却时间,否则,后续的技能是不能施放的。 +

+
+ +
+

2. 宏怎么写?

+

+ 一般宏命令以#showtooltip开头,这个命令可以让你的按钮显示技能的说明和技能的图标。
+ 然后,在第二行开始加入你想要施放的技能,或者你想要使用的物品。
+ 比如: +

+
+ #showtooltip
+ /cast 意气风发 +
+

+ 如果你想要使用多个技能或者物品,可以添加多行来实现,比如: +

+
+ #showtooltip
+ /cast 意气风发
+ /cast 部落军旗
+ /cast 灵魂石
+
+

+ 但是,一定要注意,多个技能或者物品在组合时,不能把会触发公共冷却时间的技能放在中间,你可以将顺发技能或物品放在前面,最后一个放一个会触发公共冷却时间的技能(只能放一个,且放在最后,否则,该技能后面的所有技能都不会施放成功)。
+ 比如: +

+
+ #showtooltip
+ /cast 杀戮
+ /cast 意气风发
+ /cast 部落军旗
+ /cast 灵魂石
+
+

+ 以上第一个技能:杀戮,会触发公共冷却时间,施放该技能后,动作条上的大部分技能都会有大概1秒左右的冷却时间,也就是图标在转圈,转圈结束前,其他技能点击都不会施放,图标转圈的这些技能就是有公共冷却时间的技能,这些技能就不能同时绑定在一起。比如上面的技能:意气风发,宏命令执行到这儿时,判定该技能处于公共冷却时间中,不能施放,那么整个宏就停止执行了。
+ 其他那些图标没有转圈的技能(基本都是顺发技能和饰品),是可以随意组合的。
+ 我们修改一下以上组合,只保留一个有公共冷却时间的,其他的技能顺序可以随意组合,比如: +

+
+ #showtooltip
+ /cast 部落军旗
+ /cast 灵魂石
+ /cast 意气风发
+
+

+ 另外,多个有公共冷却时间的技能也可以使用/castsequence命令组合,命令字面意思就是,按顺序施放,也就是说多个技能每次点击只能施放一个,并且施放顺序是宏命令设定的顺序。
+ 比如: +

+
+ #showtooltip
+ /castsequence reset=20 狂野怒火,杀戮,倒刺射击,眼镜蛇射击 +
+

+ 以上技能,按顺序执行,第一次点击施放:狂野怒火,再次点击,就施放:杀戮,一直到执行完所有技能,才会重置顺序,跳转到第一个技能重新开始。
+ 需要注意的是,如果某个技能处于冷却时间中,那么依次执行到该技能时,你点击宏命令,此时该技能是不能被执行的,所以/castsequence宏命令会一直卡在这个技能这儿,直到它冷却完成,可以被施放,才会调到下一个技能。
+ 另外,reset=20的意思是,在你最后依次点击宏命令之后,20秒内都没有再次点击,那么/castsequence宏命令会自动重置到第一个技能处,重新开始顺序执行,每点击依次,执行几个技能。 +

+
+
+
+

3. 什么是命令条件语?

+

+ 命令条件语是插入在宏命令中,使宏根据条件执行不同功能的语句。举个例子,下面这 个宏的作用是,如果是友方目标就施放回春术,如果是敌方目标就施放月火术。 +

+
+ #showtooltip
+ /cast [help]回春术;[harm]月火术 +
+

+ 当这个宏执行时,首先检查[help]条件,判断当前目标是否是一个可以接受治 疗/增益法术的目标。如果[help]条件成立,那么就施放"回春术"并执行下一条命令,否则(即没有目标,或目标不接受有益技能)继续执行下一个子句,也就是分号后[harm]那里,再判断[harm]条件。[harm]条件和[help]条件相反,判断目标是否接受敌对法术。同上,如果条件成立就释放“月火术”并执行下 一条命令。如果条件不成立,由于后面没有其他子句,这条宏命令就算执行完了,但是什么动作都没有做。
+ 注:如果没有写[harm]条件,实际运行效果是差不多的。不过,如果你没有目标或者当前目标 不接受任何法术,那么屏幕上将会出现错误信息,或者对于某些技能,鼠标将会变成选择施放目标的状态。 +

+
+
+

4. 怎么使用宏?

+

+ 把你写好的宏复制一下,然后打开游戏,在聊天框输入/m,或者按ESC,点击”宏命令设置”,新建一个宏,粘贴进去之后,把新建的宏拖动到动作条上就可以使用了!
+ 首先,打开你的宏窗口:单击主菜单上的“宏”按钮,或者在聊天界面中输入/macro(/m)回车。在宏窗口的顶端,可以看见两个标签:“通用宏”和"你的角色名"的专用宏”。通用宏被存储在账号专有的文件夹中,被所有角色共享。而角色专用宏则存储在角色自己的文件夹下,是角色专用的。 在标签下面是18个存放宏的栏位。再往下是一个栏位,用于显示当前选中的宏;还有一个“修改名称/图标”的按钮,用于修改选中的宏。然后是一个用于显示、编辑当前宏的文本框。
+ 现在,把你写好的宏复制一下,新建一个宏,把文本粘贴进去之后,点击保存,然 后把新建的宏拖动到动作条上就可以使用了! +

+

+ 由于宏命令较多,此处只选取了其中两个做了简单的介绍,如果需要查看和使用更多的宏命令,请查看手动组合
+ 如果需要更深入的学习,那么可以去宏资料,那里有许多资料和工具能够帮助到你! +

+

+ 以下是当前客户端中常用的安全化命令的列表(如果需要查看和使用更多的宏命令,请查看手动组合):
+#showtooltip -- 显示技能图标及描述
+/assisti -- 协助
+/cancelaura -- 取消技能
+/cast -- 施放技能
+/castsequence -- 按顺序施放技能
+/clearfocus -- 清除设置的焦点
+/cleartarget -- 清除当前目标
+/equip -- 装备物品
+/focus -- 设置焦点
+/startattack -- 开始攻击
+/stopattack -- 停止攻击
+/stopcasting -- 停止施放动作
+/stopmacro -- 停止执行宏命令
+/swapactionbar -- 切换动作条
+/target -- 设置目标
+/targetenemy -- 设置最近的敌人为目标
+/use -- 使用物品
+

+
+
+ {{template "common_footer"}} +
+ + \ No newline at end of file diff --git a/public/html/macro_tool/macro_index.html b/public/html/macro_tool/macro_index.html new file mode 100644 index 0000000..5fe609c --- /dev/null +++ b/public/html/macro_tool/macro_index.html @@ -0,0 +1,139 @@ + + + + 宏工具 + {{template "macro_head_script" .}} + + +{{template "macro_header"}} + +
+
+
+

宏工具

+

+ 欢迎使用宏制作及分享工具! +



+

+ 本工具旨在提供魔兽世界宏命令创建及收集、分享的平台,在这儿,你可以使用工具创建属于自己的宏命令;也可以将自己喜爱的宏分享到平台上,供所有的玩家使用;同时,还可以查看、修改其他可爱的玩家分享的宏,并且可以应用到自己的游戏中去!
+ 另外,本工具也提供魔兽世界宏命令资料的分享及基础的教学,你可以学到基础的知识,并应用到自己的游戏中。 +

+
+

+
+
+

1. 宏是什么?

+

+ 在魔兽世界中,宏是一种通过一次按键完成多个动作的方法。
+ 它可以将多个技能或者使用物品绑定到一个按钮上,通过按键或鼠标点击触发。这可以让你一次施放几个技能,避免一个技能一个技能的去点击,同时,通过绑定多个技能到一个按钮,也可以节省按钮栏位。
+ 不过,需要注意的是,绑定的多个技能不能有公共冷却时间,否则,后续的技能是不能施放的。 +

+
+ +
+

2. 宏怎么写?

+

+ 一般宏命令以#showtooltip开头,这个命令可以让你的按钮显示技能的说明和技能的图标。
+ 然后,在第二行开始加入你想要施放的技能,或者你想要使用的物品。
+ 比如: +

+
+ #showtooltip
+ /cast 意气风发 +
+

+ 如果你想要使用多个技能或者物品,可以添加多行来实现,比如: +

+
+ #showtooltip
+ /cast 意气风发
+ /cast 部落军旗
+ /cast 灵魂石
+
+

+ 但是,一定要注意,多个技能或者物品在组合时,不能把会触发公共冷却时间的技能放在中间,你可以将顺发技能或物品放在前面,最后一个放一个会触发公共冷却时间的技能(只能放一个,且放在最后,否则,该技能后面的所有技能都不会施放成功)。
+ 比如: +

+
+ #showtooltip
+ /cast 杀戮
+ /cast 意气风发
+ /cast 部落军旗
+ /cast 灵魂石
+
+

+ 以上第一个技能:杀戮,会触发公共冷却时间,施放该技能后,动作条上的大部分技能都会有大概1秒左右的冷却时间,也就是图标在转圈,转圈结束前,其他技能点击都不会施放,图标转圈的这些技能就是有公共冷却时间的技能,这些技能就不能同时绑定在一起。比如上面的技能:意气风发,宏命令执行到这儿时,判定该技能处于公共冷却时间中,不能施放,那么整个宏就停止执行了。
+ 其他那些图标没有转圈的技能(基本都是顺发技能和饰品),是可以随意组合的。
+ 我们修改一下以上组合,只保留一个有公共冷却时间的,其他的技能顺序可以随意组合,比如: +

+
+ #showtooltip
+ /cast 部落军旗
+ /cast 灵魂石
+ /cast 意气风发
+
+

+ 另外,多个有公共冷却时间的技能也可以使用/castsequence命令组合,命令字面意思就是,按顺序施放,也就是说多个技能每次点击只能施放一个,并且施放顺序是宏命令设定的顺序。
+ 比如: +

+
+ #showtooltip
+ /castsequence reset=20 狂野怒火,杀戮,倒刺射击,眼镜蛇射击 +
+

+ 以上技能,按顺序执行,第一次点击施放:狂野怒火,再次点击,就施放:杀戮,一直到执行完所有技能,才会重置顺序,跳转到第一个技能重新开始。
+ 需要注意的是,如果某个技能处于冷却时间中,那么依次执行到该技能时,你点击宏命令,此时该技能是不能被执行的,所以/castsequence宏命令会一直卡在这个技能这儿,直到它冷却完成,可以被施放,才会调到下一个技能。
+ 另外,reset=20的意思是,在你最后依次点击宏命令之后,20秒内都没有再次点击,那么/castsequence宏命令会自动重置到第一个技能处,重新开始顺序执行,每点击依次,执行几个技能。 +

+
+
+
+

3. 什么是命令条件语?

+

+ 命令条件语是插入在宏命令中,使宏根据条件执行不同功能的语句。举个例子,下面这 个宏的作用是,如果是友方目标就施放回春术,如果是敌方目标就施放月火术。 +

+
+ #showtooltip
+ /cast [help]回春术;[harm]月火术 +
+

+ 当这个宏执行时,首先检查[help]条件,判断当前目标是否是一个可以接受治 疗/增益法术的目标。如果[help]条件成立,那么就施放"回春术"并执行下一条命令,否则(即没有目标,或目标不接受有益技能)继续执行下一个子句,也就是分号后[harm]那里,再判断[harm]条件。[harm]条件和[help]条件相反,判断目标是否接受敌对法术。同上,如果条件成立就释放“月火术”并执行下 一条命令。如果条件不成立,由于后面没有其他子句,这条宏命令就算执行完了,但是什么动作都没有做。
+ 注:如果没有写[harm]条件,实际运行效果是差不多的。不过,如果你没有目标或者当前目标 不接受任何法术,那么屏幕上将会出现错误信息,或者对于某些技能,鼠标将会变成选择施放目标的状态。 +

+
+
+

4. 怎么使用宏?

+

+ 把你写好的宏复制一下,然后打开游戏,在聊天框输入/m,或者按ESC,点击”宏命令设置”,新建一个宏,粘贴进去之后,把新建的宏拖动到动作条上就可以使用了!
+ 首先,打开你的宏窗口:单击主菜单上的“宏”按钮,或者在聊天界面中输入/macro(/m)回车。在宏窗口的顶端,可以看见两个标签:“通用宏”和"你的角色名"的专用宏”。通用宏被存储在账号专有的文件夹中,被所有角色共享。而角色专用宏则存储在角色自己的文件夹下,是角色专用的。 在标签下面是18个存放宏的栏位。再往下是一个栏位,用于显示当前选中的宏;还有一个“修改名称/图标”的按钮,用于修改选中的宏。然后是一个用于显示、编辑当前宏的文本框。
+ 现在,把你写好的宏复制一下,新建一个宏,把文本粘贴进去之后,点击保存,然 后把新建的宏拖动到动作条上就可以使用了! +

+

+ 由于宏命令较多,此处只选取了其中两个做了简单的介绍,如果需要查看和使用更多的宏命令,请查看手动组合
+ 如果需要更深入的学习,那么可以去宏资料,那里有许多资料和工具能够帮助到你! +

+

+ 以下是当前客户端中常用的安全化命令的列表(如果需要查看和使用更多的宏命令,请查看手动组合):
+#showtooltip -- 显示技能图标及描述
+/assisti -- 协助
+/cancelaura -- 取消技能
+/cast -- 施放技能
+/castsequence -- 按顺序施放技能
+/clearfocus -- 清除设置的焦点
+/cleartarget -- 清除当前目标
+/equip -- 装备物品
+/focus -- 设置焦点
+/startattack -- 开始攻击
+/stopattack -- 停止攻击
+/stopcasting -- 停止施放动作
+/stopmacro -- 停止执行宏命令
+/swapactionbar -- 切换动作条
+/target -- 设置目标
+/targetenemy -- 设置最近的敌人为目标
+/use -- 使用物品
+

+
+
+
+ + \ No newline at end of file diff --git a/public/html/macro_tool/macro_info.html b/public/html/macro_tool/macro_info.html new file mode 100644 index 0000000..1c1bc3b --- /dev/null +++ b/public/html/macro_tool/macro_info.html @@ -0,0 +1,52 @@ + + + + {{template "macro_head_script" .}} + + +{{template "macro_header"}} + +
+ + +
+

楼主开发的PVP插件:

+ +
+
+
+ {{template "common_footer"}} +
+
+
+ + \ No newline at end of file diff --git a/public/html/macro_tool/macro_list.html b/public/html/macro_tool/macro_list.html new file mode 100644 index 0000000..fe9a1fe --- /dev/null +++ b/public/html/macro_tool/macro_list.html @@ -0,0 +1,159 @@ + + + + {{template "macro_head_script" .}} + + + +{{template "macro_header"}} + +
+
+
+

注意:每个版本技能名称都可能被暴雪更改,故以下宏命令中的技能需要自己替换成最新的技能名称,游戏中按P键查看技能名称,注意大小括号、逗号、分号等符号的半角全角问题。

+
+
+ + +
+
+ + + + + + + + + + + + + + + + + +
宏模板
+

作者:${select_macro.author}$

+

标题:${select_macro.title}$

+
+ +
+
+ +
+ +
+
+ {{template "common_footer"}} +
+


+ + + \ No newline at end of file diff --git a/public/html/macro_tool/macro_precreate.html b/public/html/macro_tool/macro_precreate.html new file mode 100644 index 0000000..f7498f0 --- /dev/null +++ b/public/html/macro_tool/macro_precreate.html @@ -0,0 +1,221 @@ + + + + {{template "macro_head_script" .}} + + +{{template "macro_header"}} + +
+
+
+ + +
+
+ + +
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
#宏文本描述信息
${item1.id}$
${item2.id}$ +
${item2.text}$
+
${item2.desc}$
+
+
+ {{template "common_footer"}} +
+ + + \ No newline at end of file diff --git a/public/html/macro_tool/macro_share.html b/public/html/macro_tool/macro_share.html new file mode 100644 index 0000000..12c8800 --- /dev/null +++ b/public/html/macro_tool/macro_share.html @@ -0,0 +1,128 @@ + + + + {{template "macro_head_script" .}} + + +{{template "macro_header"}} + +
+
+
+
+ +
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+
+
+ {{template "common_footer"}} +
+

+ + + \ No newline at end of file diff --git a/public/html/macro_tool/macro_verify.html b/public/html/macro_tool/macro_verify.html new file mode 100644 index 0000000..d45aef9 --- /dev/null +++ b/public/html/macro_tool/macro_verify.html @@ -0,0 +1,104 @@ + + + + {{template "macro_head_script" .}} + + +{{template "macro_header"}} + +
+
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + +
状态宏模板操作
+ + + +
+
+
+ {{template "common_footer"}} +
+ + + \ No newline at end of file diff --git a/public/html/wow_api/api_api.html b/public/html/wow_api/api_api.html new file mode 100644 index 0000000..f30f5cf --- /dev/null +++ b/public/html/wow_api/api_api.html @@ -0,0 +1,38 @@ + + + + {{template "api_head_script" .}} + + +{{template "api_header"}} +
+
+
+ {{template "title"}} +
+ +
+
魔兽世界API
+ + + + {{ template "table"}} +
+
+ {{template "common_footer"}} +
+ + \ No newline at end of file diff --git a/public/html/wow_api/api_detail.html b/public/html/wow_api/api_detail.html new file mode 100644 index 0000000..55b7ea2 --- /dev/null +++ b/public/html/wow_api/api_detail.html @@ -0,0 +1,111 @@ + + + + {{template "api_head_script" .}} + + + +{{template "api_header"}} +
+
+
+ + + + + +
+
+ +
+
+
+
+
+ 中文名称: + +
+
+ +
+
+ 详情: + +
+
+
+
+ 详情: +
+
+
+
+ {{template "common_footer"}} +
+

+ + + \ No newline at end of file diff --git a/public/html/wow_api/api_event.html b/public/html/wow_api/api_event.html new file mode 100644 index 0000000..af8c57e --- /dev/null +++ b/public/html/wow_api/api_event.html @@ -0,0 +1,27 @@ + + + + {{template "api_head_script" .}} + + +{{template "api_header"}} +
+
+
+
事件(Event)
+
+

+ 事件是由WoW客户端发送到UI代码(通过OnEvent脚本处理程序)的消息,主要是对游戏世界中发生的事情的反应。必须在渲染帧之前完成所有脚本执行; 因此,占用时间过长或包含无限循环的事件处理代码将冻结客户端。 + +
此页面列出了插件可用的事件以及简要说明; 个别活动页面上可能会提供更详细的信息。有关在插件中设置事件处理的一般教程,请参阅处理事件和Frame:RegisterEvent方法。 +

+
+ + + {{template "table"}} +
+
+ {{template "common_footer"}} +
+ + \ No newline at end of file diff --git a/public/html/wow_api/api_head_script.html b/public/html/wow_api/api_head_script.html new file mode 100644 index 0000000..68a00fd --- /dev/null +++ b/public/html/wow_api/api_head_script.html @@ -0,0 +1,23 @@ +{{define "api_head_script"}} + 落叶的记录 + + + + + + +{{end}} \ No newline at end of file diff --git a/public/html/wow_api/api_header.html b/public/html/wow_api/api_header.html new file mode 100644 index 0000000..3da131e --- /dev/null +++ b/public/html/wow_api/api_header.html @@ -0,0 +1,54 @@ +{{define "api_header"}} + + +{{end}} \ No newline at end of file diff --git a/public/html/wow_api/api_home.html b/public/html/wow_api/api_home.html new file mode 100644 index 0000000..1b01c81 --- /dev/null +++ b/public/html/wow_api/api_home.html @@ -0,0 +1,32 @@ + + + + {{template "api_head_script" .}} + + +{{template "api_header"}} +
+
+ {{template "common_notice"}} +
+
魔兽世界API
+
+

+ 在魔兽API的世界,或魔兽API,是一组由暴雪提供的功能进行交互和修改魔兽世界通过使用插件和宏的界面和行为。以下功能列表不完整,并按用户贡献保持最新; 您可能还对手动更新的最新实时客户端中存在的所有API函数的详尽列表感兴趣。 + 如果您正在考虑提供文档,请阅读如何编辑API页面。总结:根据需要更新此页面(和链接的页面),讨论“ 讨论”页面上的任何大规模更改,并且不要创建空的存根页面。 + 此列表中的函数名称以下列标记为前缀: +

+
    +
  • PROTECTED - 只能从安全代码调用此函数。请参阅受保护的功能类别。
  • +
  • NOCOMBAT - 在战斗中无法从不安全的代码调用此函数。
  • +
  • HW - 只能响应硬件事件(来自OnClick处理程序)调用此函数。
  • +
  • UI - 此函数在Lua(在FrameXML中)中实现,但被认为足够重要,可以在此处显示。
  • +
  • REMOVED - 此功能已从魔兽世界API中删除(并将在大约一个月内从此列表中删除)。出于历史目的,请参阅“已删除的函数”类别。
  • +
+
+
+
+ {{template "common_footer"}} +
+ + \ No newline at end of file diff --git a/public/html/wow_api/api_index.html b/public/html/wow_api/api_index.html new file mode 100644 index 0000000..19a367a --- /dev/null +++ b/public/html/wow_api/api_index.html @@ -0,0 +1,31 @@ + + + + WoW API + {{template "api_head_script" .}} + + +{{template "api_header"}} +
+
+
+
魔兽世界API
+
+

+ 在魔兽API的世界,或魔兽API,是一组由暴雪提供的功能进行交互和修改魔兽世界通过使用插件和宏的界面和行为。以下功能列表不完整,并按用户贡献保持最新; 您可能还对手动更新的最新实时客户端中存在的所有API函数的详尽列表感兴趣。 + 如果您正在考虑提供文档,请阅读如何编辑API页面。总结:根据需要更新此页面(和链接的页面),讨论“ 讨论”页面上的任何大规模更改,并且不要创建空的存根页面。 + 此列表中的函数名称以下列标记为前缀: +

+
    +
  • PROTECTED - 只能从安全代码调用此函数。请参阅受保护的功能类别。
  • +
  • NOCOMBAT - 在战斗中无法从不安全的代码调用此函数。
  • +
  • HW - 只能响应硬件事件(来自OnClick处理程序)调用此函数。
  • +
  • UI - 此函数在Lua(在FrameXML中)中实现,但被认为足够重要,可以在此处显示。
  • +
  • REMOVED - 此功能已从魔兽世界API中删除(并将在大约一个月内从此列表中删除)。出于历史目的,请参阅“已删除的函数”类别。
  • +
+
+
+
+
+ + \ No newline at end of file diff --git a/public/html/wow_api/api_macro.html b/public/html/wow_api/api_macro.html new file mode 100644 index 0000000..06e2a4d --- /dev/null +++ b/public/html/wow_api/api_macro.html @@ -0,0 +1,30 @@ + + + + {{template "api_head_script" .}} + + +{{template "api_header"}} +
+
+
+ {{template "title"}} +
+
+
宏命令
+ + + + {{template "table"}} +
+
+ {{template "common_footer"}} +
+ + \ No newline at end of file diff --git a/public/html/wow_api/api_search_list.html b/public/html/wow_api/api_search_list.html new file mode 100644 index 0000000..3cce9d3 --- /dev/null +++ b/public/html/wow_api/api_search_list.html @@ -0,0 +1,38 @@ + + + + {{template "api_head_script" .}} + + +{{template "api_header"}} +
+
+
+
+
+ {{template "common_footer"}} +
+ + + \ No newline at end of file diff --git a/public/html/wow_api/api_table.html b/public/html/wow_api/api_table.html new file mode 100644 index 0000000..bf4e38f --- /dev/null +++ b/public/html/wow_api/api_table.html @@ -0,0 +1,24 @@ +{{define "table"}} +
+ +
+ + + + + + + + + +
API 名称描述
+ +{{end}} \ No newline at end of file diff --git a/public/html/wow_api/api_title.html b/public/html/wow_api/api_title.html new file mode 100644 index 0000000..8be9cd0 --- /dev/null +++ b/public/html/wow_api/api_title.html @@ -0,0 +1,43 @@ +{{define "title"}} +
+
+ +{{end}} \ No newline at end of file diff --git a/public/html/wow_api/api_widget.html b/public/html/wow_api/api_widget.html new file mode 100644 index 0000000..bb171e4 --- /dev/null +++ b/public/html/wow_api/api_widget.html @@ -0,0 +1,28 @@ + + + + {{template "api_head_script" .}} + + +{{template "api_header"}} +
+
+
+ {{template "title"}} +
+
+
部件 UI API
+
+

+ 这是通过扫描游戏内环境找到的所有Widget API函数的列表。您可能还对各种Widget处理程序感兴趣。 +

+
+ + + {{template "table"}} +
+
+ {{template "common_footer"}} +
+ + \ No newline at end of file diff --git a/public/html/wow_api/api_widgetHandler.html b/public/html/wow_api/api_widgetHandler.html new file mode 100644 index 0000000..a3f2d99 --- /dev/null +++ b/public/html/wow_api/api_widgetHandler.html @@ -0,0 +1,28 @@ + + + + {{template "api_head_script" .}} + + +{{template "api_header"}} +
+
+
+ {{template "title"}} +
+
+
部件处理函数 API
+
+

+ 这是通过扫描游戏内环境找到的所有Widget API函数的列表。您可能还对各种Widget处理程序感兴趣。 +

+
+ + + {{template "table"}} +
+
+ {{template "common_footer"}} +
+ + \ No newline at end of file diff --git a/public/html/wow_api/api_widget_handler.html b/public/html/wow_api/api_widget_handler.html new file mode 100644 index 0000000..d300ffa --- /dev/null +++ b/public/html/wow_api/api_widget_handler.html @@ -0,0 +1,28 @@ + + + + Widget Handler API + {{template "api_head_script" .}} + + +{{template "api_header"}} +
+
+
+ {{template "title"}} +
+
+
部件处理函数 API
+
+

+ 这是通过扫描游戏内环境找到的所有Widget API函数的列表。您可能还对各种Widget处理程序感兴趣。 +

+
+ + + {{template "table"}} +
+
+
+ + \ No newline at end of file diff --git a/public/js/axios.min.js b/public/js/axios.min.js new file mode 100644 index 0000000..d80277d --- /dev/null +++ b/public/js/axios.min.js @@ -0,0 +1,688 @@ +/* axios v0.18.0 | (c) 2018 by Matt Zabriskie */ +!function(e, t) { + "object" == typeof exports && "object" == typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define([], t) : "object" == typeof exports ? exports.axios = t() : e.axios = t() +}(this, function() { + return function(e) { + function t(r) { + if (n[r]) + return n[r].exports; + var o = n[r] = { + exports: {}, + id: r, + loaded: !1 + }; + return e[r].call(o.exports, o, o.exports, t), + o.loaded = !0, + o.exports + } + var n = {}; + return t.m = e, + t.c = n, + t.p = "", + t(0) + }([function(e, t, n) { + e.exports = n(1) + } + , function(e, t, n) { + "use strict"; + function r(e) { + var t = new s(e) + , n = i(s.prototype.request, t); + return o.extend(n, s.prototype, t), + o.extend(n, t), + n + } + var o = n(2) + , i = n(3) + , s = n(5) + , u = n(6) + , a = r(u); + a.Axios = s, + a.create = function(e) { + return r(o.merge(u, e)) + } + , + a.Cancel = n(23), + a.CancelToken = n(24), + a.isCancel = n(20), + a.all = function(e) { + return Promise.all(e) + } + , + a.spread = n(25), + e.exports = a, + e.exports.default = a + } + , function(e, t, n) { + "use strict"; + function r(e) { + return "[object Array]" === R.call(e) + } + function o(e) { + return "[object ArrayBuffer]" === R.call(e) + } + function i(e) { + return "undefined" != typeof FormData && e instanceof FormData + } + function s(e) { + var t; + return t = "undefined" != typeof ArrayBuffer && ArrayBuffer.isView ? ArrayBuffer.isView(e) : e && e.buffer && e.buffer instanceof ArrayBuffer + } + function u(e) { + return "string" == typeof e + } + function a(e) { + return "number" == typeof e + } + function c(e) { + return "undefined" == typeof e + } + function f(e) { + return null !== e && "object" == typeof e + } + function p(e) { + return "[object Date]" === R.call(e) + } + function d(e) { + return "[object File]" === R.call(e) + } + function l(e) { + return "[object Blob]" === R.call(e) + } + function h(e) { + return "[object Function]" === R.call(e) + } + function m(e) { + return f(e) && h(e.pipe) + } + function y(e) { + return "undefined" != typeof URLSearchParams && e instanceof URLSearchParams + } + function w(e) { + return e.replace(/^\s*/, "").replace(/\s*$/, "") + } + function g() { + return ("undefined" == typeof navigator || "ReactNative" !== navigator.product) && ("undefined" != typeof window && "undefined" != typeof document) + } + function v(e, t) { + if (null !== e && "undefined" != typeof e) + if ("object" != typeof e && (e = [e]), + r(e)) + for (var n = 0, o = e.length; n < o; n++) + t.call(null, e[n], n, e); + else + for (var i in e) + Object.prototype.hasOwnProperty.call(e, i) && t.call(null, e[i], i, e) + } + function x() { + function e(e, n) { + "object" == typeof t[n] && "object" == typeof e ? t[n] = x(t[n], e) : t[n] = e + } + for (var t = {}, n = 0, r = arguments.length; n < r; n++) + v(arguments[n], e); + return t + } + function b(e, t, n) { + return v(t, function(t, r) { + n && "function" == typeof t ? e[r] = E(t, n) : e[r] = t + }), + e + } + var E = n(3) + , C = n(4) + , R = Object.prototype.toString; + e.exports = { + isArray: r, + isArrayBuffer: o, + isBuffer: C, + isFormData: i, + isArrayBufferView: s, + isString: u, + isNumber: a, + isObject: f, + isUndefined: c, + isDate: p, + isFile: d, + isBlob: l, + isFunction: h, + isStream: m, + isURLSearchParams: y, + isStandardBrowserEnv: g, + forEach: v, + merge: x, + extend: b, + trim: w + } + } + , function(e, t) { + "use strict"; + e.exports = function(e, t) { + return function() { + for (var n = new Array(arguments.length), r = 0; r < n.length; r++) + n[r] = arguments[r]; + return e.apply(t, n) + } + } + } + , function(e, t) { + function n(e) { + return !!e.constructor && "function" == typeof e.constructor.isBuffer && e.constructor.isBuffer(e) + } + function r(e) { + return "function" == typeof e.readFloatLE && "function" == typeof e.slice && n(e.slice(0, 0)) + } + /*! + * Determine if an object is a Buffer + * + * @author Feross Aboukhadijeh + * @license MIT + */ + e.exports = function(e) { + return null != e && (n(e) || r(e) || !!e._isBuffer) + } + } + , function(e, t, n) { + "use strict"; + function r(e) { + this.defaults = e, + this.interceptors = { + request: new s, + response: new s + } + } + var o = n(6) + , i = n(2) + , s = n(17) + , u = n(18); + r.prototype.request = function(e) { + "string" == typeof e && (e = i.merge({ + url: arguments[0] + }, arguments[1])), + e = i.merge(o, { + method: "get" + }, this.defaults, e), + e.method = e.method.toLowerCase(); + var t = [u, void 0] + , n = Promise.resolve(e); + for (this.interceptors.request.forEach(function(e) { + t.unshift(e.fulfilled, e.rejected) + }), + this.interceptors.response.forEach(function(e) { + t.push(e.fulfilled, e.rejected) + }); t.length; ) + n = n.then(t.shift(), t.shift()); + return n + } + , + i.forEach(["delete", "get", "head", "options"], function(e) { + r.prototype[e] = function(t, n) { + return this.request(i.merge(n || {}, { + method: e, + url: t + })) + } + }), + i.forEach(["post", "put", "patch"], function(e) { + r.prototype[e] = function(t, n, r) { + return this.request(i.merge(r || {}, { + method: e, + url: t, + data: n + })) + } + }), + e.exports = r + } + , function(e, t, n) { + "use strict"; + function r(e, t) { + !i.isUndefined(e) && i.isUndefined(e["Content-Type"]) && (e["Content-Type"] = t) + } + function o() { + var e; + return "undefined" != typeof XMLHttpRequest ? e = n(8) : "undefined" != typeof process && (e = n(8)), + e + } + var i = n(2) + , s = n(7) + , u = { + "Content-Type": "application/x-www-form-urlencoded" + } + , a = { + adapter: o(), + transformRequest: [function(e, t) { + return s(t, "Content-Type"), + i.isFormData(e) || i.isArrayBuffer(e) || i.isBuffer(e) || i.isStream(e) || i.isFile(e) || i.isBlob(e) ? e : i.isArrayBufferView(e) ? e.buffer : i.isURLSearchParams(e) ? (r(t, "application/x-www-form-urlencoded;charset=utf-8"), + e.toString()) : i.isObject(e) ? (r(t, "application/json;charset=utf-8"), + JSON.stringify(e)) : e + } + ], + transformResponse: [function(e) { + if ("string" == typeof e) + try { + e = JSON.parse(e) + } catch (e) {} + return e + } + ], + timeout: 0, + xsrfCookieName: "XSRF-TOKEN", + xsrfHeaderName: "X-XSRF-TOKEN", + maxContentLength: -1, + validateStatus: function(e) { + return e >= 200 && e < 300 + } + }; + a.headers = { + common: { + Accept: "application/json, text/plain, */*" + } + }, + i.forEach(["delete", "get", "head"], function(e) { + a.headers[e] = {} + }), + i.forEach(["post", "put", "patch"], function(e) { + a.headers[e] = i.merge(u) + }), + e.exports = a + } + , function(e, t, n) { + "use strict"; + var r = n(2); + e.exports = function(e, t) { + r.forEach(e, function(n, r) { + r !== t && r.toUpperCase() === t.toUpperCase() && (e[t] = n, + delete e[r]) + }) + } + } + , function(e, t, n) { + "use strict"; + var r = n(2) + , o = n(9) + , i = n(12) + , s = n(13) + , u = n(14) + , a = n(10) + , c = "undefined" != typeof window && window.btoa && window.btoa.bind(window) || n(15); + e.exports = function(e) { + return new Promise(function(t, f) { + var p = e.data + , d = e.headers; + r.isFormData(p) && delete d["Content-Type"]; + var l = new XMLHttpRequest + , h = "onreadystatechange" + , m = !1; + if ("undefined" == typeof window || !window.XDomainRequest || "withCredentials"in l || u(e.url) || (l = new window.XDomainRequest, + h = "onload", + m = !0, + l.onprogress = function() {} + , + l.ontimeout = function() {} + ), + e.auth) { + var y = e.auth.username || "" + , w = e.auth.password || ""; + d.Authorization = "Basic " + c(y + ":" + w) + } + if (l.open(e.method.toUpperCase(), i(e.url, e.params, e.paramsSerializer), !0), + l.timeout = e.timeout, + l[h] = function() { + if (l && (4 === l.readyState || m) && (0 !== l.status || l.responseURL && 0 === l.responseURL.indexOf("file:"))) { + var n = "getAllResponseHeaders"in l ? s(l.getAllResponseHeaders()) : null + , r = e.responseType && "text" !== e.responseType ? l.response : l.responseText + , i = { + data: r, + status: 1223 === l.status ? 204 : l.status, + statusText: 1223 === l.status ? "No Content" : l.statusText, + headers: n, + config: e, + request: l + }; + o(t, f, i), + l = null + } + } + , + l.onerror = function() { + f(a("Network Error", e, null, l)), + l = null + } + , + l.ontimeout = function() { + f(a("timeout of " + e.timeout + "ms exceeded", e, "ECONNABORTED", l)), + l = null + } + , + r.isStandardBrowserEnv()) { + var g = n(16) + , v = (e.withCredentials || u(e.url)) && e.xsrfCookieName ? g.read(e.xsrfCookieName) : void 0; + v && (d[e.xsrfHeaderName] = v) + } + if ("setRequestHeader"in l && r.forEach(d, function(e, t) { + "undefined" == typeof p && "content-type" === t.toLowerCase() ? delete d[t] : l.setRequestHeader(t, e) + }), + e.withCredentials && (l.withCredentials = !0), + e.responseType) + try { + l.responseType = e.responseType + } catch (t) { + if ("json" !== e.responseType) + throw t + } + "function" == typeof e.onDownloadProgress && l.addEventListener("progress", e.onDownloadProgress), + "function" == typeof e.onUploadProgress && l.upload && l.upload.addEventListener("progress", e.onUploadProgress), + e.cancelToken && e.cancelToken.promise.then(function(e) { + l && (l.abort(), + f(e), + l = null) + }), + void 0 === p && (p = null), + l.send(p) + } + ) + } + } + , function(e, t, n) { + "use strict"; + var r = n(10); + e.exports = function(e, t, n) { + var o = n.config.validateStatus; + n.status && o && !o(n.status) ? t(r("Request failed with status code " + n.status, n.config, null, n.request, n)) : e(n) + } + } + , function(e, t, n) { + "use strict"; + var r = n(11); + e.exports = function(e, t, n, o, i) { + var s = new Error(e); + return r(s, t, n, o, i) + } + } + , function(e, t) { + "use strict"; + e.exports = function(e, t, n, r, o) { + return e.config = t, + n && (e.code = n), + e.request = r, + e.response = o, + e + } + } + , function(e, t, n) { + "use strict"; + function r(e) { + return encodeURIComponent(e).replace(/%40/gi, "@").replace(/%3A/gi, ":").replace(/%24/g, "$").replace(/%2C/gi, ",").replace(/%20/g, "+").replace(/%5B/gi, "[").replace(/%5D/gi, "]") + } + var o = n(2); + e.exports = function(e, t, n) { + if (!t) + return e; + var i; + if (n) + i = n(t); + else if (o.isURLSearchParams(t)) + i = t.toString(); + else { + var s = []; + o.forEach(t, function(e, t) { + null !== e && "undefined" != typeof e && (o.isArray(e) ? t += "[]" : e = [e], + o.forEach(e, function(e) { + o.isDate(e) ? e = e.toISOString() : o.isObject(e) && (e = JSON.stringify(e)), + s.push(r(t) + "=" + r(e)) + })) + }), + i = s.join("&") + } + return i && (e += (e.indexOf("?") === -1 ? "?" : "&") + i), + e + } + } + , function(e, t, n) { + "use strict"; + var r = n(2) + , o = ["age", "authorization", "content-length", "content-type", "etag", "expires", "from", "host", "if-modified-since", "if-unmodified-since", "last-modified", "location", "max-forwards", "proxy-authorization", "referer", "retry-after", "user-agent"]; + e.exports = function(e) { + var t, n, i, s = {}; + return e ? (r.forEach(e.split("\n"), function(e) { + if (i = e.indexOf(":"), + t = r.trim(e.substr(0, i)).toLowerCase(), + n = r.trim(e.substr(i + 1)), + t) { + if (s[t] && o.indexOf(t) >= 0) + return; + "set-cookie" === t ? s[t] = (s[t] ? s[t] : []).concat([n]) : s[t] = s[t] ? s[t] + ", " + n : n + } + }), + s) : s + } + } + , function(e, t, n) { + "use strict"; + var r = n(2); + e.exports = r.isStandardBrowserEnv() ? function() { + function e(e) { + var t = e; + return n && (o.setAttribute("href", t), + t = o.href), + o.setAttribute("href", t), + { + href: o.href, + protocol: o.protocol ? o.protocol.replace(/:$/, "") : "", + host: o.host, + search: o.search ? o.search.replace(/^\?/, "") : "", + hash: o.hash ? o.hash.replace(/^#/, "") : "", + hostname: o.hostname, + port: o.port, + pathname: "/" === o.pathname.charAt(0) ? o.pathname : "/" + o.pathname + } + } + var t, n = /(msie|trident)/i.test(navigator.userAgent), o = document.createElement("a"); + return t = e(window.location.href), + function(n) { + var o = r.isString(n) ? e(n) : n; + return o.protocol === t.protocol && o.host === t.host + } + }() : function() { + return function() { + return !0 + } + }() + } + , function(e, t) { + "use strict"; + function n() { + this.message = "String contains an invalid character" + } + function r(e) { + for (var t, r, i = String(e), s = "", u = 0, a = o; i.charAt(0 | u) || (a = "=", + u % 1); s += a.charAt(63 & t >> 8 - u % 1 * 8)) { + if (r = i.charCodeAt(u += .75), + r > 255) + throw new n; + t = t << 8 | r + } + return s + } + var o = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; + n.prototype = new Error, + n.prototype.code = 5, + n.prototype.name = "InvalidCharacterError", + e.exports = r + } + , function(e, t, n) { + "use strict"; + var r = n(2); + e.exports = r.isStandardBrowserEnv() ? function() { + return { + write: function(e, t, n, o, i, s) { + var u = []; + u.push(e + "=" + encodeURIComponent(t)), + r.isNumber(n) && u.push("expires=" + new Date(n).toGMTString()), + r.isString(o) && u.push("path=" + o), + r.isString(i) && u.push("domain=" + i), + s === !0 && u.push("secure"), + document.cookie = u.join("; ") + }, + read: function(e) { + var t = document.cookie.match(new RegExp("(^|;\\s*)(" + e + ")=([^;]*)")); + return t ? decodeURIComponent(t[3]) : null + }, + remove: function(e) { + this.write(e, "", Date.now() - 864e5) + } + } + }() : function() { + return { + write: function() {}, + read: function() { + return null + }, + remove: function() {} + } + }() + } + , function(e, t, n) { + "use strict"; + function r() { + this.handlers = [] + } + var o = n(2); + r.prototype.use = function(e, t) { + return this.handlers.push({ + fulfilled: e, + rejected: t + }), + this.handlers.length - 1 + } + , + r.prototype.eject = function(e) { + this.handlers[e] && (this.handlers[e] = null) + } + , + r.prototype.forEach = function(e) { + o.forEach(this.handlers, function(t) { + null !== t && e(t) + }) + } + , + e.exports = r + } + , function(e, t, n) { + "use strict"; + function r(e) { + e.cancelToken && e.cancelToken.throwIfRequested() + } + var o = n(2) + , i = n(19) + , s = n(20) + , u = n(6) + , a = n(21) + , c = n(22); + e.exports = function(e) { + r(e), + e.baseURL && !a(e.url) && (e.url = c(e.baseURL, e.url)), + e.headers = e.headers || {}, + e.data = i(e.data, e.headers, e.transformRequest), + e.headers = o.merge(e.headers.common || {}, e.headers[e.method] || {}, e.headers || {}), + o.forEach(["delete", "get", "head", "post", "put", "patch", "common"], function(t) { + delete e.headers[t] + }); + var t = e.adapter || u.adapter; + return t(e).then(function(t) { + return r(e), + t.data = i(t.data, t.headers, e.transformResponse), + t + }, function(t) { + return s(t) || (r(e), + t && t.response && (t.response.data = i(t.response.data, t.response.headers, e.transformResponse))), + Promise.reject(t) + }) + } + } + , function(e, t, n) { + "use strict"; + var r = n(2); + e.exports = function(e, t, n) { + return r.forEach(n, function(n) { + e = n(e, t) + }), + e + } + } + , function(e, t) { + "use strict"; + e.exports = function(e) { + return !(!e || !e.__CANCEL__) + } + } + , function(e, t) { + "use strict"; + e.exports = function(e) { + return /^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e) + } + } + , function(e, t) { + "use strict"; + e.exports = function(e, t) { + return t ? e.replace(/\/+$/, "") + "/" + t.replace(/^\/+/, "") : e + } + } + , function(e, t) { + "use strict"; + function n(e) { + this.message = e + } + n.prototype.toString = function() { + return "Cancel" + (this.message ? ": " + this.message : "") + } + , + n.prototype.__CANCEL__ = !0, + e.exports = n + } + , function(e, t, n) { + "use strict"; + function r(e) { + if ("function" != typeof e) + throw new TypeError("executor must be a function."); + var t; + this.promise = new Promise(function(e) { + t = e + } + ); + var n = this; + e(function(e) { + n.reason || (n.reason = new o(e), + t(n.reason)) + }) + } + var o = n(23); + r.prototype.throwIfRequested = function() { + if (this.reason) + throw this.reason + } + , + r.source = function() { + var e, t = new r(function(t) { + e = t + } + ); + return { + token: t, + cancel: e + } + } + , + e.exports = r + } + , function(e, t) { + "use strict"; + e.exports = function(e) { + return function(t) { + return e.apply(null, t) + } + } + } + ]) +}); +//# sourceMappingURL=axios.min.map diff --git a/public/js/highcharts.js b/public/js/highcharts.js new file mode 100644 index 0000000..458d923 --- /dev/null +++ b/public/js/highcharts.js @@ -0,0 +1,472 @@ +/* + Highcharts JS v7.1.3 (2019-08-14) + + (c) 2009-2018 Torstein Honsi + + License: www.highcharts.com/license +*/ +(function(O,M){"object"===typeof module&&module.exports?(M["default"]=M,module.exports=O.document?M(O):M):"function"===typeof define&&define.amd?define("highcharts/highcharts",function(){return M(O)}):(O.Highcharts&&O.Highcharts.error(16,!0),O.Highcharts=M(O))})("undefined"!==typeof window?window:this,function(O){function M(c,p,y,G){c.hasOwnProperty(p)||(c[p]=G.apply(null,y))}var J={};M(J,"parts/Globals.js",[],function(){var c="undefined"===typeof O?"undefined"!==typeof window?window:{}:O,p=c.document, +y=c.navigator&&c.navigator.userAgent||"",G=p&&p.createElementNS&&!!p.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect,F=/(edge|msie|trident)/i.test(y)&&!c.opera,z=-1!==y.indexOf("Firefox"),r=-1!==y.indexOf("Chrome"),K=z&&4>parseInt(y.split("Firefox/")[1],10);return{product:"Highcharts",version:"7.1.3",deg2rad:2*Math.PI/360,doc:p,hasBidiBug:K,hasTouch:!!O.TouchEvent,isMS:F,isWebKit:-1!==y.indexOf("AppleWebKit"),isFirefox:z,isChrome:r,isSafari:!r&&-1!==y.indexOf("Safari"),isTouchDevice:/(Mobile|Android|Windows Phone)/.test(y), +SVG_NS:"http://www.w3.org/2000/svg",chartCount:0,seriesTypes:{},symbolSizes:{},svg:G,win:c,marginNames:["plotTop","marginRight","marginBottom","plotLeft"],noop:function(){},charts:[],dateFormats:{}}});M(J,"parts/Utilities.js",[J["parts/Globals.js"]],function(c){function p(b,d){return parseInt(b,d||10)}function y(b){return"string"===typeof b}function G(b){b=Object.prototype.toString.call(b);return"[object Array]"===b||"[object Array Iterator]"===b}function F(b,d){return!!b&&"object"===typeof b&&(!d|| +!G(b))}function z(b){return F(b)&&"number"===typeof b.nodeType}function r(b){var d=b&&b.constructor;return!(!F(b,!0)||z(b)||!d||!d.name||"Object"===d.name)}function K(b){return"number"===typeof b&&!isNaN(b)&&Infinity>b&&-Infinityg)for(;h--;){var e=parseFloat(b[h]);a[h]=isNaN(e)?d[h]:g*parseFloat(""+(d[h]-e))+e}else a=d;this.elem.attr("d",a,null,!0)},update:function(){var b=this.elem,d=this.prop,a=this.now, +g=this.options.step;if(this[d+"Setter"])this[d+"Setter"]();else b.attr?b.element&&b.attr(d,a,null,!0):b.style[d]=a+this.unit;g&&g.call(b,a,this)},run:function(b,d,a){var g=this,h=g.options,e=function(a){return e.stopped?!1:g.step(a)},m=l.requestAnimationFrame||function(a){setTimeout(a,13)},u=function(){for(var a=0;a=e+this.startTime){this.now=this.end;this.pos=1;this.update();var u=c[this.prop]=!0;D(c,function(a){!0!==a&&(u=!1)});u&&h&&h.call(g);b=!1}else this.pos=a.easing((d- +this.startTime)/e),this.now=this.start+(this.end-this.start)*this.pos,this.update(),b=!0;return b},initPath:function(b,d,a){function g(a){for(k=a.length;k--;){var b="M"===a[k]||"L"===a[k];var f=/[a-zA-Z]/.test(a[k+3]);b&&f&&a.splice(k+1,0,a[k+1],a[k+2],a[k+1],a[k+2])}}function h(a,b){for(;a.length=a&&(d=[1/a])));for(g=0;g=b||!h&&m<=(d[g]+(d[g+1]||d[g]))/2);g++);return e=c.correctFloat(e*a,-Math.round(Math.log(.001)/ +Math.LN10))};c.stableSort=function(b,d){var a=b.length,g,h;for(h=0;ha&&(a=b[d]);return a};c.destroyObjectProperties=function(b,d){D(b,function(a,g){a&&a!==d&&a.destroy&&a.destroy();delete b[g]})};c.discardElement=function(b){var d=c.garbageBin; +d||(d=c.createElement("div"));b&&d.appendChild(b);d.innerHTML=""};c.correctFloat=function(b,d){return parseFloat(b.toPrecision(d||14))};c.setAnimation=function(b,d){d.renderer.globalAnimation=c.pick(b,d.options.chart.animation,!0)};c.animObject=function(b){return F(b)?c.merge(b):{duration:b?500:0}};c.timeUnits={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5,month:24192E5,year:314496E5};c.numberFormat=function(b,d,a,g){b=+b||0;d=+d;var h=c.defaultOptions.lang,e=(b.toString().split(".")[1]|| +"").split("e")[0].length,m=b.toString().split("e");if(-1===d)d=Math.min(e,20);else if(!K(d))d=2;else if(d&&m[1]&&0>m[1]){var u=d+ +m[1];0<=u?(m[0]=(+m[0]).toExponential(u).split("e")[0],d=u):(m[0]=m[0].split(".")[0]||0,b=20>d?(m[0]*Math.pow(10,m[1])).toFixed(d):0,m[1]=0)}var n=(Math.abs(m[1]?m[0]:b)+Math.pow(10,-Math.max(d,e)-1)).toFixed(d);e=String(p(n));u=3b?"-":"")+(u?e.substr(0,u)+g:"");b+=e.substr(u).replace(/(\d{3})(?=\d)/g, +"$1"+g);d&&(b+=a+n.slice(-d));m[1]&&0!==+b&&(b+="e"+m[1]);return b};Math.easeInOutSine=function(b){return-.5*(Math.cos(Math.PI*b)-1)};c.getStyle=function(b,d,a){if("width"===d)return d=Math.min(b.offsetWidth,b.scrollWidth),a=b.getBoundingClientRect&&b.getBoundingClientRect().width,a=d-1&&(d=Math.floor(a)),Math.max(0,d-c.getStyle(b,"padding-left")-c.getStyle(b,"padding-right"));if("height"===d)return Math.max(0,Math.min(b.offsetHeight,b.scrollHeight)-c.getStyle(b,"padding-top")-c.getStyle(b, +"padding-bottom"));l.getComputedStyle||c.error(27,!0);if(b=l.getComputedStyle(b,void 0))b=b.getPropertyValue(d),c.pick(a,"opacity"!==d)&&(b=p(b));return b};c.inArray=function(b,d,a){return d.indexOf(b,a)};c.find=Array.prototype.find?function(b,d){return b.find(d)}:function(b,d){var a,g=b.length;for(a=0;a> +16,(z&65280)>>8,z&255,1]:4===v&&(r=[(z&3840)>>4|(z&3840)>>8,(z&240)>>4|z&240,(z&15)<<4|z&15,1])}if(!r)for(p=this.parsers.length;p--&&!r;){var y=this.parsers[p];(v=y.regex.exec(z))&&(r=y.parse(v))}}this.rgba=r||[]},get:function(c){var r=this.input,z=this.rgba;if(this.stops){var v=F(r);v.stops=[].concat(v.stops);this.stops.forEach(function(r,w){v.stops[w]=[v.stops[w][0],r.get(c)]})}else v=z&&y(z[0])?"rgb"===c||!c&&1===z[3]?"rgb("+z[0]+","+z[1]+","+z[2]+")":"a"===c?z[3]:"rgba("+z.join(",")+")":r;return v}, +brighten:function(c){var r,z=this.rgba;if(this.stops)this.stops.forEach(function(r){r.brighten(c)});else if(y(c)&&0!==c)for(r=0;3>r;r++)z[r]+=G(255*c),0>z[r]&&(z[r]=0),255f.width)f={width:0,height:0}}else f=this.htmlGetBBox();d.isSVG&&(a=f.width,d=f.height,P&&(f.height=d={"11px,17":14,"13px,20":16}[k&&k.fontSize+","+Math.round(d)]||d),b&&(f.width=Math.abs(d*Math.sin(m))+Math.abs(a*Math.cos(m)),f.height=Math.abs(d*Math.cos(m))+Math.abs(a*Math.sin(m))));if(C&&0]*>/g,"").replace(/</g,"<").replace(/>/g,">")))},textSetter:function(a){a!==this.textStr&&(delete this.bBox,delete this.textPxLength,this.textStr=a,this.added&&this.renderer.buildText(this))},setTextPath:function(a,b){var f=this.element,q={textAnchor:"text-anchor"},d=!1,e= +this.textPathWrapper,k=!e;b=B(!0,{enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},b);var g=b.attributes;if(a&&b&&b.enabled){this.options&&this.options.padding&&(g.dx=-this.options.padding);e||(this.textPathWrapper=e=this.renderer.createElement("textPath"),d=!0);var h=e.element;(b=a.element.getAttribute("id"))||a.element.setAttribute("id",b=c.uniqueKey());if(k)for(a=f.getElementsByTagName("tspan");a.length;)a[0].setAttribute("y",0),h.appendChild(a[0]);d&&e.add({element:this.text? +this.text.element:f});h.setAttributeNS("http://www.w3.org/1999/xlink","href",this.renderer.url+"#"+b);y(g.dy)&&(h.parentNode.setAttribute("dy",g.dy),delete g.dy);y(g.dx)&&(h.parentNode.setAttribute("dx",g.dx),delete g.dx);v(g,function(a,b){h.setAttribute(q[b]||b,a)});f.removeAttribute("transform");this.removeTextOutline.call(e,[].slice.call(f.getElementsByTagName("tspan")));this.text&&!this.renderer.styledMode&&this.attr({fill:"none","stroke-width":0});this.applyTextOutline=this.updateTransform=H}else e&& +(delete this.updateTransform,delete this.applyTextOutline,this.destroyTextPath(f,a));return this},destroyTextPath:function(a,b){var f;b.element.setAttribute("id","");for(f=this.textPathWrapper.element.childNodes;f.length;)a.firstChild.appendChild(f[0]);a.firstChild.removeChild(this.textPathWrapper.element);delete b.textPathWrapper},fillSetter:function(a,b,f){"string"===typeof a?f.setAttribute(b,a):a&&this.complexColor(a,b,f)},visibilitySetter:function(a,b,f){"inherit"===a?f.removeAttribute(b):this[b]!== +a&&f.setAttribute(b,a);this[b]=a},zIndexSetter:function(a,b){var f=this.renderer,q=this.parentGroup,d=(q||f).element||f.box,e=this.element,k=!1;f=d===f.box;var g=this.added;var c;y(a)?(e.setAttribute("data-z-index",a),a=+a,this[b]===a&&(g=!1)):y(this[b])&&e.removeAttribute("data-z-index");this[b]=a;if(g){(a=this.zIndex)&&q&&(q.handleZ=!0);b=d.childNodes;for(c=b.length-1;0<=c&&!k;c--){q=b[c];g=q.getAttribute("data-z-index");var h=!y(g);if(q!==e)if(0>a&&h&&!f&&!c)d.insertBefore(e,b[c]),k=!0;else if(D(g)<= +a||h&&(!y(a)||0<=a))d.insertBefore(e,b[c+1]||null),k=!0}k||(d.insertBefore(e,b[f?3:0]||null),k=!0)}return k},_defaultSetter:function(a,b,f){f.setAttribute(b,a)}});L.prototype.yGetter=L.prototype.xGetter;L.prototype.translateXSetter=L.prototype.translateYSetter=L.prototype.rotationSetter=L.prototype.verticalAlignSetter=L.prototype.rotationOriginXSetter=L.prototype.rotationOriginYSetter=L.prototype.scaleXSetter=L.prototype.scaleYSetter=L.prototype.matrixSetter=function(a,b){this[b]=a;this.doTransform= +!0};L.prototype["stroke-widthSetter"]=L.prototype.strokeSetter=function(a,b,f){this[b]=a;this.stroke&&this["stroke-width"]?(L.prototype.fillSetter.call(this,this.stroke,"stroke",f),f.setAttribute("stroke-width",this["stroke-width"]),this.hasStroke=!0):"stroke-width"===b&&0===a&&this.hasStroke?(f.removeAttribute("stroke"),this.hasStroke=!1):this.renderer.styledMode&&this["stroke-width"]&&(f.setAttribute("stroke-width",this["stroke-width"]),this.hasStroke=!0)};p=c.SVGRenderer=function(){this.init.apply(this, +arguments)};E(p.prototype,{Element:L,SVG_NS:T,init:function(a,f,q,d,e,k,c){var h=this.createElement("svg").attr({version:"1.1","class":"highcharts-root"});c||h.css(this.getStyle(d));d=h.element;a.appendChild(d);b(a,"dir","ltr");-1===a.innerHTML.indexOf("xmlns")&&b(d,"xmlns",this.SVG_NS);this.isSVG=!0;this.box=d;this.boxWrapper=h;this.alignedObjects=[];this.url=(x||A)&&u.getElementsByTagName("base").length?S.location.href.split("#")[0].replace(/<[^>]*>/g,"").replace(/([\('\)])/g,"\\$1").replace(/ /g, +"%20"):"";this.createElement("desc").add().element.appendChild(u.createTextNode("Created with Highcharts 7.1.3"));this.defs=this.createElement("defs").add();this.allowHTML=k;this.forExport=e;this.styledMode=c;this.gradients={};this.cache={};this.cacheKeys=[];this.imgCount=0;this.setSize(f,q,!1);var I;x&&a.getBoundingClientRect&&(f=function(){g(a,{left:0,top:0});I=a.getBoundingClientRect();g(a,{left:Math.ceil(I.left)-I.left+"px",top:Math.ceil(I.top)-I.top+"px"})},f(),this.unSubPixelFix=n(S,"resize", +f))},definition:function(a){function b(a,q){var d;w(a).forEach(function(a){var e=f.createElement(a.tagName),k={};v(a,function(a,b){"tagName"!==b&&"children"!==b&&"textContent"!==b&&(k[b]=a)});e.attr(k);e.add(q||f.defs);a.textContent&&e.element.appendChild(u.createTextNode(a.textContent));b(a.children||[],e);d=e});return d}var f=this;return b(a)},getStyle:function(a){return this.style=E({fontFamily:'"Lucida Grande", "Lucida Sans Unicode", Arial, Helvetica, sans-serif',fontSize:"12px"},a)},setStyle:function(a){this.boxWrapper.css(this.getStyle(a))}, +isHidden:function(){return!this.boxWrapper.getBBox().width},destroy:function(){var a=this.defs;this.box=null;this.boxWrapper=this.boxWrapper.destroy();m(this.gradients||{});this.gradients=null;a&&(this.defs=a.destroy());this.unSubPixelFix&&this.unSubPixelFix();return this.alignedObjects=null},createElement:function(a){var b=new this.Element;b.init(this,a);return b},draw:H,getRadialAttr:function(a,b){return{cx:a[0]-a[2]/2+b.cx*a[2],cy:a[1]-a[2]/2+b.cy*a[2],r:b.r*a[2]}},truncate:function(a,b,f,d,q, +e,k){var g=this,c=a.rotation,h,I=d?1:0,B=(f||d).length,m=B,A=[],C=function(a){b.firstChild&&b.removeChild(b.firstChild);a&&b.appendChild(u.createTextNode(a))},N=function(e,c){c=c||e;if(void 0===A[c])if(b.getSubStringLength)try{A[c]=q+b.getSubStringLength(0,d?c+1:c)}catch(ba){""}else g.getSpanWidth&&(C(k(f||d,e)),A[c]=q+g.getSpanWidth(a,b));return A[c]},L;a.rotation=0;var P=N(b.textContent.length);if(L=q+P>e){for(;I<=B;)m=Math.ceil((I+B)/2),d&&(h=k(d,m)),P=N(m,h&&h.length-1),I===B?I=B+1:P>e?B=m-1: +I=m;0===B?C(""):f&&B===f.length-1||C(h||k(f||d,m))}d&&d.splice(0,m);a.actualWidth=P;a.rotation=c;return L},escapes:{"&":"&","<":"<",">":">","'":"'",'"':"""},buildText:function(a){var f=a.element,d=this,e=d.forExport,k=q(a.textStr,"").toString(),c=-1!==k.indexOf("<"),h=f.childNodes,B,I=b(f,"x"),m=a.styles,A=a.textWidth,C=m&&m.lineHeight,L=m&&m.textOutline,t=m&&"ellipsis"===m.textOverflow,H=m&&"nowrap"===m.whiteSpace,x=m&&m.fontSize,n,l=h.length;m=A&&!a.added&&this.box;var E=function(a){var b; +d.styledMode||(b=/(px|em)$/.test(a&&a.style.fontSize)?a.style.fontSize:x||d.style.fontSize||12);return C?D(C):d.fontMetrics(b,a.getAttribute("style")?a:f).h},w=function(a,b){v(d.escapes,function(f,d){b&&-1!==b.indexOf(f)||(a=a.toString().replace(new RegExp(f,"g"),d))});return a},R=function(a,b){var f=a.indexOf("<");a=a.substring(f,a.indexOf(">")-f);f=a.indexOf(b+"=");if(-1!==f&&(f=f+b.length+1,b=a.charAt(f),'"'===b||"'"===b))return a=a.substring(f+1),a.substring(0,a.indexOf(b))},r=//g;var S= +[k,t,H,C,L,x,A].join();if(S!==a.textCache){for(a.textCache=S;l--;)f.removeChild(h[l]);c||L||t||A||-1!==k.indexOf(" ")&&(!H||r.test(k))?(m&&m.appendChild(f),c?(k=d.styledMode?k.replace(/<(b|strong)>/g,'').replace(/<(i|em)>/g,''):k.replace(/<(b|strong)>/g,'').replace(/<(i|em)>/g,''),k=k.replace(//g,"").split(r)):k=[k],k= +k.filter(function(a){return""!==a}),k.forEach(function(q,k){var c=0,h=0;q=q.replace(/^\s+|\s+$/g,"").replace(//g,"|||");var m=q.split("|||");m.forEach(function(q){if(""!==q||1===m.length){var C={},L=u.createElementNS(d.SVG_NS,"tspan"),P,l;(P=R(q,"class"))&&b(L,"class",P);if(P=R(q,"style"))P=P.replace(/(;| |^)color([ :])/,"$1fill$2"),b(L,"style",P);(l=R(q,"href"))&&!e&&(b(L,"onclick",'location.href="'+l+'"'),b(L,"class","highcharts-anchor"),d.styledMode|| +g(L,{cursor:"pointer"}));q=w(q.replace(/<[a-zA-Z\/](.|\n)*?>/g,"")||" ");if(" "!==q){L.appendChild(u.createTextNode(q));c?C.dx=0:k&&null!==I&&(C.x=I);b(L,C);f.appendChild(L);!c&&n&&(!N&&e&&g(L,{display:"block"}),b(L,"dy",E(L)));if(A){var Q=q.replace(/([^\^])-/g,"$1- ").split(" ");C=!H&&(1Math.abs(e.end-e.start-2*Math.PI));var m=Math.cos(k),B=Math.sin(k),A=Math.cos(h);h=Math.sin(h);k=.001>e.end-k-Math.PI?0:1;e=["M",a+g*m,b+c*B,"A",g,c,0,k,q(e.clockwise,1),a+g*A,b+c*h];y(f)&&e.push(d?"M":"L",a+f*A,b+f*h,"A",f,f,0,k,0,a+f*m,b+f*B);e.push(d?"":"Z");return e},callout:function(a,b,f,q,d){var e=Math.min(d&&d.r||0,f,q),k=e+6,g=d&&d.anchorX;d=d&&d.anchorY;var c=["M",a+e,b,"L",a+f-e,b,"C",a+f,b,a+f,b,a+f,b+ +e,"L",a+f,b+q-e,"C",a+f,b+q,a+f,b+q,a+f-e,b+q,"L",a+e,b+q,"C",a,b+q,a,b+q,a,b+q-e,"L",a,b+e,"C",a,b,a,b,a+e,b];g&&g>f?d>b+k&&dg?d>b+k&&dq&&g>a+k&&gd&&g>a+k&&ga?a+3:Math.round(1.2*a);return{h:b,b:Math.round(.8*b),f:a}},rotCorr:function(a,b,f){var q=a;b&&f&&(q=Math.max(q*Math.cos(b*e),4));return{x:-a/3*Math.sin(b*e),y:q}},label:function(a,b,q,d,e,k,g,c,h){var m=this,A=m.styledMode,C=m.g("button"!== +h&&"label"),N=C.text=m.text("",0,0,g).attr({zIndex:1}),t,H,u=0,x=3,n=0,I,l,T,P,w,Q={},R,r,S=/^url\((.*?)\)$/.test(d),v=A||S,p=function(){return A?t.strokeWidth()%2/2:(R?parseInt(R,10):0)%2/2};h&&C.addClass("highcharts-"+h);var K=function(){var a=N.element.style,b={};H=(void 0===I||void 0===l||w)&&y(N.textStr)&&N.getBBox();C.width=(I||H.width||0)+2*x+n;C.height=(l||H.height||0)+2*x;r=x+Math.min(m.fontMetrics(a&&a.fontSize,N).b,H?H.height:Infinity);v&&(t||(C.box=t=m.symbols[d]||S?m.symbol(d):m.rect(), +t.addClass(("button"===h?"":"highcharts-label-box")+(h?" highcharts-"+h+"-box":"")),t.add(C),a=p(),b.x=a,b.y=(c?-r:0)+a),b.width=Math.round(C.width),b.height=Math.round(C.height),t.attr(E(b,Q)),Q={})};var D=function(){var a=n+x;var b=c?0:r;y(I)&&H&&("center"===w||"right"===w)&&(a+={center:.5,right:1}[w]*(I-H.width));if(a!==N.x||b!==N.y)N.attr("x",a),N.hasBoxWidthChanged&&(H=N.getBBox(!0),K()),void 0!==b&&N.attr("y",b);N.x=a;N.y=b};var V=function(a,b){t?t.attr(a,b):Q[a]=b};C.onAdd=function(){N.add(C); +C.attr({text:a||0===a?a:"",x:b,y:q});t&&y(e)&&C.attr({anchorX:e,anchorY:k})};C.widthSetter=function(a){I=z(a)?a:null};C.heightSetter=function(a){l=a};C["text-alignSetter"]=function(a){w=a};C.paddingSetter=function(a){y(a)&&a!==x&&(x=C.padding=a,D())};C.paddingLeftSetter=function(a){y(a)&&a!==n&&(n=a,D())};C.alignSetter=function(a){a={left:0,center:.5,right:1}[a];a!==u&&(u=a,H&&C.attr({x:T}))};C.textSetter=function(a){void 0!==a&&N.attr({text:a});K();D()};C["stroke-widthSetter"]=function(a,b){a&&(v= +!0);R=this["stroke-width"]=a;V(b,a)};A?C.rSetter=function(a,b){V(b,a)}:C.strokeSetter=C.fillSetter=C.rSetter=function(a,b){"r"!==b&&("fill"===b&&a&&(v=!0),C[b]=a);V(b,a)};C.anchorXSetter=function(a,b){e=C.anchorX=a;V(b,Math.round(a)-p()-T)};C.anchorYSetter=function(a,b){k=C.anchorY=a;V(b,a-P)};C.xSetter=function(a){C.x=a;u&&(a-=u*((I||H.width)+2*x),C["forceAnimate:x"]=!0);T=Math.round(a);C.attr("translateX",T)};C.ySetter=function(a){P=C.y=Math.round(a);C.attr("translateY",P)};var U=C.css;g={css:function(a){if(a){var b= +{};a=B(a);C.textProps.forEach(function(f){void 0!==a[f]&&(b[f]=a[f],delete a[f])});N.css(b);"width"in b&&K();"fontSize"in b&&(K(),D())}return U.call(C,a)},getBBox:function(){return{width:H.width+2*x,height:H.height+2*x,x:H.x-x,y:H.y-x}},destroy:function(){f(C.element,"mouseenter");f(C.element,"mouseleave");N&&(N=N.destroy());t&&(t=t.destroy());L.prototype.destroy.call(C);C=m=K=D=V=null}};A||(g.shadow=function(a){a&&(K(),t&&t.shadow(a));return C});return E(C,g)}});c.Renderer=p});M(J,"parts/Html.js", +[J["parts/Globals.js"],J["parts/Utilities.js"]],function(c,p){var y=p.defined,G=p.pInt,F=c.attr,z=c.createElement,r=c.css,K=c.extend,v=c.isFirefox,D=c.isMS,w=c.isWebKit,n=c.pick,l=c.SVGElement;p=c.SVGRenderer;var b=c.win;K(l.prototype,{htmlCss:function(b){var a="SPAN"===this.element.tagName&&b&&"width"in b,d=n(a&&b.width,void 0);if(a){delete b.width;this.textWidth=d;var c=!0}b&&"ellipsis"===b.textOverflow&&(b.whiteSpace="nowrap",b.overflow="hidden");this.styles=K(this.styles,b);r(this.element,b); +c&&this.htmlUpdateTransform();return this},htmlGetBBox:function(){var b=this.element;return{x:b.offsetLeft,y:b.offsetTop,width:b.offsetWidth,height:b.offsetHeight}},htmlUpdateTransform:function(){if(this.added){var b=this.renderer,a=this.element,g=this.translateX||0,c=this.translateY||0,e=this.x||0,m=this.y||0,u=this.textAlign||"left",n={left:0,center:.5,right:1}[u],t=this.styles,x=t&&t.whiteSpace;r(a,{marginLeft:g,marginTop:c});!b.styledMode&&this.shadows&&this.shadows.forEach(function(a){r(a,{marginLeft:g+ +1,marginTop:c+1})});this.inverted&&[].forEach.call(a.childNodes,function(d){b.invertChild(d,a)});if("SPAN"===a.tagName){t=this.rotation;var k=this.textWidth&&G(this.textWidth),A=[t,u,a.innerHTML,this.textWidth,this.textAlign].join(),B;(B=k!==this.oldTextWidth)&&!(B=k>this.oldTextWidth)&&((B=this.textPxLength)||(r(a,{width:"",whiteSpace:x||"nowrap"}),B=a.offsetWidth),B=B>k);B&&(/[ \-]/.test(a.textContent||a.innerText)||"ellipsis"===a.style.textOverflow)?(r(a,{width:k+"px",display:"block",whiteSpace:x|| +"normal"}),this.oldTextWidth=k,this.hasBoxWidthChanged=!0):this.hasBoxWidthChanged=!1;A!==this.cTT&&(x=b.fontMetrics(a.style.fontSize,a).b,!y(t)||t===(this.oldRotation||0)&&u===this.oldAlign||this.setSpanRotation(t,n,x),this.getSpanCorrection(!y(t)&&this.textPxLength||a.offsetWidth,x,n,t,u));r(a,{left:e+(this.xCorr||0)+"px",top:m+(this.yCorr||0)+"px"});this.cTT=A;this.oldRotation=t;this.oldAlign=u}}else this.alignOnAdd=!0},setSpanRotation:function(b,a,g){var d={},e=this.renderer.getTransformKey(); +d[e]=d.transform="rotate("+b+"deg)";d[e+(v?"Origin":"-origin")]=d.transformOrigin=100*a+"% "+g+"px";r(this.element,d)},getSpanCorrection:function(b,a,g){this.xCorr=-b*g;this.yCorr=-a}});K(p.prototype,{getTransformKey:function(){return D&&!/Edge/.test(b.navigator.userAgent)?"-ms-transform":w?"-webkit-transform":v?"MozTransform":b.opera?"-o-transform":""},html:function(b,a,g){var d=this.createElement("span"),e=d.element,m=d.renderer,u=m.isSVG,E=function(a,b){["opacity","visibility"].forEach(function(d){a[d+ +"Setter"]=function(e,k,q){var f=a.div?a.div.style:b;l.prototype[d+"Setter"].call(this,e,k,q);f&&(f[k]=e)}});a.addedSetters=!0},t=c.charts[m.chartIndex];t=t&&t.styledMode;d.textSetter=function(a){a!==e.innerHTML&&(delete this.bBox,delete this.oldTextWidth);this.textStr=a;e.innerHTML=n(a,"");d.doTransform=!0};u&&E(d,d.element.style);d.xSetter=d.ySetter=d.alignSetter=d.rotationSetter=function(a,b){"align"===b&&(b="textAlign");d[b]=a;d.doTransform=!0};d.afterSetters=function(){this.doTransform&&(this.htmlUpdateTransform(), +this.doTransform=!1)};d.attr({text:b,x:Math.round(a),y:Math.round(g)}).css({position:"absolute"});t||d.css({fontFamily:this.style.fontFamily,fontSize:this.style.fontSize});e.style.whiteSpace="nowrap";d.css=d.htmlCss;u&&(d.add=function(a){var b=m.box.parentNode,g=[];if(this.parentGroup=a){var c=a.div;if(!c){for(;a;)g.push(a),a=a.parentGroup;g.reverse().forEach(function(a){function q(b,f){a[f]=b;"translateX"===f?e.left=b+"px":e.top=b+"px";a.doTransform=!0}var f=F(a.element,"class");f&&(f={className:f}); +c=a.div=a.div||z("div",f,{position:"absolute",left:(a.translateX||0)+"px",top:(a.translateY||0)+"px",display:a.display,opacity:a.opacity,pointerEvents:a.styles&&a.styles.pointerEvents},c||b);var e=c.style;K(a,{classSetter:function(a){return function(b){this.element.setAttribute("class",b);a.className=b}}(c),on:function(){g[0].div&&d.on.apply({element:g[0].div},arguments);return a},translateXSetter:q,translateYSetter:q});a.addedSetters||E(a)})}}else c=b;c.appendChild(e);d.added=!0;d.alignOnAdd&&d.htmlUpdateTransform(); +return d});return d}})});M(J,"parts/Time.js",[J["parts/Globals.js"],J["parts/Utilities.js"]],function(c,p){var y=p.defined,G=p.isObject,F=p.objectEach,z=p.splat,r=c.extend,K=c.merge,v=c.pick,D=c.timeUnits,w=c.win;c.Time=function(c){this.update(c,!1)};c.Time.prototype={defaultOptions:{},update:function(c){var n=v(c&&c.useUTC,!0),b=this;this.options=c=K(!0,this.options||{},c);this.Date=c.Date||w.Date||Date;this.timezoneOffset=(this.useUTC=n)&&c.timezoneOffset;this.getTimezoneOffset=this.timezoneOffsetFunction(); +(this.variableTimezone=!(n&&!c.getTimezoneOffset&&!c.timezone))||this.timezoneOffset?(this.get=function(d,a){var g=a.getTime(),c=g-b.getTimezoneOffset(a);a.setTime(c);d=a["getUTC"+d]();a.setTime(g);return d},this.set=function(d,a,g){if("Milliseconds"===d||"Seconds"===d||"Minutes"===d&&0===a.getTimezoneOffset()%60)a["set"+d](g);else{var c=b.getTimezoneOffset(a);c=a.getTime()-c;a.setTime(c);a["setUTC"+d](g);d=b.getTimezoneOffset(a);c=a.getTime()+d;a.setTime(c)}}):n?(this.get=function(b,a){return a["getUTC"+ +b]()},this.set=function(b,a,c){return a["setUTC"+b](c)}):(this.get=function(b,a){return a["get"+b]()},this.set=function(b,a,c){return a["set"+b](c)})},makeTime:function(n,l,b,d,a,g){if(this.useUTC){var h=this.Date.UTC.apply(0,arguments);var e=this.getTimezoneOffset(h);h+=e;var m=this.getTimezoneOffset(h);e!==m?h+=m-e:e-36E5!==this.getTimezoneOffset(h-36E5)||c.isSafari||(h-=36E5)}else h=(new this.Date(n,l,v(b,1),v(d,0),v(a,0),v(g,0))).getTime();return h},timezoneOffsetFunction:function(){var n=this, +l=this.options,b=w.moment;if(!this.useUTC)return function(b){return 6E4*(new Date(b)).getTimezoneOffset()};if(l.timezone){if(b)return function(d){return 6E4*-b.tz(d,l.timezone).utcOffset()};c.error(25)}return this.useUTC&&l.getTimezoneOffset?function(b){return 6E4*l.getTimezoneOffset(b)}:function(){return 6E4*(n.timezoneOffset||0)}},dateFormat:function(n,l,b){if(!y(l)||isNaN(l))return c.defaultOptions.lang.invalidDate||"";n=c.pick(n,"%Y-%m-%d %H:%M:%S");var d=this,a=new this.Date(l),g=this.get("Hours", +a),h=this.get("Day",a),e=this.get("Date",a),m=this.get("Month",a),u=this.get("FullYear",a),E=c.defaultOptions.lang,t=E.weekdays,x=E.shortWeekdays,k=c.pad;a=c.extend({a:x?x[h]:t[h].substr(0,3),A:t[h],d:k(e),e:k(e,2," "),w:h,b:E.shortMonths[m],B:E.months[m],m:k(m+1),o:m+1,y:u.toString().substr(2,2),Y:u,H:k(g),k:g,I:k(g%12||12),l:g%12||12,M:k(d.get("Minutes",a)),p:12>g?"AM":"PM",P:12>g?"am":"pm",S:k(a.getSeconds()),L:k(Math.floor(l%1E3),3)},c.dateFormats);F(a,function(a,b){for(;-1!==n.indexOf("%"+b);)n= +n.replace("%"+b,"function"===typeof a?a.call(d,l):a)});return b?n.substr(0,1).toUpperCase()+n.substr(1):n},resolveDTLFormat:function(c){return G(c,!0)?c:(c=z(c),{main:c[0],from:c[1],to:c[2]})},getTimeTicks:function(c,l,b,d){var a=this,g=[],h={};var e=new a.Date(l);var m=c.unitRange,u=c.count||1,n;d=v(d,1);if(y(l)){a.set("Milliseconds",e,m>=D.second?0:u*Math.floor(a.get("Milliseconds",e)/u));m>=D.second&&a.set("Seconds",e,m>=D.minute?0:u*Math.floor(a.get("Seconds",e)/u));m>=D.minute&&a.set("Minutes", +e,m>=D.hour?0:u*Math.floor(a.get("Minutes",e)/u));m>=D.hour&&a.set("Hours",e,m>=D.day?0:u*Math.floor(a.get("Hours",e)/u));m>=D.day&&a.set("Date",e,m>=D.month?1:Math.max(1,u*Math.floor(a.get("Date",e)/u)));if(m>=D.month){a.set("Month",e,m>=D.year?0:u*Math.floor(a.get("Month",e)/u));var t=a.get("FullYear",e)}m>=D.year&&a.set("FullYear",e,t-t%u);m===D.week&&(t=a.get("Day",e),a.set("Date",e,a.get("Date",e)-t+d+(t4*D.month||a.getTimezoneOffset(l)!==a.getTimezoneOffset(b));l=e.getTime();for(e=1;lg.length&&g.forEach(function(b){0===b%18E5&&"000000000"===a.dateFormat("%H%M%S%L",b)&&(h[b]="day")})}g.info=r(c,{higherRanks:h,totalRange:m*u});return g}}}); +M(J,"parts/Options.js",[J["parts/Globals.js"]],function(c){var p=c.color,y=c.merge;c.defaultOptions={colors:"#7cb5ec #434348 #90ed7d #f7a35c #8085e9 #f15c80 #e4d354 #2b908f #f45b5b #91e8e1".split(" "),symbols:["circle","diamond","square","triangle","triangle-down"],lang:{loading:"Loading...",months:"January February March April May June July August September October November December".split(" "),shortMonths:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),weekdays:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "), +decimalPoint:".",numericSymbols:"kMGTPE".split(""),resetZoom:"Reset zoom",resetZoomTitle:"Reset zoom level 1:1",thousandsSep:" "},global:{},time:c.Time.prototype.defaultOptions,chart:{styledMode:!1,borderRadius:0,colorCount:10,defaultSeriesType:"line",ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{zIndex:6},position:{align:"right",x:-10,y:10}},width:null,height:null,borderColor:"#335cad",backgroundColor:"#ffffff",plotBorderColor:"#cccccc"},title:{text:"Chart title",align:"center", +margin:15,widthAdjust:-44},subtitle:{text:"",align:"center",widthAdjust:-44},plotOptions:{},labels:{style:{position:"absolute",color:"#333333"}},legend:{enabled:!0,align:"center",alignColumns:!0,layout:"horizontal",labelFormatter:function(){return this.name},borderColor:"#999999",borderRadius:0,navigation:{activeColor:"#003399",inactiveColor:"#cccccc"},itemStyle:{color:"#333333",cursor:"pointer",fontSize:"12px",fontWeight:"bold",textOverflow:"ellipsis"},itemHoverStyle:{color:"#000000"},itemHiddenStyle:{color:"#cccccc"}, +shadow:!1,itemCheckboxStyle:{position:"absolute",width:"13px",height:"13px"},squareSymbol:!0,symbolPadding:5,verticalAlign:"bottom",x:0,y:0,title:{style:{fontWeight:"bold"}}},loading:{labelStyle:{fontWeight:"bold",position:"relative",top:"45%"},style:{position:"absolute",backgroundColor:"#ffffff",opacity:.5,textAlign:"center"}},tooltip:{enabled:!0,animation:c.svg,borderRadius:3,dateTimeLabelFormats:{millisecond:"%A, %b %e, %H:%M:%S.%L",second:"%A, %b %e, %H:%M:%S",minute:"%A, %b %e, %H:%M",hour:"%A, %b %e, %H:%M", +day:"%A, %b %e, %Y",week:"Week from %A, %b %e, %Y",month:"%B %Y",year:"%Y"},footerFormat:"",padding:8,snap:c.isTouchDevice?25:10,headerFormat:'{point.key}
',pointFormat:'\u25cf {series.name}: {point.y}
',backgroundColor:p("#f7f7f7").setOpacity(.85).get(),borderWidth:1,shadow:!0,style:{color:"#333333",cursor:"default",fontSize:"12px",pointerEvents:"none",whiteSpace:"nowrap"}},credits:{enabled:!0,href:"https://www.highcharts.com?credits", +position:{align:"right",x:-10,verticalAlign:"bottom",y:-5},style:{cursor:"pointer",color:"#999999",fontSize:"9px"},text:""}};c.setOptions=function(p){c.defaultOptions=y(!0,c.defaultOptions,p);c.time.update(y(c.defaultOptions.global,c.defaultOptions.time),!1);return c.defaultOptions};c.getOptions=function(){return c.defaultOptions};c.defaultPlotOptions=c.defaultOptions.plotOptions;c.time=new c.Time(y(c.defaultOptions.global,c.defaultOptions.time));c.dateFormat=function(p,y,z){return c.time.dateFormat(p, +y,z)};""});M(J,"parts/Tick.js",[J["parts/Globals.js"],J["parts/Utilities.js"]],function(c,p){var y=p.defined,G=p.isNumber,F=c.correctFloat,z=c.destroyObjectProperties,r=c.fireEvent,K=c.merge,v=c.pick,D=c.deg2rad;c.Tick=function(c,n,l,b,d){this.axis=c;this.pos=n;this.type=l||"";this.isNewLabel=this.isNew=!0;this.parameters=d||{};this.tickmarkOffset=this.parameters.tickmarkOffset;this.options=this.parameters.options;l||b||this.addLabel()};c.Tick.prototype={addLabel:function(){var w=this,n=w.axis,l= +n.options,b=n.chart,d=n.categories,a=n.names,g=w.pos,h=v(w.options&&w.options.labels,l.labels),e=n.tickPositions,m=g===e[0],u=g===e[e.length-1];d=this.parameters.category||(d?v(d[g],a[g],g):g);var E=w.label;e=e.info;var t,x;if(n.isDatetimeAxis&&e){var k=b.time.resolveDTLFormat(l.dateTimeLabelFormats[!l.grid&&e.higherRanks[g]||e.unitName]);var A=k.main}w.isFirst=m;w.isLast=u;w.formatCtx={axis:n,chart:b,isFirst:m,isLast:u,dateTimeLabelFormat:A,tickPositionInfo:e,value:n.isLog?F(n.lin2log(d)):d,pos:g}; +l=n.labelFormatter.call(w.formatCtx,this.formatCtx);if(x=k&&k.list)w.shortenLabel=function(){for(t=0;te&&b-m*ua&&(k=Math.round((d-b)/Math.cos(e*D)));else if(d=b+(1-m)*u,b-m*ua&&(t=a-c.x+t*m,x=-1),t=Math.min(E,t),tt||n.autoRotation&&(h.styles||{}).width)k=t;k&&(this.shortenLabel?this.shortenLabel():(A.width=Math.floor(k),(l.style||{}).textOverflow||(A.textOverflow="ellipsis"),h.css(A)))}, +getPosition:function(w,n,l,b){var d=this.axis,a=d.chart,g=b&&a.oldChartHeight||a.chartHeight;w={x:w?c.correctFloat(d.translate(n+l,null,null,b)+d.transB):d.left+d.offset+(d.opposite?(b&&a.oldChartWidth||a.chartWidth)-d.right-d.left:0),y:w?g-d.bottom+d.offset-(d.opposite?d.height:0):c.correctFloat(g-d.translate(n+l,null,null,b)-d.transB)};w.y=Math.max(Math.min(w.y,1E5),-1E5);r(this,"afterGetPosition",{pos:w});return w},getLabelPosition:function(c,n,l,b,d,a,g,h){var e=this.axis,m=e.transA,u=e.reversed, +E=e.staggerLines,t=e.tickRotCorr||{x:0,y:0},x=d.y,k=b||e.reserveSpaceDefault?0:-e.labelOffset*("center"===e.labelAlign?.5:1),A={};y(x)||(x=0===e.side?l.rotation?-8:-l.getBBox().height:2===e.side?t.y+8:Math.cos(l.rotation*D)*(t.y-l.getBBox(!1,0).height/2));c=c+d.x+k+t.x-(a&&b?a*m*(u?-1:1):0);n=n+x-(a&&!b?a*m*(u?1:-1):0);E&&(l=g/(h||1)%E,e.opposite&&(l=E-l-1),n+=e.labelOffset/E*l);A.x=c;A.y=Math.round(n);r(this,"afterGetLabelPosition",{pos:A,tickmarkOffset:a,index:g});return A},getMarkPath:function(c, +n,l,b,d,a){return a.crispLine(["M",c,n,"L",c+(d?0:-l),n+(d?l:0)],b)},renderGridLine:function(c,n,l){var b=this.axis,d=b.options,a=this.gridLine,g={},h=this.pos,e=this.type,m=v(this.tickmarkOffset,b.tickmarkOffset),u=b.chart.renderer,E=e?e+"Grid":"grid",t=d[E+"LineWidth"],x=d[E+"LineColor"];d=d[E+"LineDashStyle"];a||(b.chart.styledMode||(g.stroke=x,g["stroke-width"]=t,d&&(g.dashstyle=d)),e||(g.zIndex=1),c&&(n=0),this.gridLine=a=u.path().attr(g).addClass("highcharts-"+(e?e+"-":"")+"grid-line").add(b.gridGroup)); +if(a&&(l=b.getPlotLinePath({value:h+m,lineWidth:a.strokeWidth()*l,force:"pass",old:c})))a[c||this.isNew?"attr":"animate"]({d:l,opacity:n})},renderMark:function(c,n,l){var b=this.axis,d=b.options,a=b.chart.renderer,g=this.type,h=g?g+"Tick":"tick",e=b.tickSize(h),m=this.mark,u=!m,E=c.x;c=c.y;var t=v(d[h+"Width"],!g&&b.isXAxis?1:0);d=d[h+"Color"];e&&(b.opposite&&(e[0]=-e[0]),u&&(this.mark=m=a.path().addClass("highcharts-"+(g?g+"-":"")+"tick").add(b.axisGroup),b.chart.styledMode||m.attr({stroke:d,"stroke-width":t})), +m[u?"attr":"animate"]({d:this.getMarkPath(E,c,e[0],m.strokeWidth()*l,b.horiz,a),opacity:n}))},renderLabel:function(c,n,l,b){var d=this.axis,a=d.horiz,g=d.options,h=this.label,e=g.labels,m=e.step;d=v(this.tickmarkOffset,d.tickmarkOffset);var u=!0,E=c.x;c=c.y;h&&G(E)&&(h.xy=c=this.getLabelPosition(E,c,h,a,e,d,b,m),this.isFirst&&!this.isLast&&!v(g.showFirstLabel,1)||this.isLast&&!this.isFirst&&!v(g.showLastLabel,1)?u=!1:!a||e.step||e.rotation||n||0===l||this.handleOverflow(c),m&&b%m&&(u=!1),u&&G(c.y)? +(c.opacity=l,h[this.isNewLabel?"attr":"animate"](c),this.isNewLabel=!1):(h.attr("y",-9999),this.isNewLabel=!0))},render:function(r,n,l){var b=this.axis,d=b.horiz,a=this.pos,g=v(this.tickmarkOffset,b.tickmarkOffset);a=this.getPosition(d,a,g,n);g=a.x;var h=a.y;b=d&&g===b.pos+b.len||!d&&h===b.pos?-1:1;l=v(l,1);this.isActive=!0;this.renderGridLine(n,l,b);this.renderMark(a,l,b);this.renderLabel(a,n,l,r);this.isNew=!1;c.fireEvent(this,"afterRender")},destroy:function(){z(this,this.axis)}}});M(J,"parts/Axis.js", +[J["parts/Globals.js"],J["parts/Utilities.js"]],function(c,p){var y=p.defined,G=p.isArray,F=p.isNumber,z=p.isString,r=p.objectEach,K=p.splat,v=c.addEvent,D=c.animObject,w=c.arrayMax,n=c.arrayMin,l=c.color,b=c.correctFloat,d=c.defaultOptions,a=c.deg2rad,g=c.destroyObjectProperties,h=c.extend,e=c.fireEvent,m=c.format,u=c.getMagnitude,E=c.merge,t=c.normalizeTickInterval,x=c.pick,k=c.removeEvent,A=c.seriesTypes,B=c.syncTimeout,H=c.Tick;p=function(){this.init.apply(this,arguments)};c.extend(p.prototype, +{defaultOptions:{dateTimeLabelFormats:{millisecond:{main:"%H:%M:%S.%L",range:!1},second:{main:"%H:%M:%S",range:!1},minute:{main:"%H:%M",range:!1},hour:{main:"%H:%M",range:!1},day:{main:"%e. %b"},week:{main:"%e. %b"},month:{main:"%b '%y"},year:{main:"%Y"}},endOnTick:!1,labels:{enabled:!0,indentation:10,x:0,style:{color:"#666666",cursor:"default",fontSize:"11px"}},maxPadding:.01,minorTickLength:2,minorTickPosition:"outside",minPadding:.01,showEmpty:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100, +tickmarkPlacement:"between",tickPosition:"outside",title:{align:"middle",style:{color:"#666666"}},type:"linear",minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#ccd6eb",lineWidth:1,gridLineColor:"#e6e6e6",tickColor:"#ccd6eb"},defaultYAxisOptions:{endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:-8},startOnTick:!0,title:{rotation:270,text:"Values"},stackLabels:{allowOverlap:!1,enabled:!1,crop:!0,overflow:"justify",formatter:function(){return c.numberFormat(this.total, +-1)},style:{color:"#000000",fontSize:"11px",fontWeight:"bold",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},defaultLeftAxisOptions:{labels:{x:-15},title:{rotation:270}},defaultRightAxisOptions:{labels:{x:15},title:{rotation:90}},defaultBottomAxisOptions:{labels:{autoRotation:[-45],x:0},margin:15,title:{rotation:0}},defaultTopAxisOptions:{labels:{autoRotation:[-45],x:0},margin:15,title:{rotation:0}},init:function(a,b){var f=b.isX,q=this;q.chart=a;q.horiz=a.inverted&&!q.isZAxis?!f:f;q.isXAxis= +f;q.coll=q.coll||(f?"xAxis":"yAxis");e(this,"init",{userOptions:b});q.opposite=b.opposite;q.side=b.side||(q.horiz?q.opposite?0:2:q.opposite?1:3);q.setOptions(b);var d=this.options,k=d.type;q.labelFormatter=d.labels.formatter||q.defaultLabelFormatter;q.userOptions=b;q.minPixelPadding=0;q.reversed=d.reversed;q.visible=!1!==d.visible;q.zoomEnabled=!1!==d.zoomEnabled;q.hasNames="category"===k||!0===d.categories;q.categories=d.categories||q.hasNames;q.names||(q.names=[],q.names.keys={});q.plotLinesAndBandsGroups= +{};q.isLog="logarithmic"===k;q.isDatetimeAxis="datetime"===k;q.positiveValuesOnly=q.isLog&&!q.allowNegativeLog;q.isLinked=y(d.linkedTo);q.ticks={};q.labelEdge=[];q.minorTicks={};q.plotLinesAndBands=[];q.alternateBands={};q.len=0;q.minRange=q.userMinRange=d.minRange||d.maxZoom;q.range=d.range;q.offset=d.offset||0;q.stacks={};q.oldStacks={};q.stacksTouched=0;q.max=null;q.min=null;q.crosshair=x(d.crosshair,K(a.options.tooltip.crosshairs)[f?0:1],!1);b=q.options.events;-1===a.axes.indexOf(q)&&(f?a.axes.splice(a.xAxis.length, +0,q):a.axes.push(q),a[q.coll].push(q));q.series=q.series||[];a.inverted&&!q.isZAxis&&f&&void 0===q.reversed&&(q.reversed=!0);r(b,function(a,b){c.isFunction(a)&&v(q,b,a)});q.lin2log=d.linearToLogConverter||q.lin2log;q.isLog&&(q.val2lin=q.log2lin,q.lin2val=q.lin2log);e(this,"afterInit")},setOptions:function(a){this.options=E(this.defaultOptions,"yAxis"===this.coll&&this.defaultYAxisOptions,[this.defaultTopAxisOptions,this.defaultRightAxisOptions,this.defaultBottomAxisOptions,this.defaultLeftAxisOptions][this.side], +E(d[this.coll],a));e(this,"afterSetOptions",{userOptions:a})},defaultLabelFormatter:function(){var a=this.axis,b=this.value,e=a.chart.time,k=a.categories,g=this.dateTimeLabelFormat,h=d.lang,B=h.numericSymbols;h=h.numericSymbolMagnitude||1E3;var A=B&&B.length,t=a.options.labels.format;a=a.isLog?Math.abs(b):a.tickInterval;if(t)var u=m(t,this,e);else if(k)u=b;else if(g)u=e.dateFormat(g,b);else if(A&&1E3<=a)for(;A--&&void 0===u;)e=Math.pow(h,A+1),a>=e&&0===10*b%e&&null!==B[A]&&0!==b&&(u=c.numberFormat(b/ +e,-1)+B[A]);void 0===u&&(u=1E4<=Math.abs(b)?c.numberFormat(b,-1):c.numberFormat(b,-1,void 0,""));return u},getSeriesExtremes:function(){var a=this,b=a.chart,d;e(this,"getSeriesExtremes",null,function(){a.hasVisibleSeries=!1;a.dataMin=a.dataMax=a.threshold=null;a.softThreshold=!a.isXAxis;a.buildStacks&&a.buildStacks();a.series.forEach(function(f){if(f.visible||!b.options.chart.ignoreHiddenSeries){var q=f.options,e=q.threshold;a.hasVisibleSeries=!0;a.positiveValuesOnly&&0>=e&&(e=null);if(a.isXAxis){if(q= +f.xData,q.length){d=f.getXExtremes(q);var c=d.min;var k=d.max;F(c)||c instanceof Date||(q=q.filter(F),d=f.getXExtremes(q),c=d.min,k=d.max);q.length&&(a.dataMin=Math.min(x(a.dataMin,c),c),a.dataMax=Math.max(x(a.dataMax,k),k))}}else if(f.getExtremes(),k=f.dataMax,c=f.dataMin,y(c)&&y(k)&&(a.dataMin=Math.min(x(a.dataMin,c),c),a.dataMax=Math.max(x(a.dataMax,k),k)),y(e)&&(a.threshold=e),!q.softThreshold||a.positiveValuesOnly)a.softThreshold=!1}})});e(this,"afterGetSeriesExtremes")},translate:function(a, +b,d,e,c,k){var f=this.linkedParent||this,q=1,g=0,h=e?f.oldTransA:f.transA;e=e?f.oldMin:f.min;var m=f.minPixelPadding;c=(f.isOrdinal||f.isBroken||f.isLog&&c)&&f.lin2val;h||(h=f.transA);d&&(q*=-1,g=f.len);f.reversed&&(q*=-1,g-=q*(f.sector||f.len));b?(a=(a*q+g-m)/h+e,c&&(a=f.lin2val(a))):(c&&(a=f.val2lin(a)),a=F(e)?q*(a-e)*h+g+q*m+(F(k)?h*k:0):void 0);return a},toPixels:function(a,b){return this.translate(a,!1,!this.horiz,null,!0)+(b?0:this.pos)},toValue:function(a,b){return this.translate(a-(b?0:this.pos), +!0,!this.horiz,null,!0)},getPlotLinePath:function(a){var b=this,q=b.chart,d=b.left,c=b.top,k=a.old,g=a.value,h=a.translatedValue,m=a.lineWidth,B=a.force,A,t,u,H,n=k&&q.oldChartHeight||q.chartHeight,l=k&&q.oldChartWidth||q.chartWidth,E,r=b.transB,w=function(a,b,f){if("pass"!==B&&af)B?a=Math.min(Math.max(b,a),f):E=!0;return a};a={value:g,lineWidth:m,old:k,force:B,acrossPanes:a.acrossPanes,translatedValue:h};e(this,"getPlotLinePath",a,function(a){h=x(h,b.translate(g,null,null,k));h=Math.min(Math.max(-1E5, +h),1E5);A=u=Math.round(h+r);t=H=Math.round(n-h-r);F(h)?b.horiz?(t=c,H=n-b.bottom,A=u=w(A,d,d+b.width)):(A=d,u=l-b.right,t=H=w(t,c,c+b.height)):(E=!0,B=!1);a.path=E&&!B?null:q.renderer.crispLine(["M",A,t,"L",u,H],m||1)});return a.path},getLinearTickPositions:function(a,f,d){var q=b(Math.floor(f/a)*a);d=b(Math.ceil(d/a)*a);var e=[],c;b(q+a)===q&&(c=20);if(this.single)return[f];for(f=q;f<=d;){e.push(f);f=b(f+a,c);if(f===k)break;var k=f}return e},getMinorTickInterval:function(){var a=this.options;return!0=== +a.minorTicks?x(a.minorTickInterval,"auto"):!1===a.minorTicks?null:a.minorTickInterval},getMinorTickPositions:function(){var a=this,b=a.options,d=a.tickPositions,e=a.minorTickInterval,c=[],k=a.pointRangePadding||0,g=a.min-k;k=a.max+k;var h=k-g;if(h&&h/e=this.minRange; +var B=this.minRange;var A=(B-d+b)/2;A=[b-A,x(a.min,b-A)];m&&(A[2]=this.isLog?this.log2lin(this.dataMin):this.dataMin);b=w(A);d=[b+B,x(a.max,b+B)];m&&(d[2]=this.isLog?this.log2lin(this.dataMax):this.dataMax);d=n(d);d-b=E)z=E,A=0;else if(f.dataMax<=E){var p=E;B=0}f.min=x(w,z,f.dataMin);f.max=x(v,p,f.dataMax)}k&&(f.positiveValuesOnly&&!a&&0>=Math.min(f.min,x(f.dataMin,f.min))&&c.error(10,1,d),f.min=b(f.log2lin(f.min),15),f.max=b(f.log2lin(f.max),15));f.range&&y(f.max)&&(f.userMin=f.min=w=Math.max(f.dataMin,f.minFromRange()),f.userMax=v=f.max,f.range=null);e(f,"foundExtremes");f.beforePadding&&f.beforePadding();f.adjustForMinRange(); +!(l||f.axisPointRange||f.usePercentage||m)&&y(f.min)&&y(f.max)&&(d=f.max-f.min)&&(!y(w)&&A&&(f.min-=d*A),!y(v)&&B&&(f.max+=d*B));F(q.softMin)&&!F(f.userMin)&&q.softMinf.max&&(f.max=v=q.softMax);F(q.floor)&&(f.min=Math.min(Math.max(f.min,q.floor),Number.MAX_VALUE));F(q.ceiling)&&(f.max=Math.max(Math.min(f.max,q.ceiling),x(f.userMax,-Number.MAX_VALUE)));r&&y(f.dataMin)&&(E=E||0,!y(w)&&f.min=E?f.min=f.options.minRange?Math.min(E, +f.max-f.minRange):E:!y(v)&&f.max>E&&f.dataMax<=E&&(f.max=f.options.minRange?Math.max(E,f.min+f.minRange):E));f.tickInterval=f.min===f.max||void 0===f.min||void 0===f.max?1:m&&!H&&n===f.linkedParent.options.tickPixelInterval?H=f.linkedParent.tickInterval:x(H,this.tickAmount?(f.max-f.min)/Math.max(this.tickAmount-1,1):void 0,l?1:(f.max-f.min)*n/Math.max(f.len,n));h&&!a&&f.series.forEach(function(a){a.processData(f.min!==f.oldMin||f.max!==f.oldMax)});f.setAxisTranslation(!0);f.beforeSetTickPositions&& +f.beforeSetTickPositions();f.postProcessTickInterval&&(f.tickInterval=f.postProcessTickInterval(f.tickInterval));f.pointRange&&!H&&(f.tickInterval=Math.max(f.pointRange,f.tickInterval));a=x(q.minTickInterval,f.isDatetimeAxis&&f.closestPointRange);!H&&f.tickIntervalf.tickInterval&&1E3f.max)),!!this.tickAmount));this.tickAmount||(f.tickInterval=f.unsquish()); +this.setTickPositions()},setTickPositions:function(){var a=this.options,b=a.tickPositions;var d=this.getMinorTickInterval();var k=a.tickPositioner,g=a.startOnTick,h=a.endOnTick;this.tickmarkOffset=this.categories&&"between"===a.tickmarkPlacement&&1===this.tickInterval?.5:0;this.minorTickInterval="auto"===d&&this.tickInterval?this.tickInterval/5:d;this.single=this.min===this.max&&y(this.min)&&!this.tickAmount&&(parseInt(this.min,10)===this.min||!1!==a.allowDecimals);this.tickPositions=d=b&&b.slice(); +!d&&(!this.ordinalPositions&&(this.max-this.min)/this.tickInterval>Math.max(2*this.len,200)?(d=[this.min,this.max],c.error(19,!1,this.chart)):d=this.isDatetimeAxis?this.getTimeTicks(this.normalizeTimeTickInterval(this.tickInterval,a.units),this.min,this.max,a.startOfWeek,this.ordinalPositions,this.closestPointRange,!0):this.isLog?this.getLogTickPositions(this.tickInterval,this.min,this.max):this.getLinearTickPositions(this.tickInterval,this.min,this.max),d.length>this.len&&(d=[d[0],d.pop()],d[0]=== +d[1]&&(d.length=1)),this.tickPositions=d,k&&(k=k.apply(this,[this.min,this.max])))&&(this.tickPositions=d=k);this.paddedTicks=d.slice(0);this.trimTicks(d,g,h);this.isLinked||(this.single&&2>d.length&&!this.categories&&(this.min-=.5,this.max+=.5),b||k||this.adjustTickAmount());e(this,"afterSetTickPositions")},trimTicks:function(a,b,d){var f=a[0],q=a[a.length-1],c=this.minPointOffset||0;e(this,"trimTicks");if(!this.isLinked){if(b&&-Infinity!==f)this.min=f;else for(;this.min-c>a[0];)a.shift();if(d)this.max= +q;else for(;this.max+cb&&(this.finalTickAmt=b,b=5);this.tickAmount=b},adjustTickAmount:function(){var a=this.options,d=this.tickInterval,e=this.tickPositions,c=this.tickAmount,k=this.finalTickAmt,g=e&&e.length,h=x(this.threshold,this.softThreshold?0:null),m;if(this.hasData()){if(gc&&(this.tickInterval*=2,this.setTickPositions());if(y(k)){for(d=a=e.length;d--;)(3===k&&1===d%2||2>=k&&0k&&(b=k)),y(f)&&(ek&&(e=k))),this.displayBtn=void 0!== +b||void 0!==e,this.setExtremes(b,e,!1,void 0,{trigger:"zoom"});a.zoomed=!0});return a.zoomed},setAxisSize:function(){var a=this.chart,b=this.options,d=b.offsets||[0,0,0,0],e=this.horiz,k=this.width=Math.round(c.relativeLength(x(b.width,a.plotWidth-d[3]+d[1]),a.plotWidth)),g=this.height=Math.round(c.relativeLength(x(b.height,a.plotHeight-d[0]+d[2]),a.plotHeight)),h=this.top=Math.round(c.relativeLength(x(b.top,a.plotTop+d[0]),a.plotHeight,a.plotTop));b=this.left=Math.round(c.relativeLength(x(b.left, +a.plotLeft+d[3]),a.plotWidth,a.plotLeft));this.bottom=a.chartHeight-g-h;this.right=a.chartWidth-k-b;this.len=Math.max(e?k:g,0);this.pos=e?b:h},getExtremes:function(){var a=this.isLog;return{min:a?b(this.lin2log(this.min)):this.min,max:a?b(this.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}},getThreshold:function(a){var b=this.isLog,d=b?this.lin2log(this.min):this.min;b=b?this.lin2log(this.max):this.max;null===a||-Infinity===a?a=d:Infinity=== +a?a=b:d>a?a=d:bb?a.align="right":195b&&(a.align="left")});return a.align},tickSize:function(a){var b=this.options,d=b[a+"Length"],c=x(b[a+"Width"],"tick"===a&&this.isXAxis&&!this.categories?1:0);if(c&&d){"inside"===b[a+"Position"]&&(d=-d);var k=[d,c]}a={tickSize:k};e(this,"afterTickSize",a);return a.tickSize},labelMetrics:function(){var a= +this.tickPositions&&this.tickPositions[0]||0;return this.chart.renderer.fontMetrics(this.options.labels.style&&this.options.labels.style.fontSize,this.ticks[a]&&this.ticks[a].label)},unsquish:function(){var d=this.options.labels,f=this.horiz,e=this.tickInterval,c=e,k=this.len/(((this.categories?1:0)+this.max-this.min)/e),g,h=d.rotation,m=this.labelMetrics(),B,A=Number.MAX_VALUE,t,u=this.max-this.min,H=function(a){var d=a/(k||1);d=1u&&Infinity!==a&&Infinity!==k&&(d=Math.ceil(u/ +e));return b(d*e)};f?(t=!d.staggerLines&&!d.step&&(y(h)?[h]:k=b){B=H(Math.abs(m.h/Math.sin(a*b)));var d=B+Math.abs(b/360);d(e.step|| +0)&&!e.rotation&&(this.staggerLines||1)*this.len/c||!d&&(e.style&&parseInt(e.style.width,10)||k&&k-b.spacing[3]||.33*b.chartWidth)},renderUnsquish:function(){var a=this.chart,b=a.renderer,d=this.tickPositions,e=this.ticks,c=this.options.labels,k=c&&c.style||{},g=this.horiz,h=this.getSlotWidth(),m=Math.max(1,Math.round(h-2*(c.padding||5))),B={},A=this.labelMetrics(),t=c.style&&c.style.textOverflow,u=0;z(c.rotation)||(B.rotation=c.rotation||0);d.forEach(function(a){(a=e[a])&&a.label&&a.label.textPxLength> +u&&(u=a.label.textPxLength)});this.maxLabelLength=u;if(this.autoRotation)u>m&&u>A.h?B.rotation=this.labelRotation:this.labelRotation=0;else if(h){var H=m;if(!t){var n="clip";for(m=d.length;!g&&m--;){var x=d[m];if(x=e[x].label)x.styles&&"ellipsis"===x.styles.textOverflow?x.css({textOverflow:"clip"}):x.textPxLength>h&&x.css({width:h+"px"}),x.getBBox().height>this.len/d.length-(A.h-A.f)&&(x.specificTextOverflow="ellipsis")}}}B.rotation&&(H=u>.5*a.chartHeight?.33*a.chartHeight:u,t||(n="ellipsis"));if(this.labelAlign= +c.align||this.autoLabelAlign(this.labelRotation))B.align=this.labelAlign;d.forEach(function(a){var b=(a=e[a])&&a.label,d=k.width,f={};b&&(b.attr(B),a.shortenLabel?a.shortenLabel():H&&!d&&"nowrap"!==k.whiteSpace&&(H=this.min&&a<=this.max)e[a]||(e[a]=new H(this,a)),c&&e[a].isNew&& +e[a].render(b,!0,-1),e[a].render(b)},render:function(){var a=this,b=a.chart,d=a.options,k=a.isLog,g=a.isLinked,h=a.tickPositions,m=a.axisTitle,A=a.ticks,t=a.minorTicks,u=a.alternateBands,n=d.stackLabels,x=d.alternateGridColor,l=a.tickmarkOffset,E=a.axisLine,w=a.showAxis,z=D(b.renderer.globalAnimation),v,p;a.labelEdge.length=0;a.overlap=!1;[A,t,u].forEach(function(a){r(a,function(a){a.isActive=!1})});if(a.hasData()||g)a.minorTickInterval&&!a.categories&&a.getMinorTickPositions().forEach(function(b){a.renderMinorTick(b)}), +h.length&&(h.forEach(function(b,d){a.renderTick(b,d)}),l&&(0===a.min||a.single)&&(A[-1]||(A[-1]=new H(a,-1,null,!0)),A[-1].render(-1))),x&&h.forEach(function(d,e){p=void 0!==h[e+1]?h[e+1]+l:a.max-l;0===e%2&&dr&&(!v||g<=p)&&void 0!==g&&n.push(g);g>p&&(b=!0);var g=a}}}else r=this.lin2log(r),p=this.lin2log(p),c=v?this.getMinorTickInterval():z.tickInterval,c=F("auto"===c?null:c,this._minorAutoInterval,z.tickPixelInterval/(v?5:1)*(p-r)/((v?w/this.tickPositions.length:w)||1)),c=G(c,null,y(c)),n=this.getLinearTickPositions(c,r,p).map(this.log2lin),v|| +(this._minorAutoInterval=c/5);v||(this.tickInterval=c);return n};p.prototype.log2lin=function(c){return Math.log(c)/Math.LN10};p.prototype.lin2log=function(c){return Math.pow(10,c)}});M(J,"parts/PlotLineOrBand.js",[J["parts/Globals.js"],J["parts/Axis.js"],J["parts/Utilities.js"]],function(c,p,y){var G=y.defined,F=y.erase,z=y.objectEach,r=c.arrayMax,K=c.arrayMin,v=c.destroyObjectProperties,D=c.merge,w=c.pick;c.PlotLineOrBand=function(c,l){this.axis=c;l&&(this.options=l,this.id=l.id)};c.PlotLineOrBand.prototype= +{render:function(){c.fireEvent(this,"render");var n=this,l=n.axis,b=l.horiz,d=n.options,a=d.label,g=n.label,h=d.to,e=d.from,m=d.value,u=G(e)&&G(h),E=G(m),t=n.svgElem,x=!t,k=[],A=d.color,B=w(d.zIndex,0),H=d.events;k={"class":"highcharts-plot-"+(u?"band ":"line ")+(d.className||"")};var q={},f=l.chart.renderer,C=u?"bands":"lines";l.isLog&&(e=l.log2lin(e),h=l.log2lin(h),m=l.log2lin(m));l.chart.styledMode||(E?(k.stroke=A||"#999999",k["stroke-width"]=w(d.width,1),d.dashStyle&&(k.dashstyle=d.dashStyle)): +u&&(k.fill=A||"#e6ebf5",d.borderWidth&&(k.stroke=d.borderColor,k["stroke-width"]=d.borderWidth)));q.zIndex=B;C+="-"+B;(A=l.plotLinesAndBandsGroups[C])||(l.plotLinesAndBandsGroups[C]=A=f.g("plot-"+C).attr(q).add());x&&(n.svgElem=t=f.path().attr(k).add(A));if(E)k=l.getPlotLinePath({value:m,lineWidth:t.strokeWidth(),acrossPanes:d.acrossPanes});else if(u)k=l.getPlotBandPath(e,h,d);else return;(x||!t.d)&&k&&k.length?(t.attr({d:k}),H&&z(H,function(a,b){t.on(b,function(a){H[b].apply(n,[a])})})):t&&(k?(t.show(!0), +t.animate({d:k})):t.d&&(t.hide(),g&&(n.label=g=g.destroy())));a&&(G(a.text)||G(a.formatter))&&k&&k.length&&0this.max&&l>this.max;if(d&&b){if(c){var e=d.toString()===b.toString();h=0}for(c=0;cx-m?x:x-m);else if(u)e[a]=Math.max(k,f+m+d>b?f:f+m);else return!1},p=function(a,b,d,c,f){var k;fb-h?k=!1:e[a]=fb-c/2?b-c-2:f-d/2;return k},z=function(a){var b=f;f=n;n=b;u=a},L=function(){!1!== +v.apply(0,f)?!1!==p.apply(0,n)||u||(z(!0),L()):u?e.x=e.y=0:(z(!0),L())};(c.inverted||1b&&(m=!1);c.isHeader?f=t?-l:h.plotHeight+l:(f=f.yAxis,f=f.pos-k+Math.max(0,Math.min(c.plotY|| +0,f.len)));g.push({target:f,rank:c.isHeader?1:0,size:B.tt.getBBox().height+1,point:c,x:b,tt:q})}});this.cleanSplit();u.positioner&&g.forEach(function(b){var d=u.positioner.call(a,b.tt.getBBox().width,b.size,b.point);b.x=d.x;b.align=0;b.target=d.y;b.rank=w(d.rank,b.rank)});c.distribute(g,h.plotHeight+l);g.forEach(function(b){var d=b.point,c=d.series,e=c&&c.yAxis;b.tt.attr({visibility:void 0===b.pos?"hidden":"inherit",x:m||d.isHeader||u.positioner?b.x:d.plotX+h.plotLeft+a.distance,y:b.pos+k,anchorX:d.isHeader? +d.plotX+h.plotLeft:d.plotX+c.xAxis.pos,anchorY:d.isHeader?h.plotTop+h.plotHeight/2:e.pos+Math.max(0,Math.min(d.plotY,e.len))})})},updatePosition:function(b){var d=this.chart,a=this.getLabel(),g=(this.options.positioner||this.getPosition).call(this,a.width,a.height,b),h=b.plotX+d.plotLeft;b=b.plotY+d.plotTop;if(this.outside){var e=(this.options.borderWidth||0)+2*this.distance;this.renderer.setSize(a.width+e,a.height+e,!1);if(a=d.containerScaling)c.css(this.container,{transform:"scale("+a.scaleX+", "+ +a.scaleY+")"}),h*=a.scaleX,b*=a.scaleY;h+=d.pointer.chartPosition.left-g.x;b+=d.pointer.chartPosition.top-g.y}this.move(Math.round(g.x),Math.round(g.y||0),h,b)},getDateFormat:function(b,d,a,c){var g=this.chart.time,e=g.dateFormat("%m-%d %H:%M:%S.%L",d),m={millisecond:15,second:12,minute:9,hour:6,day:3},u="millisecond";for(n in l){if(b===l.week&&+g.dateFormat("%w",d)===a&&"00:00:00.000"===e.substr(6)){var n="week";break}if(l[n]>b){n=u;break}if(m[n]&&e.substr(m[n])!=="01-01 00:00:00.000".substr(m[n]))break; +"week"!==n&&(u=n)}if(n)var t=g.resolveDTLFormat(c[n]).main;return t},getXDateFormat:function(b,d,a){d=d.dateTimeLabelFormats;var c=a&&a.closestPointRange;return(c?this.getDateFormat(c,b.x,a.options.startOfWeek,d):d.day)||d.year},tooltipFooterHeaderFormatter:function(b,d){var a=d?"footer":"header",g=b.series,h=g.tooltipOptions,e=h.xDateFormat,m=g.xAxis,u=m&&"datetime"===m.options.type&&G(b.key),l=h[a+"Format"];d={isFooter:d,labelConfig:b};c.fireEvent(this,"headerFormatter",d,function(a){u&&!e&&(e= +this.getXDateFormat(b,h,m));u&&e&&(b.point&&b.point.tooltipDateKeys||["key"]).forEach(function(a){l=l.replace("{point."+a+"}","{point."+a+":"+e+"}")});g.chart.styledMode&&(l=this.styledModeFormat(l));a.text=v(l,{point:b,series:g},this.chart.time)});return d.text},bodyFormatter:function(b){return b.map(function(b){var a=b.series.tooltipOptions;return(a[(b.point.formatPrefix||"point")+"Formatter"]||b.point.tooltipFormatter).call(b.point,a[(b.point.formatPrefix||"point")+"Format"]||"")})},styledModeFormat:function(b){return b.replace('style="font-size: 10px"', +'class="highcharts-header"').replace(/style="color:{(point|series)\.color}"/g,'class="highcharts-color-{$1.colorIndex}"')}}});M(J,"parts/Pointer.js",[J["parts/Globals.js"],J["parts/Utilities.js"]],function(c,p){var y=p.defined,G=p.isNumber,F=p.isObject,z=p.objectEach,r=p.splat,K=c.addEvent,v=c.attr,D=c.charts,w=c.color,n=c.css,l=c.extend,b=c.find,d=c.fireEvent,a=c.offset,g=c.pick,h=c.Tooltip;c.Pointer=function(a,b){this.init(a,b)};c.Pointer.prototype={init:function(a,b){this.options=b;this.chart= +a;this.runChartClick=b.chart.events&&!!b.chart.events.click;this.pinchDown=[];this.lastValidTouch={};h&&(a.tooltip=new h(a,b.tooltip),this.followTouchMove=g(b.tooltip.followTouchMove,!0));this.setDOMEvents()},zoomOption:function(a){var b=this.chart,d=b.options.chart,c=d.zoomType||"";b=b.inverted;/touch/.test(a.type)&&(c=g(d.pinchType,c));this.zoomX=a=/x/.test(c);this.zoomY=c=/y/.test(c);this.zoomHor=a&&!b||c&&b;this.zoomVert=c&&!b||a&&b;this.hasZoom=a||c},normalize:function(b,d){var c=b.touches?b.touches.length? +b.touches.item(0):b.changedTouches[0]:b;d||(this.chartPosition=d=a(this.chart.container));var e=c.pageX-d.left;d=c.pageY-d.top;if(c=this.chart.containerScaling)e/=c.scaleX,d/=c.scaleY;return l(b,{chartX:Math.round(e),chartY:Math.round(d)})},getCoordinates:function(a){var b={xAxis:[],yAxis:[]};this.chart.axes.forEach(function(d){b[d.isXAxis?"xAxis":"yAxis"].push({axis:d,value:d.toValue(a[d.horiz?"chartX":"chartY"])})});return b},findNearestKDPoint:function(a,b,d){var c;a.forEach(function(a){var e= +!(a.noSharedTooltip&&b)&&0>a.options.findNearestPointBy.indexOf("y");a=a.searchPoint(d,e);if((e=F(a,!0))&&!(e=!F(c,!0))){e=c.distX-a.distX;var k=c.dist-a.dist,g=(a.series.group&&a.series.group.zIndex)-(c.series.group&&c.series.group.zIndex);e=0<(0!==e&&b?e:0!==k?k:0!==g?g:c.series.index>a.series.index?-1:1)}e&&(c=a)});return c},getPointFromEvent:function(a){a=a.target;for(var b;a&&!b;)b=a.point,a=a.parentNode;return b},getChartCoordinatesFromPoint:function(a,b){var d=a.series,c=d.xAxis;d=d.yAxis; +var e=g(a.clientX,a.plotX),h=a.shapeArgs;if(c&&d)return b?{chartX:c.len+c.pos-e,chartY:d.len+d.pos-a.plotY}:{chartX:e+c.pos,chartY:a.plotY+d.pos};if(h&&h.x&&h.y)return{chartX:h.x,chartY:h.y}},getHoverData:function(a,d,c,h,t,x){var e,m=[];h=!(!h||!a);var B=d&&!d.stickyTracking?[d]:c.filter(function(a){return a.visible&&!(!t&&a.directTouch)&&g(a.options.enableMouseTracking,!0)&&a.stickyTracking});d=(e=h?a:this.findNearestKDPoint(B,t,x))&&e.series;e&&(t&&!d.noSharedTooltip?(B=c.filter(function(a){return a.visible&& +!(!t&&a.directTouch)&&g(a.options.enableMouseTracking,!0)&&!a.noSharedTooltip}),B.forEach(function(a){var d=b(a.points,function(a){return a.x===e.x&&!a.isNull});F(d)&&(a.chart.isBoosting&&(d=a.getPoint(d)),m.push(d))})):m.push(e));return{hoverPoint:e,hoverSeries:d,hoverPoints:m}},runPointActions:function(a,b){var d=this.chart,e=d.tooltip&&d.tooltip.options.enabled?d.tooltip:void 0,h=e?e.shared:!1,m=b||d.hoverPoint,k=m&&m.series||d.hoverSeries;k=this.getHoverData(m,k,d.series,"touchmove"!==a.type&& +(!!b||k&&k.directTouch&&this.isDirectTouch),h,a);m=k.hoverPoint;var A=k.hoverPoints;b=(k=k.hoverSeries)&&k.tooltipOptions.followPointer;h=h&&k&&!k.noSharedTooltip;if(m&&(m!==d.hoverPoint||e&&e.isHidden)){(d.hoverPoints||[]).forEach(function(a){-1===A.indexOf(a)&&a.setState()});if(d.hoverSeries!==k)k.onMouseOver();this.applyInactiveState(A);(A||[]).forEach(function(a){a.setState("hover")});d.hoverPoint&&d.hoverPoint.firePointEvent("mouseOut");if(!m.series)return;m.firePointEvent("mouseOver");d.hoverPoints= +A;d.hoverPoint=m;e&&e.refresh(h?A:m,a)}else b&&e&&!e.isHidden&&(m=e.getAnchor([{}],a),e.updatePosition({plotX:m[0],plotY:m[1]}));this.unDocMouseMove||(this.unDocMouseMove=K(d.container.ownerDocument,"mousemove",function(a){var b=D[c.hoverChartIndex];if(b)b.pointer.onDocumentMouseMove(a)}));d.axes.forEach(function(b){var d=g(b.crosshair.snap,!0),e=d?c.find(A,function(a){return a.series[b.coll]===b}):void 0;e||!d?b.drawCrosshair(a,e):b.hideCrosshair()})},applyInactiveState:function(a){var b=[],d;(a|| +[]).forEach(function(a){d=a.series;b.push(d);d.linkedParent&&b.push(d.linkedParent);d.linkedSeries&&(b=b.concat(d.linkedSeries));d.navigatorSeries&&b.push(d.navigatorSeries)});this.chart.series.forEach(function(a){-1===b.indexOf(a)?a.setState("inactive",!0):a.options.inactiveOtherPoints&&a.setAllPointsToState("inactive")})},reset:function(a,b){var d=this.chart,c=d.hoverSeries,e=d.hoverPoint,g=d.hoverPoints,k=d.tooltip,h=k&&k.shared?g:e;a&&h&&r(h).forEach(function(b){b.series.isCartesian&&void 0=== +b.plotX&&(a=!1)});if(a)k&&h&&r(h).length&&(k.refresh(h),k.shared&&g?g.forEach(function(a){a.setState(a.state,!0);a.series.isCartesian&&(a.series.xAxis.crosshair&&a.series.xAxis.drawCrosshair(null,a),a.series.yAxis.crosshair&&a.series.yAxis.drawCrosshair(null,a))}):e&&(e.setState(e.state,!0),d.axes.forEach(function(a){a.crosshair&&a.drawCrosshair(null,e)})));else{if(e)e.onMouseOut();g&&g.forEach(function(a){a.setState()});if(c)c.onMouseOut();k&&k.hide(b);this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()); +d.axes.forEach(function(a){a.hideCrosshair()});this.hoverX=d.hoverPoints=d.hoverPoint=null}},scaleGroups:function(a,b){var d=this.chart,c;d.series.forEach(function(e){c=a||e.getPlotBox();e.xAxis&&e.xAxis.zoomEnabled&&e.group&&(e.group.attr(c),e.markerGroup&&(e.markerGroup.attr(c),e.markerGroup.clip(b?d.clipRect:null)),e.dataLabelsGroup&&e.dataLabelsGroup.attr(c))});d.clipRect.attr(b||d.clipBox)},dragStart:function(a){var b=this.chart;b.mouseIsDown=a.type;b.cancelClick=!1;b.mouseDownX=this.mouseDownX= +a.chartX;b.mouseDownY=this.mouseDownY=a.chartY},drag:function(a){var b=this.chart,d=b.options.chart,c=a.chartX,e=a.chartY,g=this.zoomHor,k=this.zoomVert,h=b.plotLeft,B=b.plotTop,H=b.plotWidth,q=b.plotHeight,f=this.selectionMarker,l=this.mouseDownX,n=this.mouseDownY,r=d.panKey&&a[d.panKey+"Key"];if(!f||!f.touch)if(ch+H&&(c=h+H),eB+q&&(e=B+q),this.hasDragged=Math.sqrt(Math.pow(l-c,2)+Math.pow(n-e,2)),10x.max&&(r=x.max-m,f=!0);f?(B-=.8*(B-n[d][0]),k||(q-=.8*(q-n[d][1])),p()):n[d]=[B,q];t||(w[d]=u-e,w[h]=m);w=t?1/E:E;y[h]=m;y[d]=r;v[t?c?"scaleY":"scaleX":"scale"+a]=E;v["translate"+a]=w*e+(B-w*A)},pinch:function(c){var r=this,p=r.chart,v=r.pinchDown,z=c.touches,w=z.length,n=r.lastValidTouch,l=r.hasZoom,b=r.selectionMarker,d={},a=1===w&&(r.inClass(c.target,"highcharts-tracker")&&p.runTrackerClick||r.runChartClick),g={}; +1c-6&&hx?this.maxItemWidth:a.itemWidth;c&&this.itemX-d+b>x&&(this.itemX=d,this.lastLineHeight&&(this.itemY+=n+this.lastLineHeight+l),this.lastLineHeight=0);this.lastItemY=n+this.itemY+l;this.lastLineHeight=Math.max(m,this.lastLineHeight);a._legendItemPos=[this.itemX,this.itemY];c?this.itemX+=b:(this.itemY+=n+m+l,this.lastLineHeight=m);this.offsetWidth=this.widthOption||Math.max((c? +this.itemX-d-(a.checkbox?0:t):b)+d,this.offsetWidth)},getAllItems:function(){var a=[];this.chart.series.forEach(function(b){var d=b&&b.options;b&&w(d.showInLegend,y(d.linkedTo)?!1:void 0,!0)&&(a=a.concat(b.legendItems||("point"===d.legendType?b.data:b)))});K(this,"afterGetAllItems",{allItems:a});return a},getAlignment:function(){var a=this.options;return this.proximate?a.align.charAt(0)+"tv":a.floating?"":a.align.charAt(0)+a.verticalAlign.charAt(0)+a.layout.charAt(0)},adjustMargins:function(a,b){var d= +this.chart,c=this.options,g=this.getAlignment(),l=d.options.title.margin,n=void 0!==l?d.titleOffset[0]+l:0,t=void 0!==l?d.titleOffset[2]+l:0;g&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(e,k){e.test(g)&&!y(a[k])&&(d[v[k]]=Math.max(d[v[k]],d.legend[(k+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][k]*c[k%2?"x":"y"]+w(c.margin,12)+b[k]+(0===k&&(0===d.titleOffset[0]?0:n))+(2===k&&(0===d.titleOffset[2]?0:t))))})},proximatePositions:function(){var a=this.chart,b=[], +d="left"===this.options.align;this.allItems.forEach(function(e){var g=d;if(e.yAxis&&e.points){e.xAxis.options.reversed&&(g=!g);var h=c.find(g?e.points:e.points.slice(0).reverse(),function(a){return G(a.plotY)});g=e.legendGroup.getBBox().height;var l=e.yAxis.top-a.plotTop;e.visible?(h=h?h.plotY:e.yAxis.height,h+=l-.3*g):h=l+e.yAxis.height;b.push({target:h,size:g,item:e})}},this);c.distribute(b,a.plotHeight);b.forEach(function(b){b.item._legendItemPos[1]=a.plotTop-a.spacing[0]+b.pos})},render:function(){var a= +this.chart,b=a.renderer,d=this.group,e,m=this.box,n=this.options,w=this.padding;this.itemX=w;this.itemY=this.initialItemY;this.lastItemY=this.offsetWidth=0;this.widthOption=c.relativeLength(n.width,a.spacingBox.width-w);var t=a.spacingBox.width-2*w-n.x;-1<["rm","lm"].indexOf(this.getAlignment().substring(0,2))&&(t/=2);this.maxLegendWidth=this.widthOption||t;d||(this.group=d=b.g("legend").attr({zIndex:7}).add(),this.contentGroup=b.g().attr({zIndex:1}).add(d),this.scrollGroup=b.g().add(this.contentGroup)); +this.renderTitle();t=this.getAllItems();l(t,function(a,b){return(a.options&&a.options.legendIndex||0)-(b.options&&b.options.legendIndex||0)});n.reversed&&t.reverse();this.allItems=t;this.display=e=!!t.length;this.itemHeight=this.totalItemWidth=this.maxItemWidth=this.lastLineHeight=0;t.forEach(this.renderItem,this);t.forEach(this.layoutItem,this);t=(this.widthOption||this.offsetWidth)+w;var x=this.lastItemY+this.lastLineHeight+this.titleHeight;x=this.handleOverflow(x);x+=w;m||(this.box=m=b.rect().addClass("highcharts-legend-box").attr({r:n.borderRadius}).add(d), +m.isNew=!0);a.styledMode||m.attr({stroke:n.borderColor,"stroke-width":n.borderWidth||0,fill:n.backgroundColor||"none"}).shadow(n.shadow);0l&&!1!==A.enabled?(this.clipHeight=x=Math.max(l-20-this.titleHeight- +n,0),this.currentPage=w(this.currentPage,1),this.fullHeight=a,r.forEach(function(a,b){var d=a._legendItemPos[1],c=Math.round(a.legendItem.getBBox().height),k=f.length;if(!k||d-f[k-1]>x&&(C||d)!==f[k-1])f.push(C||d),k++;a.pageIx=k-1;C&&(r[b-1].pageIx=k-1);b===r.length-1&&d+c-f[k-1]>x&&d!==C&&(f.push(d),a.pageIx=k);d!==C&&(C=d)}),k||(k=b.clipRect=c.clipRect(0,n,9999,0),b.contentGroup.clip(k)),p(x),q||(this.nav=q=c.g().attr({zIndex:1}).add(this.group),this.up=c.symbol("triangle",0,0,H,H).add(q),v("upTracker").on("click", +function(){b.scroll(-1,B)}),this.pager=c.text("",15,10).addClass("highcharts-legend-navigation"),d.styledMode||this.pager.css(A.style),this.pager.add(q),this.down=c.symbol("triangle-down",0,0,H,H).add(q),v("downTracker").on("click",function(){b.scroll(1,B)})),b.scroll(0),a=l):q&&(p(),this.nav=q.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0);return a},scroll:function(a,b){var d=this.pages,c=d.length,g=this.currentPage+a;a=this.clipHeight;var l=this.options.navigation,w=this.pager, +t=this.padding;g>c&&(g=c);0m&&(d=typeof b[0],"string"===d?a.name=b[0]:"number"===d&&(a.x=b[0]),l++);n=h.value;)h=a[++c];this.nonZonedColor||(this.nonZonedColor=this.color);this.color=h&&h.color&&!this.options.color?h.color:this.nonZonedColor;return h},destroy:function(){var d=this.series.chart,a=d.hoverPoints,c;d.pointCount--;a&&(this.setState(),G(a,this),a.length||(d.hoverPoints=null));if(this===d.hoverPoint)this.onMouseOut();if(this.graphic||this.dataLabel||this.dataLabels)b(this),this.destroyElements(); +this.legendItem&&d.legend.destroyItem(this);for(c in this)this[c]=null},destroyElements:function(b){var a=this,d=[],c;b=b||{graphic:1,dataLabel:1};b.graphic&&d.push("graphic","shadowGroup");b.dataLabel&&d.push("dataLabel","dataLabelUpper","connector");for(c=d.length;c--;){var e=d[c];a[e]&&(a[e]=a[e].destroy())}["dataLabel","connector"].forEach(function(d){var c=d+"s";b[d]&&a[c]&&(a[c].forEach(function(a){a.element&&a.destroy()}),delete a[c])})},getLabelConfig:function(){return{x:this.category,y:this.y, +color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}},tooltipFormatter:function(b){var a=this.series,d=a.tooltipOptions,c=n(d.valueDecimals,""),e=d.valuePrefix||"",m=d.valueSuffix||"";a.chart.styledMode&&(b=a.chart.tooltip.styledModeFormat(b));(a.pointArrayMap||["y"]).forEach(function(a){a="{point."+a;if(e||m)b=b.replace(RegExp(a+"}","g"),e+a+"}"+m);b=b.replace(RegExp(a+"}","g"),a+":,."+ +c+"f}")});return w(b,{point:this,series:this.series},a.chart.time)},firePointEvent:function(b,a,c){var d=this,e=this.series.options;(e.point.events[b]||d.options&&d.options.events&&d.options.events[b])&&this.importEvents();"click"===b&&e.allowPointSelect&&(c=function(a){d.select&&d.select(null,a.ctrlKey||a.metaKey||a.shiftKey)});D(this,b,a,c)},visible:!0}});M(J,"parts/Series.js",[J["parts/Globals.js"],J["parts/Utilities.js"]],function(c,p){var y=p.defined,G=p.erase,F=p.isArray,z=p.isNumber,r=p.isString, +K=p.objectEach,v=p.splat,D=c.addEvent,w=c.animObject,n=c.arrayMax,l=c.arrayMin,b=c.correctFloat,d=c.defaultOptions,a=c.defaultPlotOptions,g=c.extend,h=c.fireEvent,e=c.merge,m=c.pick,u=c.removeEvent,E=c.SVGElement,t=c.syncTimeout,x=c.win;c.Series=c.seriesType("line",null,{lineWidth:2,allowPointSelect:!1,showCheckbox:!1,animation:{duration:1E3},events:{},marker:{lineWidth:0,lineColor:"#ffffff",enabledThreshold:2,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:50},enabled:!0,radiusPlus:2, +lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{align:"center",formatter:function(){return null===this.y?"":c.numberFormat(this.y,-1)},padding:5,style:{fontSize:"11px",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:50},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}}, +inactive:{animation:{duration:50},opacity:.2}},stickyTracking:!0,turboThreshold:1E3,findNearestPointBy:"x"},{axisTypes:["xAxis","yAxis"],coll:"series",colorCounter:0,cropShoulder:1,directTouch:!1,isCartesian:!0,parallelArrays:["x","y"],pointClass:c.Point,requireSorting:!0,sorted:!0,init:function(a,b){h(this,"init",{options:b});var d=this,e=a.series,k;this.eventOptions=this.eventOptions||{};d.chart=a;d.options=b=d.setOptions(b);d.linkedSeries=[];d.bindAxes();g(d,{name:b.name,state:"",visible:!1!== +b.visible,selected:!0===b.selected});var f=b.events;K(f,function(a,b){c.isFunction(a)&&d.eventOptions[b]!==a&&(c.isFunction(d.eventOptions[b])&&u(d,b,d.eventOptions[b]),d.eventOptions[b]=a,D(d,b,a))});if(f&&f.click||b.point&&b.point.events&&b.point.events.click||b.allowPointSelect)a.runTrackerClick=!0;d.getColor();d.getSymbol();d.parallelArrays.forEach(function(a){d[a+"Data"]||(d[a+"Data"]=[])});d.points||d.data||d.setData(b.data,!1);d.isCartesian&&(a.hasCartesianSeries=!0);e.length&&(k=e[e.length- +1]);d._i=m(k&&k._i,-1)+1;a.orderSeries(this.insert(e));h(this,"afterInit")},insert:function(a){var b=this.options.index,d;if(z(b)){for(d=a.length;d--;)if(b>=m(a[d].options.index,a[d]._i)){a.splice(d+1,0,this);break}-1===d&&a.unshift(this);d+=1}else a.push(this);return m(d,a.length-1)},bindAxes:function(){var a=this,b=a.options,d=a.chart,e;h(this,"bindAxes",null,function(){(a.axisTypes||[]).forEach(function(k){d[k].forEach(function(d){e=d.options;if(b[k]===e.index||void 0!==b[k]&&b[k]===e.id||void 0=== +b[k]&&0===e.index)a.insert(d.series),a[k]=d,d.isDirty=!0});a[k]||a.optionalAxis===k||c.error(18,!0,d)})})},updateParallelArrays:function(a,b){var d=a.series,c=arguments,e=z(b)?function(c){var f="y"===c&&d.toYData?d.toYData(a):a[c];d[c+"Data"][b]=f}:function(a){Array.prototype[b].apply(d[a+"Data"],Array.prototype.slice.call(c,2))};d.parallelArrays.forEach(e)},hasData:function(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.yData&&0=this.cropStart?f-this.cropStart:f);!e&&c[f]&&c[f].touched&&(f=void 0);return f},drawLegendSymbol:c.LegendSymbolMixin.drawLineMarker,updateData:function(a){var b=this.options,d=this.points, +c=[],e,f,k,g=this.requireSorting,h=a.length===d.length,m=!0;this.xIncrement=null;a.forEach(function(a,f){var q=y(a)&&this.pointClass.prototype.optionsToObject.call({series:this},a)||{};var m=q.x;if(q.id||z(m))if(m=this.findPointIndex(q,k),-1===m||void 0===m?c.push(a):d[m]&&a!==b.data[m]?(d[m].update(a,!1,null,!1),d[m].touched=!0,g&&(k=m+1)):d[m]&&(d[m].touched=!0),!h||f!==m||this.hasDerivedData)e=!0},this);if(e)for(a=d.length;a--;)(f=d[a])&&!f.touched&&f.remove(!1);else h?a.forEach(function(a,b){d[b].update&& +a!==d[b].y&&d[b].update(a,!1,null,!1)}):m=!1;d.forEach(function(a){a&&(a.touched=!1)});if(!m)return!1;c.forEach(function(a){this.addPoint(a,!1,null,null,!1)},this);return!0},setData:function(a,b,d,e){var k=this,f=k.points,g=f&&f.length||0,h,A=k.options,l=k.chart,B=null,n=k.xAxis,t=A.turboThreshold,H=this.xData,x=this.yData,u=(h=k.pointArrayMap)&&h.length,w=A.keys,p=0,v=1,E;a=a||[];h=a.length;b=m(b,!0);!1!==e&&h&&g&&!k.cropped&&!k.hasGroupedData&&k.visible&&!k.isSeriesBoosting&&(E=this.updateData(a)); +if(!E){k.xIncrement=null;k.colorCounter=0;this.parallelArrays.forEach(function(a){k[a+"Data"].length=0});if(t&&h>t){for(d=0;null===B&&dh||this.forceCrop))if(b[e-1]u)b=[],d=[];else if(this.yData&&(b[0]u)){k=this.cropData(this.xData,this.yData,x,u);b=k.xData;d=k.yData;k=k.start;var w=!0}for(h=b.length||1;--h;)if(e=n?g(b[h])-g(b[h-1]):b[h]-b[h-1],0e&&t&&(c.error(15, +!1,this.chart),t=!1);this.cropped=w;this.cropStart=k;this.processedXData=b;this.processedYData=d;this.closestPointRange=this.basePointRange=p},cropData:function(a,b,d,c,e){var f=a.length,k=0,g=f,h;e=m(e,this.cropShoulder);for(h=0;h=d){k=Math.max(0,h-e);break}for(d=h;dc){g=d+e;break}return{xData:a.slice(k,g),yData:b.slice(k,g),start:k,end:g}},generatePoints:function(){var a=this.options,b=a.data,d=this.data,c,e=this.processedXData,f=this.processedYData,m=this.pointClass, +l=e.length,n=this.cropStart||0,t=this.hasGroupedData;a=a.keys;var x=[],u;d||t||(d=[],d.length=b.length,d=this.data=d);a&&t&&(this.options.keys=!1);for(u=0;u=k&&(d[t-m]||x)<=g;if(p&&x)if(p=u.length)for(;p--;)z(u[p])&&(c[e++]=u[p]);else c[e++]=u}this.dataMin=l(c);this.dataMax=n(c);h(this,"afterGetExtremes")},translate:function(){this.processedXData||this.processData();this.generatePoints();var a=this.options,d=a.stacking,c=this.xAxis,e=c.categories,g=this.yAxis,f=this.points,l=f.length,t=!!this.modifyValue,n,x=this.pointPlacementToXValue(),u=z(x),p=a.threshold,w=a.startFromThreshold? +p:0,r,v=this.zoneAxis||"y",E=Number.MAX_VALUE;for(n=0;n=G&&(D.isNull=!0);D.plotX=r=b(Math.min(Math.max(-1E5,c.translate(K,0,0,0,1,x,"flags"===this.type)),1E5));if(d&&this.visible&&M&&M[K]){var X=this.getStackIndicator(X,K,this.index);if(!D.isNull){var O=M[K];var Y=O.points[X.key]}}F(Y)&&(J=Y[0],G=Y[1],J===w&&X.key===M[K].base&&(J=m(z(p)&&p,g.min)),g.positiveValuesOnly&& +0>=J&&(J=null),D.total=D.stackTotal=O.total,D.percentage=O.total&&D.y/O.total*100,D.stackY=G,O.setOffset(this.pointXOffset||0,this.barW||0));D.yBottom=y(J)?Math.min(Math.max(-1E5,g.translate(J,0,1,0,1)),1E5):null;t&&(G=this.modifyValue(G,D));D.plotY=G="number"===typeof G&&Infinity!==G?Math.min(Math.max(-1E5,g.translate(G,0,1,0,1)),1E5):void 0;D.isInside=void 0!==G&&0<=G&&G<=g.len&&0<=r&&r<=c.len;D.clientX=u?b(c.translate(K,0,0,0,1,x)):r;D.negative=D[v]<(a[v+"Threshold"]||p||0);D.category=e&&void 0!== +e[D.x]?e[D.x]:D.x;if(!D.isNull){void 0!==Z&&(E=Math.min(E,Math.abs(r-Z)));var Z=r}D.zone=this.zones.length&&D.getZone()}this.closestPointRangePx=E;h(this,"afterTranslate")},getValidPoints:function(a,b,d){var c=this.chart;return(a||this.points||[]).filter(function(a){return b&&!c.isInsidePlot(a.plotX,a.plotY,c.inverted)?!1:d||!a.isNull})},getClipBox:function(a,b){var d=this.options,c=this.chart,e=c.inverted,f=this.xAxis,k=f&&this.yAxis;a&&!1===d.clip&&k?a=e?{y:-c.chartWidth+k.len+k.pos,height:c.chartWidth, +width:c.chartHeight,x:-c.chartHeight+f.len+f.pos}:{y:-k.pos,height:c.chartHeight,width:c.chartWidth,x:-f.pos}:(a=this.clipBox||c.clipBox,b&&(a.width=c.plotSizeX,a.x=0));return b?{width:a.width,x:a.x}:a},setClip:function(a){var b=this.chart,d=this.options,c=b.renderer,e=b.inverted,f=this.clipBox,k=this.getClipBox(a),g=this.sharedClipKey||["_sharedClip",a&&a.duration,a&&a.easing,k.height,d.xAxis,d.yAxis].join(),h=b[g],m=b[g+"m"];h||(a&&(k.width=0,e&&(k.x=b.plotSizeX+(!1!==d.clip?0:b.plotTop)),b[g+"m"]= +m=c.clipRect(e?b.plotSizeX+99:-99,e?-b.plotLeft:-b.plotTop,99,e?b.chartWidth:b.chartHeight)),b[g]=h=c.clipRect(k),h.count={length:0});a&&!h.count[this.index]&&(h.count[this.index]=!0,h.count.length+=1);if(!1!==d.clip||a)this.group.clip(a||f?h:b.clipRect),this.markerGroup.clip(m),this.sharedClipKey=g;a||(h.count[this.index]&&(delete h.count[this.index],--h.count.length),0===h.count.length&&g&&b[g]&&(f||(b[g]=b[g].destroy()),b[g+"m"]&&(b[g+"m"]=b[g+"m"].destroy())))},animate:function(a){var b=this.chart, +d=w(this.options.animation);if(a)this.setClip(d);else{var c=this.sharedClipKey;a=b[c];var e=this.getClipBox(d,!0);a&&a.animate(e,d);b[c+"m"]&&b[c+"m"].animate({width:e.width+99,x:e.x-(b.inverted?0:99)},d);this.animate=null}},afterAnimate:function(){this.setClip();h(this,"afterAnimate");this.finishedAnimating=!0},drawPoints:function(){var a=this.points,b=this.chart,d,c=this.options.marker,e=this[this.specialGroup]||this.markerGroup;var f=this.xAxis;var g=m(c.enabled,!f||f.isRadial?!0:null,this.closestPointRangePx>= +c.enabledThreshold*c.radius);if(!1!==c.enabled||this._hasPointMarkers)for(f=0;fk&&b.shadow));g&&(g.startX=d.xMap,g.isArea=d.isArea)})},getZonesGraphs:function(a){this.zones.forEach(function(b,d){d=["zone-graph-"+d,"highcharts-graph highcharts-zone-graph-"+d+" "+(b.className|| +"")];this.chart.styledMode||d.push(b.color||this.color,b.dashStyle||this.options.dashStyle);a.push(d)},this);return a},applyZones:function(){var a=this,b=this.chart,d=b.renderer,c=this.zones,e,f,g=this.clips||[],h,l=this.graph,t=this.area,n=Math.max(b.chartWidth,b.chartHeight),x=this[(this.zoneAxis||"y")+"Axis"],u=b.inverted,p,w,r,v=!1;if(c.length&&(l||t)&&x&&void 0!==x.min){var E=x.reversed;var y=x.horiz;l&&!this.showLine&&l.hide();t&&t.hide();var z=x.getExtremes();c.forEach(function(c,k){e=E?y? +b.plotWidth:0:y?0:x.toPixels(z.min)||0;e=Math.min(Math.max(m(f,e),0),n);f=Math.min(Math.max(Math.round(x.toPixels(m(c.value,z.max),!0)||0),0),n);v&&(e=f=x.toPixels(z.max));p=Math.abs(e-f);w=Math.min(e,f);r=Math.max(e,f);x.isXAxis?(h={x:u?r:w,y:0,width:p,height:n},y||(h.x=b.plotHeight-h.x)):(h={x:0,y:u?r:w,width:n,height:p},y&&(h.y=b.plotWidth-h.y));u&&d.isVML&&(h=x.isXAxis?{x:0,y:E?w:r,height:h.width,width:b.chartWidth}:{x:h.y-b.plotLeft-b.spacingBox.x,y:0,width:h.height,height:b.chartHeight});g[k]? +g[k].animate(h):g[k]=d.clipRect(h);l&&a["zone-graph-"+k].clip(g[k]);t&&a["zone-area-"+k].clip(g[k]);v=c.value>z.max;a.resetZones&&0===f&&(f=void 0)});this.clips=g}else a.visible&&(l&&l.show(!0),t&&t.show(!0))},invertGroups:function(a){function b(){["group","markerGroup"].forEach(function(b){d[b]&&(c.renderer.isVML&&d[b].attr({width:d.yAxis.len,height:d.xAxis.len}),d[b].width=d.yAxis.len,d[b].height=d.xAxis.len,d[b].invert(a))})}var d=this,c=d.chart;if(d.xAxis){var e=D(c,"resize",b);D(d,"destroy", +e);b(a);d.invertGroups=b}},plotGroup:function(a,b,d,c,e){var f=this[a],k=!f;k&&(this[a]=f=this.chart.renderer.g().attr({zIndex:c||.1}).add(e));f.addClass("highcharts-"+b+" highcharts-series-"+this.index+" highcharts-"+this.type+"-series "+(y(this.colorIndex)?"highcharts-color-"+this.colorIndex+" ":"")+(this.options.className||"")+(f.hasClass("highcharts-tracker")?" highcharts-tracker":""),!0);f.attr({visibility:d})[k?"attr":"animate"](this.getPlotBox());return f},getPlotBox:function(){var a=this.chart, +b=this.xAxis,d=this.yAxis;a.inverted&&(b=d,d=this.xAxis);return{translateX:b?b.left:a.plotLeft,translateY:d?d.top:a.plotTop,scaleX:1,scaleY:1}},render:function(){var a=this,b=a.chart,d=a.options,c=!!a.animate&&b.renderer.isSVG&&w(d.animation).duration,e=a.visible?"inherit":"hidden",f=d.zIndex,g=a.hasRendered,m=b.seriesGroup,l=b.inverted;h(this,"render");var n=a.plotGroup("group","series",e,f,m);a.markerGroup=a.plotGroup("markerGroup","markers",e,f,m);c&&a.animate(!0);n.inverted=a.isCartesian||a.invertable? +l:!1;a.drawGraph&&(a.drawGraph(),a.applyZones());a.visible&&a.drawPoints();a.drawDataLabels&&a.drawDataLabels();a.redrawPoints&&a.redrawPoints();a.drawTracker&&!1!==a.options.enableMouseTracking&&a.drawTracker();a.invertGroups(l);!1===d.clip||a.sharedClipKey||g||n.clip(b.clipRect);c&&a.animate();g||(a.animationTimeout=t(function(){a.afterAnimate()},c));a.isDirty=!1;a.hasRendered=!0;h(a,"afterRender")},redraw:function(){var a=this.chart,b=this.isDirty||this.isDirtyData,d=this.group,c=this.xAxis,e= +this.yAxis;d&&(a.inverted&&d.attr({width:a.plotWidth,height:a.plotHeight}),d.animate({translateX:m(c&&c.left,a.plotLeft),translateY:m(e&&e.top,a.plotTop)}));this.translate();this.render();b&&delete this.kdTree},kdAxisArray:["clientX","plotY"],searchPoint:function(a,b){var d=this.xAxis,c=this.yAxis,e=this.chart.inverted;return this.searchKDTree({clientX:e?d.len-a.chartY+d.pos:a.chartX-d.pos,plotY:e?c.len-a.chartX+c.pos:a.chartY-c.pos},b,a)},buildKDTree:function(a){function b(a,c,e){var f;if(f=a&&a.length){var g= +d.kdAxisArray[c%e];a.sort(function(a,b){return a[g]-b[g]});f=Math.floor(f/2);return{point:a[f],left:b(a.slice(0,f),c+1,e),right:b(a.slice(f+1),c+1,e)}}}this.buildingKdTree=!0;var d=this,c=-1l?"left":"right";t=0>l?"right":"left";b[n]&&(n=c(a,b[n],d+1,h),q=n[k]A;)p--;this.updateParallelArrays(u,"splice",p,0,0);this.updateParallelArrays(u,p);l&&u.name&&(l[A]=u.name);n.splice(p,0,a); +x&&(this.data.splice(p,0,null),this.processData());"point"===k.legendType&&this.generatePoints();d&&(f[0]&&f[0].remove?f[0].remove(!1):(f.shift(),this.updateParallelArrays(u,"shift"),n.shift()));!1!==h&&g(this,"addPoint",{point:u});this.isDirtyData=this.isDirty=!0;b&&m.redraw(c)},removePoint:function(a,b,d){var c=this,g=c.data,k=g[a],f=c.points,h=c.chart,m=function(){f&&f.length===g.length&&f.splice(a,1);g.splice(a,1);c.options.data.splice(a,1);c.updateParallelArrays(k||{series:c},"splice",a,1);k&& +k.destroy();c.isDirty=!0;c.isDirtyData=!0;b&&h.redraw()};t(d,h);b=e(b,!0);k?k.firePointEvent("remove",null,m):m()},remove:function(a,b,d,c){function k(){h.destroy(c);h.remove=null;f.isDirtyLegend=f.isDirtyBox=!0;f.linkSeries();e(a,!0)&&f.redraw(b)}var h=this,f=h.chart;!1!==d?g(h,"remove",null,k):k()},update:function(b,d){b=c.cleanRecursively(b,this.userOptions);g(this,"update",{options:b});var k=this,m=k.chart,l=k.userOptions,n=k.initialType||k.type,f=b.type||l.type||m.options.chart.type,t=!(this.hasDerivedData|| +b.dataGrouping||f&&f!==this.type||void 0!==b.pointStart||b.pointInterval||b.pointIntervalUnit||b.keys),u=E[n].prototype,x,p=["group","markerGroup","dataLabelsGroup","transformGroup"],r=["eventOptions","navigatorSeries","baseSeries"],v=k.finishedAnimating&&{animation:!1},w={};t&&(r.push("data","isDirtyData","points","processedXData","processedYData","xIncrement","_hasPointMarkers","_hasPointLabels","mapMap","mapData","minY","maxY","minX","maxX"),!1!==b.visible&&r.push("area","graph"),k.parallelArrays.forEach(function(a){r.push(a+ +"Data")}),b.data&&this.setData(b.data,!1));b=h(l,v,{index:void 0===l.index?k.index:l.index,pointStart:e(l.pointStart,k.xData[0])},!t&&{data:k.options.data},b);t&&b.data&&(b.data=k.options.data);r=p.concat(r);r.forEach(function(a){r[a]=k[a];delete k[a]});k.remove(!1,null,!1,!0);for(x in u)k[x]=void 0;E[f||n]?a(k,E[f||n].prototype):c.error(17,!0,m);r.forEach(function(a){k[a]=r[a]});k.init(m,b);if(t&&this.points){var y=k.options;!1===y.visible?(w.graphic=1,w.dataLabel=1):k._hasPointLabels||(f=y.marker, +u=y.dataLabels,f&&(!1===f.enabled||"symbol"in f)&&(w.graphic=1),u&&!1===u.enabled&&(w.dataLabel=1));this.points.forEach(function(a){a&&a.series&&(a.resolveColor(),Object.keys(w).length&&a.destroyElements(w),!1===y.showInLegend&&a.legendItem&&m.legend.destroyItem(a))},this)}b.zIndex!==l.zIndex&&p.forEach(function(a){k[a]&&k[a].attr({zIndex:b.zIndex})});k.initialType=n;m.linkSeries();g(this,"afterUpdate");e(d,!0)&&m.redraw(t?void 0:!1)},setName:function(a){this.name=this.options.name=this.userOptions.name= +a;this.chart.isDirtyLegend=!0}});a(l.prototype,{update:function(b,d){var c=this.chart,g=b&&b.events||{};b=h(this.userOptions,b);c.options[this.coll].indexOf&&(c.options[this.coll][c.options[this.coll].indexOf(this.userOptions)]=b);v(c.options[this.coll].events,function(a,b){"undefined"===typeof g[b]&&(g[b]=void 0)});this.destroy(!0);this.init(c,a(b,{events:g}));c.isDirtyBox=!0;e(d,!0)&&c.redraw()},remove:function(a){for(var b=this.chart,d=this.coll,c=this.series,g=c.length;g--;)c[g]&&c[g].remove(!1); +G(b.axes,this);G(b[d],this);F(b.options[d])?b.options[d].splice(this.options.index,1):delete b.options[d];b[d].forEach(function(a,b){a.options.index=a.userOptions.index=b});this.destroy();b.isDirtyBox=!0;e(a,!0)&&b.redraw()},setTitle:function(a,b){this.update({title:a},b)},setCategories:function(a,b){this.update({categories:a},b)}})});M(J,"parts/AreaSeries.js",[J["parts/Globals.js"],J["parts/Utilities.js"]],function(c,p){var y=p.objectEach,G=c.color,F=c.pick,z=c.Series;p=c.seriesType;p("area","line", +{softThreshold:!1,threshold:0},{singleStacks:!1,getStackPoints:function(c){var p=[],r=[],z=this.xAxis,w=this.yAxis,n=w.stacks[this.stackKey],l={},b=this.index,d=w.series,a=d.length,g=F(w.options.reversedStacks,!0)?1:-1,h;c=c||this.points;if(this.options.stacking){for(h=0;hc&&n>r?(n=Math.max(c,r),l=2*r-n):nF&&l>r?(l=Math.max(F,r),n=2*r-l):l=Math.abs(l)&&.5c.closestPointRange*c.xAxis.transA;d=c.borderWidth=v(b.borderWidth,d?0:1);var a=c.yAxis,g=b.threshold,h=c.translatedThreshold=a.getThreshold(g),e=v(b.minPointLength,5),m=c.getColumnMetrics(),p=m.width,r=c.barW=Math.max(p,1+2*d),t=c.pointXOffset=m.offset,x=c.dataMin,k=c.dataMax;l.inverted&&(h-=.5);b.pointPadding&&(r=Math.ceil(r));D.prototype.translate.apply(c);c.points.forEach(function(b){var d= +v(b.yBottom,h),m=999+Math.abs(d),n=p;m=Math.min(Math.max(-m,b.plotY),a.len+m);var f=b.plotX+t,u=r,A=Math.min(m,d),w=Math.max(m,d)-A;if(e&&Math.abs(w)e?d-e:h-(z?e:0)}y(b.options.pointWidth)&&(n=u=Math.ceil(b.options.pointWidth),f-=Math.round((n-p)/2));b.barX=f;b.pointWidth=n;b.tooltipPos=l.inverted?[a.len+a.pos-l.plotLeft-m,c.xAxis.len-f-u/2,w]:[f+u/2,m+a.pos-l.plotTop,w];b.shapeType= +c.pointClass.prototype.shapeType||"rect";b.shapeArgs=c.crispCol.apply(c,b.isNull?[f,h,u,0]:[f,A,u,w])})},getSymbol:c.noop,drawLegendSymbol:c.LegendSymbolMixin.drawRectangle,drawGraph:function(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")},pointAttribs:function(c,l){var b=this.options,d=this.pointAttrToOptions||{};var a=d.stroke||"borderColor";var g=d["stroke-width"]||"borderWidth",h=c&&c.color||this.color,e=c&&c[a]||b[a]||this.color||h,m=c&&c[g]||b[g]||this[g]||0;d=c&& +c.options.dashStyle||b.dashStyle;var n=v(b.opacity,1);if(c&&this.zones.length){var p=c.getZone();h=c.options.color||p&&(p.color||c.nonZonedColor)||this.color;p&&(e=p.borderColor||e,d=p.dashStyle||d,m=p.borderWidth||m)}l&&(c=K(b.states[l],c.options.states&&c.options.states[l]||{}),l=c.brightness,h=c.color||void 0!==l&&z(h).brighten(c.brightness).get()||h,e=c[a]||e,m=c[g]||m,d=c.dashStyle||d,n=v(c.opacity,n));a={fill:h,stroke:e,"stroke-width":m,opacity:n};d&&(a.dashstyle=d);return a},drawPoints:function(){var c= +this,l=this.chart,b=c.options,d=l.renderer,a=b.animationLimit||250,g;c.points.forEach(function(h){var e=h.graphic,m=e&&l.pointCount\u25cf
{series.name}
', +pointFormat:"x: {point.x}
y: {point.y}
"}},{sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:["group","markerGroup","dataLabelsGroup"],takeOrdinalPosition:!1,drawGraph:function(){this.options.lineWidth&&p.prototype.drawGraph.call(this)},applyJitter:function(){var c=this,p=this.options.jitter,y=this.points.length;p&&this.points.forEach(function(r,z){["x","y"].forEach(function(v,D){var w="plot"+v.toUpperCase();if(p[v]&&!r.isNull){var n=c[v+"Axis"];var l=p[v]*n.transA; +if(n&&!n.isLog){var b=Math.max(0,r[w]-l);n=Math.min(n.len,r[w]+l);D=1E4*Math.sin(z+D*y);r[w]=b+(n-b)*(D-Math.floor(D));"x"===v&&(r.clientX=r.plotX)}}})})}});c.addEvent(p,"afterTranslate",function(){this.applyJitter&&this.applyJitter()});""});M(J,"mixins/centered-series.js",[J["parts/Globals.js"],J["parts/Utilities.js"]],function(c,p){var y=p.isNumber,G=c.deg2rad,F=c.pick,z=c.relativeLength;c.CenteredSeriesMixin={getCenter:function(){var c=this.options,p=this.chart,v=2*(c.slicedOffset||0),y=p.plotWidth- +2*v;p=p.plotHeight-2*v;var w=c.center;w=[F(w[0],"50%"),F(w[1],"50%"),c.size||"100%",c.innerSize||0];var n=Math.min(y,p),l;for(l=0;4>l;++l){var b=w[l];c=2>l||2===l&&/%$/.test(b);w[l]=z(b,[y,p,n,w[2]][l])+(c?v:0)}w[3]>w[2]&&(w[3]=w[2]);return w},getStartAndEndRadians:function(c,p){c=y(c)?c:0;p=y(p)&&p>c&&360>p-c?p:c+360;return{start:G*(c+-90),end:G*(p+-90)}}}});M(J,"parts/PieSeries.js",[J["parts/Globals.js"],J["parts/Utilities.js"]],function(c,p){var y=p.defined,G=p.isNumber,F=c.addEvent;p=c.CenteredSeriesMixin; +var z=p.getStartAndEndRadians,r=c.merge,K=c.noop,v=c.pick,D=c.Point,w=c.Series,n=c.seriesType,l=c.setAnimation;n("pie","line",{center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{allowOverlap:!0,connectorPadding:5,distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},softConnector:!0,x:0,connectorShape:"fixedOffset",crookDistance:"70%"},ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1, +tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,states:{hover:{brightness:.1}}},{isCartesian:!1,requireSorting:!1,directTouch:!0,noSharedTooltip:!0,trackerGroups:["group","dataLabelsGroup"],axisTypes:[],pointAttribs:c.seriesTypes.column.prototype.pointAttribs,animate:function(b){var d=this,a=d.points,c=d.startAngleRad;b||(a.forEach(function(a){var b=a.graphic,g=a.shapeArgs;b&&(b.attr({r:a.startR||d.center[3]/2,start:c,end:c}),b.animate({r:g.r,start:g.start,end:g.end},d.options.animation))}), +d.animate=null)},hasData:function(){return!!this.processedXData.length},updateTotals:function(){var b,d=0,a=this.points,c=a.length,h=this.options.ignoreHiddenPoint;for(b=0;b1.5*Math.PI?r-=2*Math.PI:r<-Math.PI/2&&(r+=2*Math.PI);k.slicedTranslation={translateX:Math.round(Math.cos(r)* +g),translateY:Math.round(Math.sin(r)*g)};var w=Math.cos(r)*b[2]/2;var q=Math.sin(r)*b[2]/2;k.tooltipPos=[b[0]+.7*w,b[1]+.7*q];k.half=r<-Math.PI/2||r>Math.PI/2?1:0;k.angle=r;A=Math.min(h,k.labelDistance/5);k.labelPosition={natural:{x:b[0]+w+Math.cos(r)*k.labelDistance,y:b[1]+q+Math.sin(r)*k.labelDistance},"final":{},alignment:0>k.labelDistance?"center":k.half?"right":"left",connectorPosition:{breakAt:{x:b[0]+w+Math.cos(r)*A,y:b[1]+q+Math.sin(r)*A},touchingSliceAt:{x:b[0]+w,y:b[1]+q}}}}},drawGraph:null, +redrawPoints:function(){var b=this,d=b.chart,a=d.renderer,c,h,e,m,l=b.options.shadow;!l||b.shadowGroup||d.styledMode||(b.shadowGroup=a.g("shadow").attr({zIndex:-1}).add(b.group));b.points.forEach(function(g){var t={};h=g.graphic;if(!g.isNull&&h){m=g.shapeArgs;c=g.getTranslate();if(!d.styledMode){var n=g.shadowGroup;l&&!n&&(n=g.shadowGroup=a.g("shadow").add(b.shadowGroup));n&&n.attr(c);e=b.pointAttribs(g,g.selected&&"select")}g.delayedRendering?(h.setRadialReference(b.center).attr(m).attr(c),d.styledMode|| +h.attr(e).attr({"stroke-linejoin":"round"}).shadow(l,n),g.delayedRendering=!1):(h.setRadialReference(b.center),d.styledMode||r(!0,t,e),r(!0,t,m,c),h.animate(t));h.attr({visibility:g.visible?"inherit":"hidden"});h.addClass(g.getClassName())}else h&&(g.graphic=h.destroy())})},drawPoints:function(){var b=this.chart.renderer;this.points.forEach(function(c){c.graphic||(c.graphic=b[c.shapeType](c.shapeArgs).add(c.series.group),c.delayedRendering=!0)})},searchPoint:K,sortByAngle:function(b,c){b.sort(function(a, +b){return void 0!==a.angle&&(b.angle-a.angle)*c})},drawLegendSymbol:c.LegendSymbolMixin.drawRectangle,getCenter:p.getCenter,getSymbol:K},{init:function(){D.prototype.init.apply(this,arguments);var b=this;b.name=v(b.name,"Slice");var c=function(a){b.slice("select"===a.type)};F(b,"select",c);F(b,"unselect",c);return b},isValid:function(){return G(this.y)&&0<=this.y},setVisible:function(b,c){var a=this,d=a.series,h=d.chart,e=d.options.ignoreHiddenPoint;c=v(c,e);b!==a.visible&&(a.visible=a.options.visible= +b=void 0===b?!a.visible:b,d.options.data[d.data.indexOf(a)]=a.options,["graphic","dataLabel","connector","shadowGroup"].forEach(function(c){if(a[c])a[c][b?"show":"hide"](!0)}),a.legendItem&&h.legend.colorizeItem(a,b),b||"hover"!==a.state||a.setState(""),e&&(d.isDirty=!0),c&&h.redraw())},slice:function(b,c,a){var d=this.series;l(a,d.chart);v(c,!0);this.sliced=this.options.sliced=y(b)?b:!this.sliced;d.options.data[d.data.indexOf(this)]=this.options;this.graphic.animate(this.getTranslate());this.shadowGroup&& +this.shadowGroup.animate(this.getTranslate())},getTranslate:function(){return this.sliced?this.slicedTranslation:{translateX:0,translateY:0}},haloPath:function(b){var c=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(c.x,c.y,c.r+b,c.r+b,{innerR:c.r-1,start:c.start,end:c.end})},connectorShapes:{fixedOffset:function(b,c,a){var d=c.breakAt;c=c.touchingSliceAt;return["M",b.x,b.y].concat(a.softConnector?["C",b.x+("left"===b.alignment?-5:5),b.y,2*d.x-c.x,2*d.y- +c.y,d.x,d.y]:["L",d.x,d.y]).concat(["L",c.x,c.y])},straight:function(b,c){c=c.touchingSliceAt;return["M",b.x,b.y,"L",c.x,c.y]},crookedLine:function(b,d,a){d=d.touchingSliceAt;var g=this.series,h=g.center[0],e=g.chart.plotWidth,m=g.chart.plotLeft;g=b.alignment;var l=this.shapeArgs.r;a=c.relativeLength(a.crookDistance,1);a="left"===g?h+l+(e+m-h-l)*(1-a):m+(h-l)*a;h=["L",a,b.y];if("left"===g?a>b.x||ad.x)h=[];return["M",b.x,b.y].concat(h).concat(["L",d.x,d.y])}},getConnectorPath:function(){var b= +this.labelPosition,c=this.series.options.dataLabels,a=c.connectorShape,g=this.connectorShapes;g[a]&&(a=g[a]);return a.call(this,{x:b.final.x,y:b.final.y,alignment:b.alignment},b.connectorPosition,c)}});""});M(J,"parts/DataLabels.js",[J["parts/Globals.js"],J["parts/Utilities.js"]],function(c,p){var y=p.defined,G=p.isArray,F=p.objectEach,z=p.splat,r=c.arrayMax,K=c.extend,v=c.format,D=c.merge;p=c.noop;var w=c.pick,n=c.relativeLength,l=c.Series,b=c.seriesTypes,d=c.stableSort;c.distribute=function(a,b, +h){function e(a,b){return a.target-b.target}var g,l=!0,n=a,t=[];var p=0;var k=n.reducedLen||b;for(g=a.length;g--;)p+=a[g].size;if(p>k){d(a,function(a,b){return(b.rank||0)-(a.rank||0)});for(p=g=0;p<=k;)p+=a[g].size,g++;t=a.splice(g-1,a.length)}d(a,e);for(a=a.map(function(a){return{size:a.size,targets:[a.target],align:w(a.align,.5)}});l;){for(g=a.length;g--;)l=a[g],p=(Math.min.apply(0,l.targets)+Math.max.apply(0,l.targets))/2,l.pos=Math.min(Math.max(0,p-l.size*l.align),b-l.size);g=a.length;for(l=!1;g--;)0< +g&&a[g-1].pos+a[g-1].size>a[g].pos&&(a[g-1].size+=a[g].size,a[g-1].targets=a[g-1].targets.concat(a[g].targets),a[g-1].align=.5,a[g-1].pos+a[g-1].size>b&&(a[g-1].pos=b-a[g-1].size),a.splice(g,1),l=!0)}n.push.apply(n,t);g=0;a.some(function(a){var d=0;if(a.targets.some(function(){n[g].pos=a.pos+d;if(Math.abs(n[g].pos-n[g].target)>h)return n.slice(0,g+1).forEach(function(a){delete a.pos}),n.reducedLen=(n.reducedLen||b)-.1*b,n.reducedLen>.1*b&&c.distribute(n,b,h),!0;d+=n[g].size;g++}))return!0});d(n,e)}; +l.prototype.drawDataLabels=function(){function a(a,b){var c=b.filter;return c?(b=c.operator,a=a[c.property],c=c.value,">"===b&&a>c||"<"===b&&a="===b&&a>=c||"<="===b&&a<=c||"=="===b&&a==c||"==="===b&&a===c?!0:!1):!0}function b(a,b){var c=[],d;if(G(a)&&!G(b))c=a.map(function(a){return D(a,b)});else if(G(b)&&!G(a))c=b.map(function(b){return D(a,b)});else if(G(a)||G(b))for(d=Math.max(a.length,b.length);d--;)c[d]=D(a[d],b[d]);else c=D(a,b);return c}var d=this,e=d.chart,l=d.options,n=l.dataLabels, +p=d.points,t,r=d.hasRendered||0,k=c.animObject(l.animation).duration,A=Math.min(k,200),B=!e.renderer.forExport&&w(n.defer,0m||l.stacking?c.contrastColor:"#000000"),l.cursor&&(p.cursor=l.cursor));var r={r:b.borderRadius||0,rotation:u,padding:b.padding,zIndex:1};e.styledMode||(r.fill=b.backgroundColor,r.stroke=b.borderColor,r["stroke-width"]=b.borderWidth); +F(r,function(a,b){void 0===a&&delete r[b]})}!k||g&&y(n)?g&&y(n)&&(k?r.text=n:(c.dataLabels=c.dataLabels||[],k=c.dataLabels[f]=u?H.text(n,0,-9999).addClass("highcharts-data-label"):H.label(n,0,-9999,b.shape,null,null,b.useHTML,null,"data-label"),f||(c.dataLabel=k),k.addClass(" highcharts-data-label-color-"+c.colorIndex+" "+(b.className||"")+(b.useHTML?" highcharts-tracker":""))),k.options=b,k.attr(r),e.styledMode||k.css(p).shadow(b.shadow),k.added||k.add(q),b.textPath&&!b.useHTML&&k.setTextPath(c.getDataLabelPath&& +c.getDataLabelPath(k)||c.graphic,b.textPath),d.alignDataLabel(c,k,b,null,t)):(c.dataLabel=c.dataLabel&&c.dataLabel.destroy(),c.dataLabels&&(1===c.dataLabels.length?delete c.dataLabels:delete c.dataLabels[f]),f||delete c.dataLabel,h&&(c.connector=c.connector.destroy(),c.connectors&&(1===c.connectors.length?delete c.connectors:delete c.connectors[f])))})})}c.fireEvent(this,"afterDrawDataLabels")};l.prototype.alignDataLabel=function(a,b,c,d,l){var e=this.chart,g=this.isCartesian&&e.inverted,h=w(a.dlBox&& +a.dlBox.centerX,a.plotX,-9999),m=w(a.plotY,-9999),k=b.getBBox(),n=c.rotation,p=c.align,r=this.visible&&(a.series.forceDL||e.isInsidePlot(h,Math.round(m),g)||d&&e.isInsidePlot(h,g?d.x+1:d.y+d.height-1,g)),q="justify"===w(c.overflow,"justify");if(r){var f=e.renderer.fontMetrics(e.styledMode?void 0:c.style.fontSize,b).b;d=K({x:g?this.yAxis.len-m:h,y:Math.round(g?this.xAxis.len-h:m),width:0,height:0},d);K(c,{width:k.width,height:k.height});n?(q=!1,h=e.renderer.rotCorr(f,n),h={x:d.x+c.x+d.width/2+h.x, +y:d.y+c.y+{top:0,middle:.5,bottom:1}[c.verticalAlign]*d.height},b[l?"attr":"animate"](h).attr({align:p}),m=(n+720)%360,m=180m,"left"===p?h.y-=m?k.height:0:"center"===p?(h.x-=k.width/2,h.y-=k.height/2):"right"===p&&(h.x-=k.width,h.y-=m?0:k.height),b.placed=!0,b.alignAttr=h):(b.align(c,null,d),h=b.alignAttr);q&&0<=d.height?this.justifyDataLabel(b,c,h,k,d,l):w(c.crop,!0)&&(r=e.isInsidePlot(h.x,h.y)&&e.isInsidePlot(h.x+k.width,h.y+k.height));if(c.shape&&!n)b[l?"attr":"animate"]({anchorX:g?e.plotWidth- +a.plotY:a.plotX,anchorY:g?e.plotHeight-a.plotX:a.plotY})}r||(b.hide(!0),b.placed=!1)};l.prototype.justifyDataLabel=function(a,b,c,d,l,n){var e=this.chart,g=b.align,h=b.verticalAlign,k=a.box?0:a.padding||0;var m=c.x+k;if(0>m){"right"===g?(b.align="left",b.inside=!0):b.x=-m;var p=!0}m=c.x+d.width-k;m>e.plotWidth&&("left"===g?(b.align="right",b.inside=!0):b.x=e.plotWidth-m,p=!0);m=c.y+k;0>m&&("bottom"===h?(b.verticalAlign="top",b.inside=!0):b.y=-m,p=!0);m=c.y+d.height-k;m>e.plotHeight&&("top"===h?(b.verticalAlign= +"bottom",b.inside=!0):b.y=e.plotHeight-m,p=!0);p&&(a.placed=!n,a.align(b,null,l));return p};b.pie&&(b.pie.prototype.dataLabelPositioners={radialDistributionY:function(a){return a.top+a.distributeBox.pos},radialDistributionX:function(a,b,c,d){return a.getX(cb.bottom-2?d:c,b.half,b)},justify:function(a,b,c){return c[0]+(a.half?-1:1)*(b+a.labelDistance)},alignToPlotEdges:function(a,b,c,d){a=a.getBBox().width;return b?a+d:c-a-d},alignToConnectors:function(a,b,c,d){var e=0,g;a.forEach(function(a){g= +a.dataLabel.getBBox().width;g>e&&(e=g)});return b?e+d:c-e-d}},b.pie.prototype.drawDataLabels=function(){var a=this,b=a.data,d,e=a.chart,m=a.options.dataLabels,n=m.connectorPadding,p,t=e.plotWidth,x=e.plotHeight,k=e.plotLeft,A=Math.round(e.chartWidth/3),v,z=a.center,q=z[2]/2,f=z[1],C,F,K,G,J=[[],[]],L,I,M,Q,O=[0,0,0,0],U=a.dataLabelPositioners,W;a.visible&&(m.enabled||a._hasPointLabels)&&(b.forEach(function(a){a.dataLabel&&a.visible&&a.dataLabel.shortened&&(a.dataLabel.attr({width:"auto"}).css({width:"auto", +textOverflow:"clip"}),a.dataLabel.shortened=!1)}),l.prototype.drawDataLabels.apply(a),b.forEach(function(a){a.dataLabel&&(a.visible?(J[a.half].push(a),a.dataLabel._pos=null,!y(m.style.width)&&!y(a.options.dataLabels&&a.options.dataLabels.style&&a.options.dataLabels.style.width)&&a.dataLabel.getBBox().width>A&&(a.dataLabel.css({width:.7*A}),a.dataLabel.shortened=!0)):(a.dataLabel=a.dataLabel.destroy(),a.dataLabels&&1===a.dataLabels.length&&delete a.dataLabels))}),J.forEach(function(b,g){var h=b.length, +l=[],p;if(h){a.sortByAngle(b,g-.5);if(0t-n&&0===g&&(r=Math.round(L+F-t+n),O[1]=Math.max(r,O[1])),0>I-G/2?O[0]=Math.max(Math.round(-I+G/2),O[0]):I+G/2>x&&(O[2]=Math.max(Math.round(I+G/2-x),O[2])),C.sideOverflow=r)}}}),0===r(O)||this.verifyDataLabelOverflow(O))&&(this.placeDataLabels(),this.points.forEach(function(b){W=D(m,b.options.dataLabels);if(p=w(W.connectorWidth,1)){var c;v=b.connector;if((C=b.dataLabel)&& +C._pos&&b.visible&&0w(this.translatedThreshold,g.yAxis.len)),k=w(c.inside,!!this.options.stacking);h&&(d=D(h),0>d.y&&(d.height+=d.y,d.y=0),h=d.y+d.height-g.yAxis.len,0a.x+a.width||g.x+g.widtha.y+a.height||g.y+g.height=g&&h<=k||l||!y(h))m=!0;d[l?"zoomX":"zoomY"]&&m&&(c=f.zoom(a.min,a.max),f.displayBtn&&(e=!0))});var l=b.resetZoomButton;e&&!l?b.showResetZoom():!e&&F(l)&&(b.resetZoomButton=l.destroy());c&&b.redraw(g(b.options.chart.animation,a&&a.animation,100>b.pointCount))},pan:function(a,b){var c=this,d=c.hoverPoints,e;l(this,"pan",{originalEvent:a}, +function(){d&&d.forEach(function(a){a.setState()});("xy"===b?[1,0]:[1]).forEach(function(b){b=c[b?"xAxis":"yAxis"][0];var d=b.horiz,f=a[d?"chartX":"chartY"];d=d?"mouseDownX":"mouseDownY";var g=c[d],k=(b.pointRange||0)/2,h=b.reversed&&!c.inverted||!b.reversed&&c.inverted?-1:1,l=b.getExtremes(),m=b.toValue(g-f,!0)+k*h;h=b.toValue(g+b.len-f,!0)-k*h;var n=h=r(v.minWidth,0)&&this.chartHeight>=r(v.minHeight,0)}).call(this)&&p.push(c._id)};p.prototype.currentOptions=function(c){function p(c,l,b,d){var a; +F(c,function(c,h){if(!d&&-1=0&&n0&&t-1 in e)}var E=function(e){var t,n,r,i,o,a,s,u,l,c,f,p,d,h,g,y,v,m,x,b="sizzle"+1*new Date,w=e.document,T=0,C=0,E=ae(),k=ae(),S=ae(),D=function(e,t){return e===t&&(f=!0),0},N={}.hasOwnProperty,A=[],j=A.pop,q=A.push,L=A.push,H=A.slice,O=function(e,t){for(var n=0,r=e.length;n+~]|"+M+")"+M+"*"),z=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),X=new RegExp(W),U=new RegExp("^"+R+"$"),V={ID:new RegExp("^#("+R+")"),CLASS:new RegExp("^\\.("+R+")"),TAG:new RegExp("^("+R+"|[*])"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+W),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+P+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},G=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Q=/^[^{]+\{\s*\[native \w/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,K=/[+~]/,Z=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ee=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},te=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ne=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},re=function(){p()},ie=me(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{L.apply(A=H.call(w.childNodes),w.childNodes),A[w.childNodes.length].nodeType}catch(e){L={apply:A.length?function(e,t){q.apply(e,H.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function oe(e,t,r,i){var o,s,l,c,f,h,v,m=t&&t.ownerDocument,T=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==T&&9!==T&&11!==T)return r;if(!i&&((t?t.ownerDocument||t:w)!==d&&p(t),t=t||d,g)){if(11!==T&&(f=J.exec(e)))if(o=f[1]){if(9===T){if(!(l=t.getElementById(o)))return r;if(l.id===o)return r.push(l),r}else if(m&&(l=m.getElementById(o))&&x(t,l)&&l.id===o)return r.push(l),r}else{if(f[2])return L.apply(r,t.getElementsByTagName(e)),r;if((o=f[3])&&n.getElementsByClassName&&t.getElementsByClassName)return L.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!S[e+" "]&&(!y||!y.test(e))){if(1!==T)m=t,v=e;else if("object"!==t.nodeName.toLowerCase()){(c=t.getAttribute("id"))?c=c.replace(te,ne):t.setAttribute("id",c=b),s=(h=a(e)).length;while(s--)h[s]="#"+c+" "+ve(h[s]);v=h.join(","),m=K.test(e)&&ge(t.parentNode)||t}if(v)try{return L.apply(r,m.querySelectorAll(v)),r}catch(e){}finally{c===b&&t.removeAttribute("id")}}}return u(e.replace(B,"$1"),t,r,i)}function ae(){var e=[];function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}return t}function se(e){return e[b]=!0,e}function ue(e){var t=d.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function le(e,t){var n=e.split("|"),i=n.length;while(i--)r.attrHandle[n[i]]=t}function ce(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function fe(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function pe(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function de(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ie(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function he(e){return se(function(t){return t=+t,se(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]))})})}function ge(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}n=oe.support={},o=oe.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},p=oe.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:w;return a!==d&&9===a.nodeType&&a.documentElement?(d=a,h=d.documentElement,g=!o(d),w!==d&&(i=d.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",re,!1):i.attachEvent&&i.attachEvent("onunload",re)),n.attributes=ue(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=ue(function(e){return e.appendChild(d.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=Q.test(d.getElementsByClassName),n.getById=ue(function(e){return h.appendChild(e).id=b,!d.getElementsByName||!d.getElementsByName(b).length}),n.getById?(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){return e.getAttribute("id")===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}: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},r.find.CLASS=n.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&g)return t.getElementsByClassName(e)},v=[],y=[],(n.qsa=Q.test(d.querySelectorAll))&&(ue(function(e){h.appendChild(e).innerHTML="
",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+P+")"),e.querySelectorAll("[id~="+b+"-]").length||y.push("~="),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+b+"+*").length||y.push(".#.+[+~]")}),ue(function(e){e.innerHTML="";var t=d.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(n.matchesSelector=Q.test(m=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ue(function(e){n.disconnectedMatch=m.call(e,"*"),m.call(e,"[s!='']:x"),v.push("!=",W)}),y=y.length&&new RegExp(y.join("|")),v=v.length&&new RegExp(v.join("|")),t=Q.test(h.compareDocumentPosition),x=t||Q.test(h.contains)?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},D=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===d||e.ownerDocument===w&&x(w,e)?-1:t===d||t.ownerDocument===w&&x(w,t)?1:c?O(c,e)-O(c,t):0:4&r?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===d?-1:t===d?1:i?-1:o?1:c?O(c,e)-O(c,t):0;if(i===o)return ce(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?ce(a[r],s[r]):a[r]===w?-1:s[r]===w?1:0},d):d},oe.matches=function(e,t){return oe(e,null,null,t)},oe.matchesSelector=function(e,t){if((e.ownerDocument||e)!==d&&p(e),t=t.replace(z,"='$1']"),n.matchesSelector&&g&&!S[t+" "]&&(!v||!v.test(t))&&(!y||!y.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return oe(t,d,null,[e]).length>0},oe.contains=function(e,t){return(e.ownerDocument||e)!==d&&p(e),x(e,t)},oe.attr=function(e,t){(e.ownerDocument||e)!==d&&p(e);var i=r.attrHandle[t.toLowerCase()],o=i&&N.call(r.attrHandle,t.toLowerCase())?i(e,t,!g):void 0;return void 0!==o?o:n.attributes||!g?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},oe.escape=function(e){return(e+"").replace(te,ne)},oe.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},oe.uniqueSort=function(e){var t,r=[],i=0,o=0;if(f=!n.detectDuplicates,c=!n.sortStable&&e.slice(0),e.sort(D),f){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return c=null,e},i=oe.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else while(t=e[r++])n+=i(t);return n},(r=oe.selectors={cacheLength:50,createPseudo:se,match:V,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(Z,ee),e[3]=(e[3]||e[4]||e[5]||"").replace(Z,ee),"~="===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]||oe.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]&&oe.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return V.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=a(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Z,ee).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&E(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=oe.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.replace($," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},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,u){var l,c,f,p,d,h,g=o!==a?"nextSibling":"previousSibling",y=t.parentNode,v=s&&t.nodeName.toLowerCase(),m=!u&&!s,x=!1;if(y){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===v:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?y.firstChild:y.lastChild],a&&m){x=(d=(l=(c=(f=(p=y)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1])&&l[2],p=d&&y.childNodes[d];while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if(1===p.nodeType&&++x&&p===t){c[e]=[T,d,x];break}}else if(m&&(x=d=(l=(c=(f=(p=t)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1]),!1===x)while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===v:1===p.nodeType)&&++x&&(m&&((c=(f=p[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]=[T,x]),p===t))break;return(x-=i)===r||x%r==0&&x/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||oe.error("unsupported pseudo: "+e);return i[b]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?se(function(e,n){var r,o=i(e,t),a=o.length;while(a--)e[r=O(e,o[a])]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:se(function(e){var t=[],n=[],r=s(e.replace(B,"$1"));return r[b]?se(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),t[0]=null,!n.pop()}}),has:se(function(e){return function(t){return oe(e,t).length>0}}),contains:se(function(e){return e=e.replace(Z,ee),function(t){return(t.textContent||t.innerText||i(t)).indexOf(e)>-1}}),lang:se(function(e){return U.test(e||"")||oe.error("unsupported lang: "+e),e=e.replace(Z,ee).toLowerCase(),function(t){var n;do{if(n=g?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===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===h},focus:function(e){return e===d.activeElement&&(!d.hasFocus||d.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:de(!1),disabled:de(!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,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return Y.test(e.nodeName)},input:function(e){return G.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"))||"text"===t.toLowerCase())},first:he(function(){return[0]}),last:he(function(e,t){return[t-1]}),eq:he(function(e,t,n){return[n<0?n+t:n]}),even:he(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:he(function(e,t,n){for(var r=n<0?n+t:n;++r1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function be(e,t,n){for(var r=0,i=t.length;r-1&&(o[l]=!(a[l]=f))}}else v=we(v===a?v.splice(h,v.length):v),i?i(null,a,v,u):L.apply(a,v)})}function Ce(e){for(var t,n,i,o=e.length,a=r.relative[e[0].type],s=a||r.relative[" "],u=a?1:0,c=me(function(e){return e===t},s,!0),f=me(function(e){return O(t,e)>-1},s,!0),p=[function(e,n,r){var i=!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):f(e,n,r));return t=null,i}];u1&&xe(p),u>1&&ve(e.slice(0,u-1).concat({value:" "===e[u-2].type?"*":""})).replace(B,"$1"),n,u0,i=e.length>0,o=function(o,a,s,u,c){var f,h,y,v=0,m="0",x=o&&[],b=[],w=l,C=o||i&&r.find.TAG("*",c),E=T+=null==w?1:Math.random()||.1,k=C.length;for(c&&(l=a===d||a||c);m!==k&&null!=(f=C[m]);m++){if(i&&f){h=0,a||f.ownerDocument===d||(p(f),s=!g);while(y=e[h++])if(y(f,a||d,s)){u.push(f);break}c&&(T=E)}n&&((f=!y&&f)&&v--,o&&x.push(f))}if(v+=m,n&&m!==v){h=0;while(y=t[h++])y(x,b,a,s);if(o){if(v>0)while(m--)x[m]||b[m]||(b[m]=j.call(u));b=we(b)}L.apply(u,b),c&&!o&&b.length>0&&v+t.length>1&&oe.uniqueSort(u)}return c&&(T=E,l=w),x};return n?se(o):o}return s=oe.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=a(e)),n=t.length;while(n--)(o=Ce(t[n]))[b]?r.push(o):i.push(o);(o=S(e,Ee(i,r))).selector=e}return o},u=oe.select=function(e,t,n,i){var o,u,l,c,f,p="function"==typeof e&&e,d=!i&&a(e=p.selector||e);if(n=n||[],1===d.length){if((u=d[0]=d[0].slice(0)).length>2&&"ID"===(l=u[0]).type&&9===t.nodeType&&g&&r.relative[u[1].type]){if(!(t=(r.find.ID(l.matches[0].replace(Z,ee),t)||[])[0]))return n;p&&(t=t.parentNode),e=e.slice(u.shift().value.length)}o=V.needsContext.test(e)?0:u.length;while(o--){if(l=u[o],r.relative[c=l.type])break;if((f=r.find[c])&&(i=f(l.matches[0].replace(Z,ee),K.test(u[0].type)&&ge(t.parentNode)||t))){if(u.splice(o,1),!(e=i.length&&ve(u)))return L.apply(n,i),n;break}}}return(p||s(e,d))(i,t,!g,n,!t||K.test(e)&&ge(t.parentNode)||t),n},n.sortStable=b.split("").sort(D).join("")===b,n.detectDuplicates=!!f,p(),n.sortDetached=ue(function(e){return 1&e.compareDocumentPosition(d.createElement("fieldset"))}),ue(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||le("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&ue(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||le("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ue(function(e){return null==e.getAttribute("disabled")})||le(P,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),oe}(e);w.find=E,w.expr=E.selectors,w.expr[":"]=w.expr.pseudos,w.uniqueSort=w.unique=E.uniqueSort,w.text=E.getText,w.isXMLDoc=E.isXML,w.contains=E.contains,w.escapeSelector=E.escape;var k=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&w(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},D=w.expr.match.needsContext;function N(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var A=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,t,n){return g(t)?w.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?w.grep(e,function(e){return e===t!==n}):"string"!=typeof t?w.grep(e,function(e){return u.call(t,e)>-1!==n}):w.filter(t,e,n)}w.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?w.find.matchesSelector(r,e)?[r]:[]:w.find.matches(e,w.grep(t,function(e){return 1===e.nodeType}))},w.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(w(e).filter(function(){for(t=0;t1?w.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&D.test(e)?w(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(w.fn.init=function(e,t,n){var i,o;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(i="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:L.exec(e))||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof w?t[0]:t,w.merge(this,w.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:r,!0)),A.test(i[1])&&w.isPlainObject(t))for(i in t)g(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return(o=r.getElementById(i[2]))&&(this[0]=o,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):g(e)?void 0!==n.ready?n.ready(e):e(w):w.makeArray(e,this)}).prototype=w.fn,q=w(r);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};w.fn.extend({has:function(e){var t=w(e,this),n=t.length;return this.filter(function(){for(var e=0;e-1:1===n.nodeType&&w.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?w.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?u.call(w(e),this[0]):u.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(w.uniqueSort(w.merge(this.get(),w(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}w.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return k(e,"parentNode")},parentsUntil:function(e,t,n){return k(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return k(e,"nextSibling")},prevAll:function(e){return k(e,"previousSibling")},nextUntil:function(e,t,n){return k(e,"nextSibling",n)},prevUntil:function(e,t,n){return k(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return N(e,"iframe")?e.contentDocument:(N(e,"template")&&(e=e.content||e),w.merge([],e.childNodes))}},function(e,t){w.fn[e]=function(n,r){var i=w.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=w.filter(r,i)),this.length>1&&(O[e]||w.uniqueSort(i),H.test(e)&&i.reverse()),this.pushStack(i)}});var M=/[^\x20\t\r\n\f]+/g;function R(e){var t={};return w.each(e.match(M)||[],function(e,n){t[n]=!0}),t}w.Callbacks=function(e){e="string"==typeof e?R(e):w.extend({},e);var t,n,r,i,o=[],a=[],s=-1,u=function(){for(i=i||e.once,r=t=!0;a.length;s=-1){n=a.shift();while(++s-1)o.splice(n,1),n<=s&&s--}),this},has:function(e){return e?w.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||u()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l};function I(e){return e}function W(e){throw e}function $(e,t,n,r){var i;try{e&&g(i=e.promise)?i.call(e).done(t).fail(n):e&&g(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}w.extend({Deferred:function(t){var n=[["notify","progress",w.Callbacks("memory"),w.Callbacks("memory"),2],["resolve","done",w.Callbacks("once memory"),w.Callbacks("once memory"),0,"resolved"],["reject","fail",w.Callbacks("once memory"),w.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},"catch":function(e){return i.then(null,e)},pipe:function(){var e=arguments;return w.Deferred(function(t){w.each(n,function(n,r){var i=g(e[r[4]])&&e[r[4]];o[r[1]](function(){var e=i&&i.apply(this,arguments);e&&g(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(t,r,i){var o=0;function a(t,n,r,i){return function(){var s=this,u=arguments,l=function(){var e,l;if(!(t=o&&(r!==W&&(s=void 0,u=[e]),n.rejectWith(s,u))}};t?c():(w.Deferred.getStackHook&&(c.stackTrace=w.Deferred.getStackHook()),e.setTimeout(c))}}return w.Deferred(function(e){n[0][3].add(a(0,e,g(i)?i:I,e.notifyWith)),n[1][3].add(a(0,e,g(t)?t:I)),n[2][3].add(a(0,e,g(r)?r:W))}).promise()},promise:function(e){return null!=e?w.extend(e,i):i}},o={};return w.each(n,function(e,t){var a=t[2],s=t[5];i[t[1]]=a.add,s&&a.add(function(){r=s},n[3-e][2].disable,n[3-e][3].disable,n[0][2].lock,n[0][3].lock),a.add(t[3].fire),o[t[0]]=function(){return o[t[0]+"With"](this===o?void 0:this,arguments),this},o[t[0]+"With"]=a.fireWith}),i.promise(o),t&&t.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=o.call(arguments),a=w.Deferred(),s=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?o.call(arguments):n,--t||a.resolveWith(r,i)}};if(t<=1&&($(e,a.done(s(n)).resolve,a.reject,!t),"pending"===a.state()||g(i[n]&&i[n].then)))return a.then();while(n--)$(i[n],s(n),a.reject);return a.promise()}});var B=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;w.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&B.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,n)},w.readyException=function(t){e.setTimeout(function(){throw t})};var F=w.Deferred();w.fn.ready=function(e){return F.then(e)["catch"](function(e){w.readyException(e)}),this},w.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--w.readyWait:w.isReady)||(w.isReady=!0,!0!==e&&--w.readyWait>0||F.resolveWith(r,[w]))}}),w.ready.then=F.then;function _(){r.removeEventListener("DOMContentLoaded",_),e.removeEventListener("load",_),w.ready()}"complete"===r.readyState||"loading"!==r.readyState&&!r.documentElement.doScroll?e.setTimeout(w.ready):(r.addEventListener("DOMContentLoaded",_),e.addEventListener("load",_));var z=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===x(n)){i=!0;for(s in n)z(e,t,s,n[s],!0,o,a)}else if(void 0!==r&&(i=!0,g(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(w(e),n)})),t))for(;s1,null,!0)},removeData:function(e){return this.each(function(){K.remove(this,e)})}}),w.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=J.get(e,t),n&&(!r||Array.isArray(n)?r=J.access(e,t,w.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=w.queue(e,t),r=n.length,i=n.shift(),o=w._queueHooks(e,t),a=function(){w.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 J.get(e,n)||J.access(e,n,{empty:w.Callbacks("once memory").add(function(){J.remove(e,[t+"queue",n])})})}}),w.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length\x20\t\r\n\f]+)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&N(e,t)?w.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n-1)i&&i.push(o);else if(l=w.contains(o.ownerDocument,o),a=ye(f.appendChild(o),"script"),l&&ve(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}!function(){var e=r.createDocumentFragment().appendChild(r.createElement("div")),t=r.createElement("input");t.setAttribute("type","radio"),t.setAttribute("checked","checked"),t.setAttribute("name","t"),e.appendChild(t),h.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="",h.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var be=r.documentElement,we=/^key/,Te=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ce=/^([^.]*)(?:\.(.+)|)/;function Ee(){return!0}function ke(){return!1}function Se(){try{return r.activeElement}catch(e){}}function De(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(s in t)De(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=ke;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return w().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=w.guid++)),e.each(function(){w.event.add(this,t,i,r,n)})}w.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.get(e);if(y){n.handler&&(n=(o=n).handler,i=o.selector),i&&w.find.matchesSelector(be,i),n.guid||(n.guid=w.guid++),(u=y.events)||(u=y.events={}),(a=y.handle)||(a=y.handle=function(t){return"undefined"!=typeof w&&w.event.triggered!==t.type?w.event.dispatch.apply(e,arguments):void 0}),l=(t=(t||"").match(M)||[""]).length;while(l--)d=g=(s=Ce.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=w.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=w.event.special[d]||{},c=w.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&w.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(d,a)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),w.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.hasData(e)&&J.get(e);if(y&&(u=y.events)){l=(t=(t||"").match(M)||[""]).length;while(l--)if(s=Ce.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){f=w.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,y.handle)||w.removeEvent(e,d,y.handle),delete u[d])}else for(d in u)w.event.remove(e,d+t[l],n,r,!0);w.isEmptyObject(u)&&J.remove(e,"handle events")}},dispatch:function(e){var t=w.event.fix(e),n,r,i,o,a,s,u=new Array(arguments.length),l=(J.get(this,"events")||{})[t.type]||[],c=w.event.special[t.type]||{};for(u[0]=t,n=1;n=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n-1:w.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u\x20\t\r\n\f]*)[^>]*)\/>/gi,Ae=/\s*$/g;function Le(e,t){return N(e,"table")&&N(11!==t.nodeType?t:t.firstChild,"tr")?w(e).children("tbody")[0]||e:e}function He(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Oe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Pe(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(J.hasData(e)&&(o=J.access(e),a=J.set(t,o),l=o.events)){delete a.handle,a.events={};for(i in l)for(n=0,r=l[i].length;n1&&"string"==typeof y&&!h.checkClone&&je.test(y))return e.each(function(i){var o=e.eq(i);v&&(t[0]=y.call(this,i,o.html())),Re(o,t,n,r)});if(p&&(i=xe(t,e[0].ownerDocument,!1,e,r),o=i.firstChild,1===i.childNodes.length&&(i=o),o||r)){for(u=(s=w.map(ye(i,"script"),He)).length;f")},clone:function(e,t,n){var r,i,o,a,s=e.cloneNode(!0),u=w.contains(e.ownerDocument,e);if(!(h.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||w.isXMLDoc(e)))for(a=ye(s),r=0,i=(o=ye(e)).length;r0&&ve(a,!u&&ye(e,"script")),s},cleanData:function(e){for(var t,n,r,i=w.event.special,o=0;void 0!==(n=e[o]);o++)if(Y(n)){if(t=n[J.expando]){if(t.events)for(r in t.events)i[r]?w.event.remove(n,r):w.removeEvent(n,r,t.handle);n[J.expando]=void 0}n[K.expando]&&(n[K.expando]=void 0)}}}),w.fn.extend({detach:function(e){return Ie(this,e,!0)},remove:function(e){return Ie(this,e)},text:function(e){return z(this,function(e){return void 0===e?w.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Re(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Le(this,e).appendChild(e)})},prepend:function(){return Re(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Le(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(w.cleanData(ye(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return w.clone(this,e,t)})},html:function(e){return z(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Ae.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=w.htmlPrefilter(e);try{for(;n=0&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))),u}function et(e,t,n){var r=$e(e),i=Fe(e,t,r),o="border-box"===w.css(e,"boxSizing",!1,r),a=o;if(We.test(i)){if(!n)return i;i="auto"}return a=a&&(h.boxSizingReliable()||i===e.style[t]),("auto"===i||!parseFloat(i)&&"inline"===w.css(e,"display",!1,r))&&(i=e["offset"+t[0].toUpperCase()+t.slice(1)],a=!0),(i=parseFloat(i)||0)+Ze(e,t,n||(o?"border":"content"),a,r,i)+"px"}w.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Fe(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=G(t),u=Xe.test(t),l=e.style;if(u||(t=Je(s)),a=w.cssHooks[t]||w.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"==(o=typeof n)&&(i=ie.exec(n))&&i[1]&&(n=ue(e,t,i),o="number"),null!=n&&n===n&&("number"===o&&(n+=i&&i[3]||(w.cssNumber[s]?"":"px")),h.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=G(t);return Xe.test(t)||(t=Je(s)),(a=w.cssHooks[t]||w.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Fe(e,t,r)),"normal"===i&&t in Ve&&(i=Ve[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),w.each(["height","width"],function(e,t){w.cssHooks[t]={get:function(e,n,r){if(n)return!ze.test(w.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?et(e,t,r):se(e,Ue,function(){return et(e,t,r)})},set:function(e,n,r){var i,o=$e(e),a="border-box"===w.css(e,"boxSizing",!1,o),s=r&&Ze(e,t,r,a,o);return a&&h.scrollboxSize()===o.position&&(s-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-Ze(e,t,"border",!1,o)-.5)),s&&(i=ie.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=w.css(e,t)),Ke(e,n,s)}}}),w.cssHooks.marginLeft=_e(h.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Fe(e,"marginLeft"))||e.getBoundingClientRect().left-se(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),w.each({margin:"",padding:"",border:"Width"},function(e,t){w.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+oe[r]+t]=o[r]||o[r-2]||o[0];return i}},"margin"!==e&&(w.cssHooks[e+t].set=Ke)}),w.fn.extend({css:function(e,t){return z(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=$e(e),i=t.length;a1)}});function tt(e,t,n,r,i){return new tt.prototype.init(e,t,n,r,i)}w.Tween=tt,tt.prototype={constructor:tt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||w.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(w.cssNumber[n]?"":"px")},cur:function(){var e=tt.propHooks[this.prop];return e&&e.get?e.get(this):tt.propHooks._default.get(this)},run:function(e){var t,n=tt.propHooks[this.prop];return this.options.duration?this.pos=t=w.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):tt.propHooks._default.set(this),this}},tt.prototype.init.prototype=tt.prototype,tt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=w.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){w.fx.step[e.prop]?w.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[w.cssProps[e.prop]]&&!w.cssHooks[e.prop]?e.elem[e.prop]=e.now:w.style(e.elem,e.prop,e.now+e.unit)}}},tt.propHooks.scrollTop=tt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},w.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},w.fx=tt.prototype.init,w.fx.step={};var nt,rt,it=/^(?:toggle|show|hide)$/,ot=/queueHooks$/;function at(){rt&&(!1===r.hidden&&e.requestAnimationFrame?e.requestAnimationFrame(at):e.setTimeout(at,w.fx.interval),w.fx.tick())}function st(){return e.setTimeout(function(){nt=void 0}),nt=Date.now()}function ut(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=oe[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function lt(e,t,n){for(var r,i=(pt.tweeners[t]||[]).concat(pt.tweeners["*"]),o=0,a=i.length;o1)},removeAttr:function(e){return this.each(function(){w.removeAttr(this,e)})}}),w.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?w.prop(e,t,n):(1===o&&w.isXMLDoc(e)||(i=w.attrHooks[t.toLowerCase()]||(w.expr.match.bool.test(t)?dt:void 0)),void 0!==n?null===n?void w.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=w.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!h.radioValue&&"radio"===t&&N(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(M);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),dt={set:function(e,t,n){return!1===t?w.removeAttr(e,n):e.setAttribute(n,n),n}},w.each(w.expr.match.bool.source.match(/\w+/g),function(e,t){var n=ht[t]||w.find.attr;ht[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=ht[a],ht[a]=i,i=null!=n(e,t,r)?a:null,ht[a]=o),i}});var gt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;w.fn.extend({prop:function(e,t){return z(this,w.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[w.propFix[e]||e]})}}),w.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&w.isXMLDoc(e)||(t=w.propFix[t]||t,i=w.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=w.find.attr(e,"tabindex");return t?parseInt(t,10):gt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),h.optSelected||(w.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),w.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){w.propFix[this.toLowerCase()]=this});function vt(e){return(e.match(M)||[]).join(" ")}function mt(e){return e.getAttribute&&e.getAttribute("class")||""}function xt(e){return Array.isArray(e)?e:"string"==typeof e?e.match(M)||[]:[]}w.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).addClass(e.call(this,t,mt(this)))});if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).removeClass(e.call(this,t,mt(this)))});if(!arguments.length)return this.attr("class","");if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])while(r.indexOf(" "+o+" ")>-1)r=r.replace(" "+o+" "," ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(e,t){var n=typeof e,r="string"===n||Array.isArray(e);return"boolean"==typeof t&&r?t?this.addClass(e):this.removeClass(e):g(e)?this.each(function(n){w(this).toggleClass(e.call(this,n,mt(this),t),t)}):this.each(function(){var t,i,o,a;if(r){i=0,o=w(this),a=xt(e);while(t=a[i++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else void 0!==e&&"boolean"!==n||((t=mt(this))&&J.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":J.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&(" "+vt(mt(n))+" ").indexOf(t)>-1)return!0;return!1}});var bt=/\r/g;w.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=g(e),this.each(function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,w(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=w.map(i,function(e){return null==e?"":e+""})),(t=w.valHooks[this.type]||w.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return(t=w.valHooks[i.type]||w.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(bt,""):null==n?"":n}}}),w.extend({valHooks:{option:{get:function(e){var t=w.find.attr(e,"value");return null!=t?t:vt(w.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),w.each(["radio","checkbox"],function(){w.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=w.inArray(w(e).val(),t)>-1}},h.checkOn||(w.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),h.focusin="onfocusin"in e;var wt=/^(?:focusinfocus|focusoutblur)$/,Tt=function(e){e.stopPropagation()};w.extend(w.event,{trigger:function(t,n,i,o){var a,s,u,l,c,p,d,h,v=[i||r],m=f.call(t,"type")?t.type:t,x=f.call(t,"namespace")?t.namespace.split("."):[];if(s=h=u=i=i||r,3!==i.nodeType&&8!==i.nodeType&&!wt.test(m+w.event.triggered)&&(m.indexOf(".")>-1&&(m=(x=m.split(".")).shift(),x.sort()),c=m.indexOf(":")<0&&"on"+m,t=t[w.expando]?t:new w.Event(m,"object"==typeof t&&t),t.isTrigger=o?2:3,t.namespace=x.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+x.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=i),n=null==n?[t]:w.makeArray(n,[t]),d=w.event.special[m]||{},o||!d.trigger||!1!==d.trigger.apply(i,n))){if(!o&&!d.noBubble&&!y(i)){for(l=d.delegateType||m,wt.test(l+m)||(s=s.parentNode);s;s=s.parentNode)v.push(s),u=s;u===(i.ownerDocument||r)&&v.push(u.defaultView||u.parentWindow||e)}a=0;while((s=v[a++])&&!t.isPropagationStopped())h=s,t.type=a>1?l:d.bindType||m,(p=(J.get(s,"events")||{})[t.type]&&J.get(s,"handle"))&&p.apply(s,n),(p=c&&s[c])&&p.apply&&Y(s)&&(t.result=p.apply(s,n),!1===t.result&&t.preventDefault());return t.type=m,o||t.isDefaultPrevented()||d._default&&!1!==d._default.apply(v.pop(),n)||!Y(i)||c&&g(i[m])&&!y(i)&&((u=i[c])&&(i[c]=null),w.event.triggered=m,t.isPropagationStopped()&&h.addEventListener(m,Tt),i[m](),t.isPropagationStopped()&&h.removeEventListener(m,Tt),w.event.triggered=void 0,u&&(i[c]=u)),t.result}},simulate:function(e,t,n){var r=w.extend(new w.Event,n,{type:e,isSimulated:!0});w.event.trigger(r,null,t)}}),w.fn.extend({trigger:function(e,t){return this.each(function(){w.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return w.event.trigger(e,t,n,!0)}}),h.focusin||w.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){w.event.simulate(t,e.target,w.event.fix(e))};w.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=J.access(r,t);i||r.addEventListener(e,n,!0),J.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=J.access(r,t)-1;i?J.access(r,t,i):(r.removeEventListener(e,n,!0),J.remove(r,t))}}});var Ct=e.location,Et=Date.now(),kt=/\?/;w.parseXML=function(t){var n;if(!t||"string"!=typeof t)return null;try{n=(new e.DOMParser).parseFromString(t,"text/xml")}catch(e){n=void 0}return n&&!n.getElementsByTagName("parsererror").length||w.error("Invalid XML: "+t),n};var St=/\[\]$/,Dt=/\r?\n/g,Nt=/^(?:submit|button|image|reset|file)$/i,At=/^(?:input|select|textarea|keygen)/i;function jt(e,t,n,r){var i;if(Array.isArray(t))w.each(t,function(t,i){n||St.test(e)?r(e,i):jt(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)});else if(n||"object"!==x(t))r(e,t);else for(i in t)jt(e+"["+i+"]",t[i],n,r)}w.param=function(e,t){var n,r=[],i=function(e,t){var n=g(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(Array.isArray(e)||e.jquery&&!w.isPlainObject(e))w.each(e,function(){i(this.name,this.value)});else for(n in e)jt(n,e[n],t,i);return r.join("&")},w.fn.extend({serialize:function(){return w.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=w.prop(this,"elements");return e?w.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!w(this).is(":disabled")&&At.test(this.nodeName)&&!Nt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=w(this).val();return null==n?null:Array.isArray(n)?w.map(n,function(e){return{name:t.name,value:e.replace(Dt,"\r\n")}}):{name:t.name,value:n.replace(Dt,"\r\n")}}).get()}});var qt=/%20/g,Lt=/#.*$/,Ht=/([?&])_=[^&]*/,Ot=/^(.*?):[ \t]*([^\r\n]*)$/gm,Pt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Mt=/^(?:GET|HEAD)$/,Rt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Bt=r.createElement("a");Bt.href=Ct.href;function Ft(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(M)||[];if(g(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function _t(e,t,n,r){var i={},o=e===Wt;function a(s){var u;return i[s]=!0,w.each(e[s]||[],function(e,s){var l=s(t,n,r);return"string"!=typeof l||o||i[l]?o?!(u=l):void 0:(t.dataTypes.unshift(l),a(l),!1)}),u}return a(t.dataTypes[0])||!i["*"]&&a("*")}function zt(e,t){var n,r,i=w.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&w.extend(!0,e,r),e}function Xt(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}function Ut(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}w.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ct.href,type:"GET",isLocal:Pt.test(Ct.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":w.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,w.ajaxSettings),t):zt(w.ajaxSettings,e)},ajaxPrefilter:Ft(It),ajaxTransport:Ft(Wt),ajax:function(t,n){"object"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,a,s,u,l,c,f,p,d,h=w.ajaxSetup({},n),g=h.context||h,y=h.context&&(g.nodeType||g.jquery)?w(g):w.event,v=w.Deferred(),m=w.Callbacks("once memory"),x=h.statusCode||{},b={},T={},C="canceled",E={readyState:0,getResponseHeader:function(e){var t;if(c){if(!s){s={};while(t=Ot.exec(a))s[t[1].toLowerCase()]=t[2]}t=s[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return c?a:null},setRequestHeader:function(e,t){return null==c&&(e=T[e.toLowerCase()]=T[e.toLowerCase()]||e,b[e]=t),this},overrideMimeType:function(e){return null==c&&(h.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)E.always(e[E.status]);else for(t in e)x[t]=[x[t],e[t]];return this},abort:function(e){var t=e||C;return i&&i.abort(t),k(0,t),this}};if(v.promise(E),h.url=((t||h.url||Ct.href)+"").replace(Rt,Ct.protocol+"//"),h.type=n.method||n.type||h.method||h.type,h.dataTypes=(h.dataType||"*").toLowerCase().match(M)||[""],null==h.crossDomain){l=r.createElement("a");try{l.href=h.url,l.href=l.href,h.crossDomain=Bt.protocol+"//"+Bt.host!=l.protocol+"//"+l.host}catch(e){h.crossDomain=!0}}if(h.data&&h.processData&&"string"!=typeof h.data&&(h.data=w.param(h.data,h.traditional)),_t(It,h,n,E),c)return E;(f=w.event&&h.global)&&0==w.active++&&w.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!Mt.test(h.type),o=h.url.replace(Lt,""),h.hasContent?h.data&&h.processData&&0===(h.contentType||"").indexOf("application/x-www-form-urlencoded")&&(h.data=h.data.replace(qt,"+")):(d=h.url.slice(o.length),h.data&&(h.processData||"string"==typeof h.data)&&(o+=(kt.test(o)?"&":"?")+h.data,delete h.data),!1===h.cache&&(o=o.replace(Ht,"$1"),d=(kt.test(o)?"&":"?")+"_="+Et+++d),h.url=o+d),h.ifModified&&(w.lastModified[o]&&E.setRequestHeader("If-Modified-Since",w.lastModified[o]),w.etag[o]&&E.setRequestHeader("If-None-Match",w.etag[o])),(h.data&&h.hasContent&&!1!==h.contentType||n.contentType)&&E.setRequestHeader("Content-Type",h.contentType),E.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+$t+"; q=0.01":""):h.accepts["*"]);for(p in h.headers)E.setRequestHeader(p,h.headers[p]);if(h.beforeSend&&(!1===h.beforeSend.call(g,E,h)||c))return E.abort();if(C="abort",m.add(h.complete),E.done(h.success),E.fail(h.error),i=_t(Wt,h,n,E)){if(E.readyState=1,f&&y.trigger("ajaxSend",[E,h]),c)return E;h.async&&h.timeout>0&&(u=e.setTimeout(function(){E.abort("timeout")},h.timeout));try{c=!1,i.send(b,k)}catch(e){if(c)throw e;k(-1,e)}}else k(-1,"No Transport");function k(t,n,r,s){var l,p,d,b,T,C=n;c||(c=!0,u&&e.clearTimeout(u),i=void 0,a=s||"",E.readyState=t>0?4:0,l=t>=200&&t<300||304===t,r&&(b=Xt(h,E,r)),b=Ut(h,b,E,l),l?(h.ifModified&&((T=E.getResponseHeader("Last-Modified"))&&(w.lastModified[o]=T),(T=E.getResponseHeader("etag"))&&(w.etag[o]=T)),204===t||"HEAD"===h.type?C="nocontent":304===t?C="notmodified":(C=b.state,p=b.data,l=!(d=b.error))):(d=C,!t&&C||(C="error",t<0&&(t=0))),E.status=t,E.statusText=(n||C)+"",l?v.resolveWith(g,[p,C,E]):v.rejectWith(g,[E,C,d]),E.statusCode(x),x=void 0,f&&y.trigger(l?"ajaxSuccess":"ajaxError",[E,h,l?p:d]),m.fireWith(g,[E,C]),f&&(y.trigger("ajaxComplete",[E,h]),--w.active||w.event.trigger("ajaxStop")))}return E},getJSON:function(e,t,n){return w.get(e,t,n,"json")},getScript:function(e,t){return w.get(e,void 0,t,"script")}}),w.each(["get","post"],function(e,t){w[t]=function(e,n,r,i){return g(n)&&(i=i||r,r=n,n=void 0),w.ajax(w.extend({url:e,type:t,dataType:i,data:n,success:r},w.isPlainObject(e)&&e))}}),w._evalUrl=function(e){return w.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},w.fn.extend({wrapAll:function(e){var t;return this[0]&&(g(e)&&(e=e.call(this[0])),t=w(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return g(e)?this.each(function(t){w(this).wrapInner(e.call(this,t))}):this.each(function(){var t=w(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=g(e);return this.each(function(n){w(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){w(this).replaceWith(this.childNodes)}),this}}),w.expr.pseudos.hidden=function(e){return!w.expr.pseudos.visible(e)},w.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},w.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var Vt={0:200,1223:204},Gt=w.ajaxSettings.xhr();h.cors=!!Gt&&"withCredentials"in Gt,h.ajax=Gt=!!Gt,w.ajaxTransport(function(t){var n,r;if(h.cors||Gt&&!t.crossDomain)return{send:function(i,o){var a,s=t.xhr();if(s.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(a in t.xhrFields)s[a]=t.xhrFields[a];t.mimeType&&s.overrideMimeType&&s.overrideMimeType(t.mimeType),t.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");for(a in i)s.setRequestHeader(a,i[a]);n=function(e){return function(){n&&(n=r=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?o(0,"error"):o(s.status,s.statusText):o(Vt[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=n(),r=s.onerror=s.ontimeout=n("error"),void 0!==s.onabort?s.onabort=r:s.onreadystatechange=function(){4===s.readyState&&e.setTimeout(function(){n&&r()})},n=n("abort");try{s.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}}),w.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),w.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return w.globalEval(e),e}}}),w.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),w.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(i,o){t=w("