From ffe447b8110035f383eb54c1dad06a4d045ea473 Mon Sep 17 00:00:00 2001 From: lvt Date: Fri, 24 Mar 2017 15:02:26 +0900 Subject: [PATCH] add css files --- .gitignore | 2 +- public/GYJtF4 | Bin 0 -> 277184 bytes public/css/ContentFlowAddOn_carousel.css | 69 + public/css/ContentFlowAddOn_carousel.js | 131 + public/css/a.css | 2353 ++++ public/css/base.css | 9885 ++++++++++++++++ public/css/blueimp-gallery.min.css | 1 + public/css/bootstrap-image-gallery.css | 87 + public/css/bootstrap-image-gallery.min.css | 1 + public/css/bootstrap-theme.css | 587 + public/css/bootstrap-theme.css.map | 1 + public/css/bootstrap-theme.min.css | 5 + public/css/bootstrap.css | 6800 +++++++++++ public/css/bootstrap.css.map | 1 + public/css/bootstrap.min.css | 5 + public/css/chrismas_tree.css | 183 + public/css/christmas_button.css | 127 + public/css/christmas_tree.css | 183 + public/css/christmaslights.css | 111 + public/css/contentflow.css | 171 + public/css/contentflow.js | 1976 ++++ public/css/demo.css | 31 + public/css/elements.css | 112 + public/css/img/blueimp-demo.css | 51 + public/css/img/buttons.svg | 241 + public/css/img/next.png | Bin 0 -> 2003 bytes public/css/img/next_h.png | Bin 0 -> 3055 bytes public/css/img/pre.png | Bin 0 -> 1981 bytes public/css/img/pre_h.png | Bin 0 -> 3109 bytes public/css/landing.css | 1 + public/css/login.css | 47 + public/css/lvt.css | 44 + public/css/photoshare.css | 35 + public/css/snow.css | 223 + public/css/vue/1.css | 3 + public/fonts/glyphicons-halflings-regular.eot | Bin 0 -> 20127 bytes public/fonts/glyphicons-halflings-regular.svg | 288 + public/fonts/glyphicons-halflings-regular.ttf | Bin 0 -> 45404 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 0 -> 23424 bytes .../fonts/glyphicons-halflings-regular.woff2 | Bin 0 -> 18028 bytes public/g83KZe | Bin 0 -> 57315 bytes public/img/error.png | Bin 0 -> 2216 bytes public/img/error.svg | 5 + public/img/loading.gif | Bin 0 -> 3897 bytes public/img/play-pause.png | Bin 0 -> 606 bytes public/img/play-pause.svg | 6 + public/img/video-play.png | Bin 0 -> 2811 bytes public/img/video-play.svg | 5 + public/js/ajaxcombo/bitly.php | 20 + public/js/ajaxcombo/btn.png | Bin 0 -> 327 bytes public/js/ajaxcombo/jquery.ajax-combobox.css | 293 + public/js/ajaxcombo/jquery.ajax-combobox.js | 2179 ++++ .../js/ajaxcombo/jquery.ajax-combobox.min.js | 7 + public/js/ajaxcombo/jquery.ajax-combobox.php | 273 + public/js/app.js | 101 + public/js/blueimp-gallery-fullscreen.js | 90 + public/js/blueimp-gallery-indicator.js | 156 + public/js/blueimp-gallery-video.js | 171 + public/js/blueimp-gallery-vimeo.js | 215 + public/js/blueimp-gallery-youtube.js | 229 + public/js/blueimp-gallery.js | 1360 +++ public/js/blueimp-gallery.min.js | 2 + public/js/blueimp-helper.js | 191 + public/js/bootstrap-image-gallery.js | 88 + public/js/bootstrap-image-gallery.min.js | 1 + public/js/bootstrap.js | 2363 ++++ public/js/bootstrap.min.js | 7 + public/js/christmaslights.js | 468 + .../js/cors/jquery.postmessage-transport.js | 120 + public/js/cors/jquery.xdr-transport.js | 89 + public/js/demo.js | 102 + public/js/jqFileUploads/.gitignore | 3 + public/js/jqFileUploads/.jshintrc | 81 + public/js/jqFileUploads/CONTRIBUTING.md | 15 + public/js/jqFileUploads/Gruntfile.js | 29 + public/js/jqFileUploads/README.md | 113 + public/js/jqFileUploads/angularjs.html | 211 + public/js/jqFileUploads/basic-plus.html | 226 + public/js/jqFileUploads/basic.html | 136 + public/js/jqFileUploads/bower.json | 64 + public/js/jqFileUploads/cors/postmessage.html | 75 + public/js/jqFileUploads/cors/result.html | 24 + public/js/jqFileUploads/css/demo-ie8.css | 21 + public/js/jqFileUploads/css/demo.css | 67 + .../css/jquery.fileupload-noscript.css | 22 + .../css/jquery.fileupload-ui-noscript.css | 17 + .../css/jquery.fileupload-ui.css | 57 + .../jqFileUploads/css/jquery.fileupload.css | 37 + public/js/jqFileUploads/css/style.css | 27 + public/js/jqFileUploads/img/loading.gif | Bin 0 -> 3897 bytes public/js/jqFileUploads/img/progressbar.gif | Bin 0 -> 3323 bytes public/js/jqFileUploads/index.php | 256 + public/js/jqFileUploads/jquery-ui.html | 250 + .../js/build/js/jquery.fileupload-angular.js | 1 + .../js/build/js/jquery.fileupload-audio.js | 1 + .../js/build/js/jquery.fileupload-image.js | 1 + .../build/js/jquery.fileupload-jquery-ui.js | 1 + .../js/build/js/jquery.fileupload-process.js | 1 + .../js/build/js/jquery.fileupload-ui.js | 1 + .../js/build/js/jquery.fileupload-validate.js | 1 + .../js/build/js/jquery.fileupload-video.js | 1 + .../js/build/js/jquery.fileupload.js | 1 + .../js/build/js/jquery.iframe-transport.js | 1 + public/js/jqFileUploads/js/build/js/main.js | 1 + .../js/cors/jquery.postmessage-transport.js | 120 + .../js/cors/jquery.xdr-transport.js | 89 + .../js/jquery.fileupload-angular.js | 425 + .../js/jquery.fileupload-audio.js | 112 + .../js/jquery.fileupload-image.js | 321 + .../js/jquery.fileupload-jquery-ui.js | 155 + .../js/jquery.fileupload-process.js | 175 + .../jqFileUploads/js/jquery.fileupload-ui.js | 710 ++ .../js/jquery.fileupload-validate.js | 122 + .../js/jquery.fileupload-video.js | 112 + .../js/jqFileUploads/js/jquery.fileupload.js | 1477 +++ .../js/jquery.iframe-transport.js | 217 + public/js/jqFileUploads/js/main.js | 44 + .../js/vendor/jquery.ui.widget.js | 572 + public/js/jqFileUploads/package.json | 54 + .../js/jqFileUploads/server/gae-go/app.yaml | 12 + .../jqFileUploads/server/gae-go/app/main.go | 361 + .../server/gae-go/static/favicon.ico | Bin 0 -> 1150 bytes .../server/gae-go/static/robots.txt | 2 + .../jqFileUploads/server/gae-python/app.yaml | 17 + .../jqFileUploads/server/gae-python/main.py | 204 + .../server/gae-python/static/favicon.ico | Bin 0 -> 1150 bytes .../server/gae-python/static/robots.txt | 2 + .../server/php/UploadHandler.php | 1387 +++ .../jqFileUploads/server/php/files/.gitignore | 3 + .../jqFileUploads/server/php/files/.htaccess | 23 + public/js/jqFileUploads/server/php/index.php | 15 + public/js/jqFileUploads/test/index.html | 172 + public/js/jqFileUploads/test/test.js | 1292 +++ public/js/jquery-2.1.4.min.js | 4 + public/js/jquery.blueimp-gallery.js | 84 + public/js/jquery.blueimp-gallery.min.js | 1 + public/js/jquery.fileupload-angular.js | 425 + public/js/jquery.fileupload-audio.js | 112 + public/js/jquery.fileupload-image.js | 321 + public/js/jquery.fileupload-jquery-ui.js | 155 + public/js/jquery.fileupload-process.js | 175 + public/js/jquery.fileupload-ui.js | 710 ++ public/js/jquery.fileupload-validate.js | 122 + public/js/jquery.fileupload-video.js | 112 + public/js/jquery.fileupload.js | 1477 +++ public/js/jquery.fileupload.min.js | 2 + public/js/jquery.iframe-transport.js | 217 + public/js/lights.js | 45 + public/js/loadimage.demo.js | 142 + public/js/main.js | 75 + public/js/moment-with-locales.js | 9977 +++++++++++++++++ public/js/moment-with-locales.min.js | 80 + public/js/moment.js | 3195 ++++++ public/js/my_js.js | 31 + public/js/npm.js | 13 + public/js/photoshare-authors.js | 8 + public/js/photoshare-comments.js | 48 + public/js/photoshare-control.js | 119 + public/js/photoshare-photoLinks.js | 162 + public/js/photoshare-share-ways.js | 22 + public/js/photoshare-socketio.js | 51 + public/js/react-dom.min.js | 12 + public/js/react.min.js | 16 + public/js/snowstorm.js | 666 ++ public/js/soundmanager2-nodebug-jsmin.js | 81 + public/js/vendor/jquery.ui.widget.js | 572 + public/js/vue/1.js | 76 + 167 files changed, 61540 insertions(+), 1 deletion(-) create mode 100644 public/GYJtF4 create mode 100644 public/css/ContentFlowAddOn_carousel.css create mode 100644 public/css/ContentFlowAddOn_carousel.js create mode 100644 public/css/a.css create mode 100644 public/css/base.css create mode 100644 public/css/blueimp-gallery.min.css create mode 100644 public/css/bootstrap-image-gallery.css create mode 100644 public/css/bootstrap-image-gallery.min.css create mode 100644 public/css/bootstrap-theme.css create mode 100644 public/css/bootstrap-theme.css.map create mode 100644 public/css/bootstrap-theme.min.css create mode 100644 public/css/bootstrap.css create mode 100644 public/css/bootstrap.css.map create mode 100644 public/css/bootstrap.min.css create mode 100644 public/css/chrismas_tree.css create mode 100644 public/css/christmas_button.css create mode 100644 public/css/christmas_tree.css create mode 100644 public/css/christmaslights.css create mode 100644 public/css/contentflow.css create mode 100644 public/css/contentflow.js create mode 100644 public/css/demo.css create mode 100644 public/css/elements.css create mode 100644 public/css/img/blueimp-demo.css create mode 100644 public/css/img/buttons.svg create mode 100644 public/css/img/next.png create mode 100644 public/css/img/next_h.png create mode 100644 public/css/img/pre.png create mode 100644 public/css/img/pre_h.png create mode 100644 public/css/landing.css create mode 100644 public/css/login.css create mode 100644 public/css/lvt.css create mode 100644 public/css/photoshare.css create mode 100644 public/css/snow.css create mode 100644 public/css/vue/1.css create mode 100644 public/fonts/glyphicons-halflings-regular.eot create mode 100644 public/fonts/glyphicons-halflings-regular.svg create mode 100644 public/fonts/glyphicons-halflings-regular.ttf create mode 100644 public/fonts/glyphicons-halflings-regular.woff create mode 100644 public/fonts/glyphicons-halflings-regular.woff2 create mode 100644 public/g83KZe create mode 100755 public/img/error.png create mode 100755 public/img/error.svg create mode 100755 public/img/loading.gif create mode 100755 public/img/play-pause.png create mode 100755 public/img/play-pause.svg create mode 100755 public/img/video-play.png create mode 100755 public/img/video-play.svg create mode 100755 public/js/ajaxcombo/bitly.php create mode 100755 public/js/ajaxcombo/btn.png create mode 100755 public/js/ajaxcombo/jquery.ajax-combobox.css create mode 100755 public/js/ajaxcombo/jquery.ajax-combobox.js create mode 100755 public/js/ajaxcombo/jquery.ajax-combobox.min.js create mode 100755 public/js/ajaxcombo/jquery.ajax-combobox.php create mode 100755 public/js/app.js create mode 100755 public/js/blueimp-gallery-fullscreen.js create mode 100755 public/js/blueimp-gallery-indicator.js create mode 100755 public/js/blueimp-gallery-video.js create mode 100755 public/js/blueimp-gallery-vimeo.js create mode 100755 public/js/blueimp-gallery-youtube.js create mode 100755 public/js/blueimp-gallery.js create mode 100755 public/js/blueimp-gallery.min.js create mode 100755 public/js/blueimp-helper.js create mode 100644 public/js/bootstrap-image-gallery.js create mode 100644 public/js/bootstrap-image-gallery.min.js create mode 100644 public/js/bootstrap.js create mode 100644 public/js/bootstrap.min.js create mode 100644 public/js/christmaslights.js create mode 100755 public/js/cors/jquery.postmessage-transport.js create mode 100755 public/js/cors/jquery.xdr-transport.js create mode 100644 public/js/demo.js create mode 100755 public/js/jqFileUploads/.gitignore create mode 100755 public/js/jqFileUploads/.jshintrc create mode 100755 public/js/jqFileUploads/CONTRIBUTING.md create mode 100755 public/js/jqFileUploads/Gruntfile.js create mode 100755 public/js/jqFileUploads/README.md create mode 100755 public/js/jqFileUploads/angularjs.html create mode 100755 public/js/jqFileUploads/basic-plus.html create mode 100755 public/js/jqFileUploads/basic.html create mode 100755 public/js/jqFileUploads/bower.json create mode 100755 public/js/jqFileUploads/cors/postmessage.html create mode 100755 public/js/jqFileUploads/cors/result.html create mode 100755 public/js/jqFileUploads/css/demo-ie8.css create mode 100755 public/js/jqFileUploads/css/demo.css create mode 100755 public/js/jqFileUploads/css/jquery.fileupload-noscript.css create mode 100755 public/js/jqFileUploads/css/jquery.fileupload-ui-noscript.css create mode 100755 public/js/jqFileUploads/css/jquery.fileupload-ui.css create mode 100755 public/js/jqFileUploads/css/jquery.fileupload.css create mode 100755 public/js/jqFileUploads/css/style.css create mode 100755 public/js/jqFileUploads/img/loading.gif create mode 100755 public/js/jqFileUploads/img/progressbar.gif create mode 100755 public/js/jqFileUploads/index.php create mode 100755 public/js/jqFileUploads/jquery-ui.html create mode 100644 public/js/jqFileUploads/js/build/js/jquery.fileupload-angular.js create mode 100644 public/js/jqFileUploads/js/build/js/jquery.fileupload-audio.js create mode 100644 public/js/jqFileUploads/js/build/js/jquery.fileupload-image.js create mode 100644 public/js/jqFileUploads/js/build/js/jquery.fileupload-jquery-ui.js create mode 100644 public/js/jqFileUploads/js/build/js/jquery.fileupload-process.js create mode 100644 public/js/jqFileUploads/js/build/js/jquery.fileupload-ui.js create mode 100644 public/js/jqFileUploads/js/build/js/jquery.fileupload-validate.js create mode 100644 public/js/jqFileUploads/js/build/js/jquery.fileupload-video.js create mode 100644 public/js/jqFileUploads/js/build/js/jquery.fileupload.js create mode 100644 public/js/jqFileUploads/js/build/js/jquery.iframe-transport.js create mode 100644 public/js/jqFileUploads/js/build/js/main.js create mode 100755 public/js/jqFileUploads/js/cors/jquery.postmessage-transport.js create mode 100755 public/js/jqFileUploads/js/cors/jquery.xdr-transport.js create mode 100755 public/js/jqFileUploads/js/jquery.fileupload-angular.js create mode 100755 public/js/jqFileUploads/js/jquery.fileupload-audio.js create mode 100755 public/js/jqFileUploads/js/jquery.fileupload-image.js create mode 100755 public/js/jqFileUploads/js/jquery.fileupload-jquery-ui.js create mode 100755 public/js/jqFileUploads/js/jquery.fileupload-process.js create mode 100755 public/js/jqFileUploads/js/jquery.fileupload-ui.js create mode 100755 public/js/jqFileUploads/js/jquery.fileupload-validate.js create mode 100755 public/js/jqFileUploads/js/jquery.fileupload-video.js create mode 100755 public/js/jqFileUploads/js/jquery.fileupload.js create mode 100755 public/js/jqFileUploads/js/jquery.iframe-transport.js create mode 100755 public/js/jqFileUploads/js/main.js create mode 100755 public/js/jqFileUploads/js/vendor/jquery.ui.widget.js create mode 100644 public/js/jqFileUploads/package.json create mode 100755 public/js/jqFileUploads/server/gae-go/app.yaml create mode 100755 public/js/jqFileUploads/server/gae-go/app/main.go create mode 100755 public/js/jqFileUploads/server/gae-go/static/favicon.ico create mode 100755 public/js/jqFileUploads/server/gae-go/static/robots.txt create mode 100755 public/js/jqFileUploads/server/gae-python/app.yaml create mode 100755 public/js/jqFileUploads/server/gae-python/main.py create mode 100755 public/js/jqFileUploads/server/gae-python/static/favicon.ico create mode 100755 public/js/jqFileUploads/server/gae-python/static/robots.txt create mode 100755 public/js/jqFileUploads/server/php/UploadHandler.php create mode 100755 public/js/jqFileUploads/server/php/files/.gitignore create mode 100755 public/js/jqFileUploads/server/php/files/.htaccess create mode 100755 public/js/jqFileUploads/server/php/index.php create mode 100755 public/js/jqFileUploads/test/index.html create mode 100755 public/js/jqFileUploads/test/test.js create mode 100644 public/js/jquery-2.1.4.min.js create mode 100755 public/js/jquery.blueimp-gallery.js create mode 100755 public/js/jquery.blueimp-gallery.min.js create mode 100755 public/js/jquery.fileupload-angular.js create mode 100755 public/js/jquery.fileupload-audio.js create mode 100755 public/js/jquery.fileupload-image.js create mode 100755 public/js/jquery.fileupload-jquery-ui.js create mode 100755 public/js/jquery.fileupload-process.js create mode 100755 public/js/jquery.fileupload-ui.js create mode 100755 public/js/jquery.fileupload-validate.js create mode 100755 public/js/jquery.fileupload-video.js create mode 100755 public/js/jquery.fileupload.js create mode 100644 public/js/jquery.fileupload.min.js create mode 100755 public/js/jquery.iframe-transport.js create mode 100644 public/js/lights.js create mode 100644 public/js/loadimage.demo.js create mode 100755 public/js/main.js create mode 100644 public/js/moment-with-locales.js create mode 100644 public/js/moment-with-locales.min.js create mode 100644 public/js/moment.js create mode 100644 public/js/my_js.js create mode 100644 public/js/npm.js create mode 100644 public/js/photoshare-authors.js create mode 100644 public/js/photoshare-comments.js create mode 100644 public/js/photoshare-control.js create mode 100644 public/js/photoshare-photoLinks.js create mode 100644 public/js/photoshare-share-ways.js create mode 100644 public/js/photoshare-socketio.js create mode 100644 public/js/react-dom.min.js create mode 100644 public/js/react.min.js create mode 100644 public/js/snowstorm.js create mode 100644 public/js/soundmanager2-nodebug-jsmin.js create mode 100755 public/js/vendor/jquery.ui.widget.js create mode 100644 public/js/vue/1.js diff --git a/.gitignore b/.gitignore index 5cccf4a..180ab2e 100644 --- a/.gitignore +++ b/.gitignore @@ -4,7 +4,7 @@ Homestead.yaml Homestead.json .env has_new_comment.js -/public +#/public /storage # Created by https://www.gitignore.io/api/hpstor,phpstorm diff --git a/public/GYJtF4 b/public/GYJtF4 new file mode 100644 index 0000000000000000000000000000000000000000..fc2e8d1211edb285d447494a7a004c999d18e95e GIT binary patch literal 277184 zcmV(xK>u`|i2#zyHVoi%~s#F>B4$ zRW(azt@XC@whh3PlLkoxpr8N%s6T&zx8DE}Ni`{P4P`X}3M+FKu#<%qg$Fw;8wG>A ztBr#d1xQYYLQX|WhQfo7jggtc+``ht-Oi1|+1

#?2e~Z5<#9K!k@!fQLgwKtMo3 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

%WdDx+ZIjB!@2HQS3wS_sx6r}&t1ezh+S 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

UuuzaH#S;Wr#6R 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%0D(yX!tY!fUV=D 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 F{{o+zW4r(W literal 0 HcmV?d00001 diff --git a/public/css/ContentFlowAddOn_carousel.css b/public/css/ContentFlowAddOn_carousel.css new file mode 100644 index 0000000..7c4b055 --- /dev/null +++ b/public/css/ContentFlowAddOn_carousel.css @@ -0,0 +1,69 @@ +/* ContentFlowAddOn_carousel, version 1.1 + * (c) 2008 - 2010 Sebastian Kutsch + * + * + * This file is distributed under the terms of the MIT license. + * (see http://www.jacksasylum.eu/ContentFlow/LICENSE) + * + *--------------------------------------------------------------------------*/ + +.ContentFlowAddOn_carousel { + + /*border: 5px solid #767676;*/ + margin: 0 25px; + padding: 25px 0px; + overflow: visible; + /*overflow: hidden;*/ +} + +.ContentFlowAddOn_carousel #preButton, +.ContentFlowAddOn_carousel #nextButton { + position: absolute; + top: 50%; + margin-top: -25px; + width: 50px; + height: 50px; +} + +.ContentFlowAddOn_carousel #preButton { + background: url(img/pre_h.png) center no-repeat; + left: -25px; + left: -28px; +} + +* html .ContentFlowAddOn_carousel #preButton { + background-image: none; + filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=scale, src='img/pre_h.png'); +} + +.ContentFlowAddOn_carousel #preButton:hover { + background: url(img/pre_h.png) center no-repeat; +} + +.ContentFlowAddOn_carousel #nextButton { + background: url(img/next_h.png) center no-repeat; + right: -25px; + right: -28px; +} + +* html .ContentFlowAddOn_carousel #nextButton { + background-image: none; + filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=scale, src='img/next_h.png'); +} + +.ContentFlowAddOn_carousel #nextButton:hover { + background: url(img/next_h.png) center no-repeat; +} + +/* ----- styling of items ----- */ +.ContentFlowAddOn_carousel .showCaption .item .caption { + display: block !important; +} + +/* ----- global caption ----- */ +.ContentFlowAddOn_carousel .globalCaption { + margin-top: -3em; +} + +/* ================================= */ + diff --git a/public/css/ContentFlowAddOn_carousel.js b/public/css/ContentFlowAddOn_carousel.js new file mode 100644 index 0000000..475f54b --- /dev/null +++ b/public/css/ContentFlowAddOn_carousel.js @@ -0,0 +1,131 @@ +/* ContentFlowAddOn_carousel, version 1.1 + * (c) 2008 - 2010 Sebastian Kutsch + * + * + * This file is distributed under the terms of the MIT license. + * (see http://www.jacksasylum.eu/ContentFlow/LICENSE) + */ + +new ContentFlowAddOn ('carousel', { + + conf: { + shownItems: 3, +// showCaption: true, + width: 100, + height: 100, + space:0.1 + }, + + + init: function() { + this.addStylesheet(); + }, + + onloadInit: function (flow) { + }, + + afterContentFlowInit: function (flow) { + var SI = flow.getAddOnConf('carousel').shownItems; + var c = flow.Container; + var ac = flow.getAddOnConf('carousel') + if (ac.showCaption) { + $CF(flow.Flow).addClassName('showCaption'); + } + + var p = document.createElement('div'); + p.id = "preButton"; + var pre = function () { + var item = flow._activeItem; + for (var i=0; i< SI; i++) { item = item.pre; } + flow.moveToItem(item); + } + p.onclick = pre; + c.appendChild(p); + + var n = document.createElement('div'); + n.id = "nextButton"; + var next = function () { + var item = flow._activeItem; + for (var i=0; i< SI; i++) { item = item.next; } + flow.moveToItem(item); + } + n.onclick = next; + c.appendChild(n); + + flow.Flow.style.fontSize = 12*(flow.maxHeight / 150) +"px"; + if (flow.Browser.IE) { + window.setTimeout(function () {flow.Flow.style.overflow = "hidden"}, 1000); + } + else { + flow.Flow.style.overflow = "hidden"; + } + + flow.setConfig({visibleItems: Math.ceil((flow.getAddOnConf('carousel').shownItems - 1)/2) + 1}); + }, + + ContentFlowConf: { + scaleFactorLandscape: "max", // scale factor of landscape images ('max' := height= maxItemHeight) + scaleFactorPortrait: "max", +// fixItemSize: true, + relativeItemPosition: "center", // align top/above, bottom/below, left, right, center of position coordinate + visibleItems: 2, // how man item are visible on each side (-1 := auto) + reflectionHeight: 0, // float (relative to original image height) + + + /* ==================== actions ==================== */ + onclickInactiveItem : function (item) { + this.conf.onclickActiveItem(item); + return false; + }, + + /* ==================== calculations ==================== */ + + calcStepWidth: function(diff) { + var vI = this.conf.visibleItems; + var items = this.items.length; + items = items == 0 ? 1 : items; + var absDiff = Math.abs(diff); + if (absDiff > vI) { + if (diff > 0) { + var stepwidth = diff - vI; + } else { + var stepwidth = diff + vI; + } + } else if (vI >= items) { + var stepwidth = diff / items; + } else { + var c = this.getAddOnConf('carousel'); + var f = 0.1 * 2/3 * c.shownItems * diff/absDiff; + var d = diff * ( vI / items); + var stepwidth = absDiff > 0.1 ? f : d*8; + } + return stepwidth; + }, + + + calcSize: function (item) { + var c = this.getAddOnConf('carousel'); + var a = c.width / c.height; + //if (this.conf.verticalFlow) a = 1/a; + var h = 3/c.shownItems / a; + //if (this.conf.verticalFlow) h *= 2/3; + var w = h * a; + return {width: w, height: h}; + }, + + calcCoordinates: function (item) { + var rP = item.relativePosition; + var c = this.getAddOnConf('carousel'); + var w = item.size.width; + //if (this.conf.verticalFlow) w = item.size.height; + var x = rP*w/2*(1 + c.space) *this.conf.scaleFactor - w* (c.shownItems % 2 ? 0 : 0.5) / 1.4; + if (this.conf.verticalFlow) x *= 2*2/3; + var y = 0; + + return {x: x, y: y}; + } + + + } + +}); diff --git a/public/css/a.css b/public/css/a.css new file mode 100644 index 0000000..c684fee --- /dev/null +++ b/public/css/a.css @@ -0,0 +1,2353 @@ +html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;} +body{margin:0;} +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +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:bold;} +dfn{font-style:italic;} +h1{font-size:2em;margin:0.67em 0;} +mark{background:#ff0;color:#000;} +small{font-size:80%;} +sub, +sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline;} +sup{top:-0.5em;} +sub{bottom:-0.25em;} +img{border:0;} +svg:not(:root){overflow:hidden;} +figure{margin:1em 40px;} +hr{box-sizing:content-box;height:0;} +pre{overflow:auto;} +code, +kbd, +pre, +samp{font-family:monospace, monospace;font-size:1em;} +button, +input, +optgroup, +select, +textarea{color:inherit;font:inherit;margin:0;} +button{overflow:visible;} +button, +select{text-transform:none;} +button, +html input[type="button"], +input[type="reset"], +input[type="submit"]{-webkit-appearance:button;cursor:pointer;} +button[disabled], +html input[disabled]{cursor:default;} +button::-moz-focus-inner, +input::-moz-focus-inner{border:0;padding:0;} +input{line-height:normal;} +input[type="checkbox"], +input[type="radio"]{box-sizing:border-box;padding:0;} +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button{height:auto;} +input[type="search"]{-webkit-appearance:textfield;box-sizing:content-box;} +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration{-webkit-appearance:none;} +fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em;} +legend{border:0;padding:0;} +textarea{overflow:auto;} +optgroup{font-weight:bold;} +table{border-collapse:collapse;border-spacing:0;} +td, +th{padding:0;} +@media print{*, +*:before, +*:after{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important;} +a, +a:visited{text-decoration:underline;} +a[href]:after{content:" (" attr(href) ")";} +abbr[title]:after{content:" (" attr(title) ")";} +a[href^="#"]:after, +a[href^="javascript:"]:after{content:"";} +pre, +blockquote{border:1px solid #999;page-break-inside:avoid;} +thead{display:table-header-group;} +tr, +img{page-break-inside:avoid;} +img{max-width:100% !important;} +p, +h2, +h3{orphans:3;widows:3;} +h2, +h3{page-break-after:avoid;} +select{background:#fff !important;} +.navbar{display:none;} +.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 th, +.table-bordered td{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.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:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;} +.glyphicon-asterisk:before{content:"\2a";} +.glyphicon-plus:before{content:"\2b";} +.glyphicon-euro:before, +.glyphicon-eur: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";} +*{box-sizing:border-box;} +*:before, +*:after{box-sizing:border-box;} +html{font-size:10px;-webkit-tap-highlight-color:rgba(0, 0, 0, 0);} +body{font-family:"Roboto", Helvetica, Arial, sans-serif;font-size:14px;line-height:1.42857143;color:#333333;background-color:#ffffff;} +input, +button, +select, +textarea{font-family:inherit;font-size:inherit;line-height:inherit;} +a{color:#337ab7;text-decoration:none;} +a:hover, +a:focus{color:#23527c;text-decoration:underline;} +a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;} +figure{margin:0;} +img{vertical-align:middle;} +.img-responsive, +.thumbnail > img, +.thumbnail a > img, +.carousel-inner > .item > img, +.carousel-inner > .item > a > img{display:block;max-width:100%;height:auto;} +.img-rounded{border-radius:6px;} +.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#ffffff;border:1px solid #dddddd;border-radius:4px;transition:all 0.2s ease-in-out;display:inline-block;max-width:100%;height:auto;} +.img-circle{border-radius:50%;} +hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eeeeee;} +.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;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;} +h1, +h2, +h3, +h4, +h5, +h6, +.h1, +.h2, +.h3, +.h4, +.h5, +.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit;} +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small, +.h1 small, +.h2 small, +.h3 small, +.h4 small, +.h5 small, +.h6 small, +h1 .small, +h2 .small, +h3 .small, +h4 .small, +h5 .small, +h6 .small, +.h1 .small, +.h2 .small, +.h3 .small, +.h4 .small, +.h5 .small, +.h6 .small{font-weight:normal;line-height:1;color:#777777;} +h1, +.h1, +h2, +.h2, +h3, +.h3{margin-top:20px;margin-bottom:10px;} +h1 small, +.h1 small, +h2 small, +.h2 small, +h3 small, +.h3 small, +h1 .small, +.h1 .small, +h2 .small, +.h2 .small, +h3 .small, +.h3 .small{font-size:65%;} +h4, +.h4, +h5, +.h5, +h6, +.h6{margin-top:10px;margin-bottom:10px;} +h4 small, +.h4 small, +h5 small, +.h5 small, +h6 small, +.h6 small, +h4 .small, +.h4 .small, +h5 .small, +.h5 .small, +h6 .small, +.h6 .small{font-size:75%;} +h1, +.h1{font-size:36px;} +h2, +.h2{font-size:30px;} +h3, +.h3{font-size:24px;} +h4, +.h4{font-size:18px;} +h5, +.h5{font-size:14px;} +h6, +.h6{font-size:12px;} +p{margin:0 0 10px;} +.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4;} +@media (min-width:768px){.lead{font-size:21px;} +} +small, +.small{font-size:85%;} +mark, +.mark{background-color:#fcf8e3;padding:.2em;} +.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:#777777;} +.text-primary{color:#337ab7;} +a.text-primary:hover{color:#286090;} +.text-success{color:#3c763d;} +a.text-success:hover{color:#2b542c;} +.text-info{color:#31708f;} +a.text-info:hover{color:#245269;} +.text-warning{color:#8a6d3b;} +a.text-warning:hover{color:#66512c;} +.text-danger{color:#a94442;} +a.text-danger:hover{color:#843534;} +.bg-primary{color:#fff;background-color:#337ab7;} +a.bg-primary:hover{background-color:#286090;} +.bg-success{background-color:#dff0d8;} +a.bg-success:hover{background-color:#c1e2b3;} +.bg-info{background-color:#d9edf7;} +a.bg-info:hover{background-color:#afd9ee;} +.bg-warning{background-color:#fcf8e3;} +a.bg-warning:hover{background-color:#f7ecb5;} +.bg-danger{background-color:#f2dede;} +a.bg-danger:hover{background-color:#e4b9b9;} +.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eeeeee;} +ul, +ol{margin-top:0;margin-bottom:10px;} +ul ul, +ol ul, +ul ol, +ol ol{margin-bottom:0;} +.list-unstyled{padding-left:0;list-style:none;} +.list-inline{padding-left:0;list-style:none;margin-left:-5px;} +.list-inline > li{display:inline-block;padding-left:5px;padding-right:5px;} +dl{margin-top:0;margin-bottom:20px;} +dt, +dd{line-height:1.42857143;} +dt{font-weight:bold;} +dd{margin-left:0;} +@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;} +.dl-horizontal dd{margin-left:180px;} +} +abbr[title], +abbr[data-original-title]{cursor:help;border-bottom:1px dotted #777777;} +.initialism{font-size:90%;text-transform:uppercase;} +blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eeeeee;} +blockquote p:last-child, +blockquote ul:last-child, +blockquote ol:last-child{margin-bottom:0;} +blockquote footer, +blockquote small, +blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#777777;} +blockquote footer:before, +blockquote small:before, +blockquote .small:before{content:'\2014 \00A0';} +.blockquote-reverse, +blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eeeeee;border-left:0;text-align:right;} +.blockquote-reverse footer:before, +blockquote.pull-right footer:before, +.blockquote-reverse small:before, +blockquote.pull-right small:before, +.blockquote-reverse .small:before, +blockquote.pull-right .small:before{content:'';} +.blockquote-reverse footer:after, +blockquote.pull-right footer:after, +.blockquote-reverse small:after, +blockquote.pull-right small:after, +.blockquote-reverse .small:after, +blockquote.pull-right .small:after{content:'\00A0 \2014';} +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:#ffffff;background-color:#333333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.25);} +kbd kbd{padding:0;font-size:100%;font-weight:bold;box-shadow:none;} +pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333333;background-color:#f5f5f5;border:1px solid #cccccc;border-radius:4px;} +pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0;} +.pre-scrollable{max-height:340px;overflow-y:scroll;} +.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px;} +@media (min-width:768px){.container{width:750px;} +} +@media (min-width:992px){.container{width:970px;} +} +@media (min-width:1200px){.container{width:1170px;} +} +.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px;} +.row{margin-left:-15px;margin-right:-15px;} +.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px;} +.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12{float:left;} +.col-xs-12{width:100%;} +.col-xs-11{width:91.66666667%;} +.col-xs-10{width:83.33333333%;} +.col-xs-9{width:75%;} +.col-xs-8{width:66.66666667%;} +.col-xs-7{width:58.33333333%;} +.col-xs-6{width:50%;} +.col-xs-5{width:41.66666667%;} +.col-xs-4{width:33.33333333%;} +.col-xs-3{width:25%;} +.col-xs-2{width:16.66666667%;} +.col-xs-1{width:8.33333333%;} +.col-xs-pull-12{right:100%;} +.col-xs-pull-11{right:91.66666667%;} +.col-xs-pull-10{right:83.33333333%;} +.col-xs-pull-9{right:75%;} +.col-xs-pull-8{right:66.66666667%;} +.col-xs-pull-7{right:58.33333333%;} +.col-xs-pull-6{right:50%;} +.col-xs-pull-5{right:41.66666667%;} +.col-xs-pull-4{right:33.33333333%;} +.col-xs-pull-3{right:25%;} +.col-xs-pull-2{right:16.66666667%;} +.col-xs-pull-1{right:8.33333333%;} +.col-xs-pull-0{right: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-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12{float:left;} +.col-sm-12{width:100%;} +.col-sm-11{width:91.66666667%;} +.col-sm-10{width:83.33333333%;} +.col-sm-9{width:75%;} +.col-sm-8{width:66.66666667%;} +.col-sm-7{width:58.33333333%;} +.col-sm-6{width:50%;} +.col-sm-5{width:41.66666667%;} +.col-sm-4{width:33.33333333%;} +.col-sm-3{width:25%;} +.col-sm-2{width:16.66666667%;} +.col-sm-1{width:8.33333333%;} +.col-sm-pull-12{right:100%;} +.col-sm-pull-11{right:91.66666667%;} +.col-sm-pull-10{right:83.33333333%;} +.col-sm-pull-9{right:75%;} +.col-sm-pull-8{right:66.66666667%;} +.col-sm-pull-7{right:58.33333333%;} +.col-sm-pull-6{right:50%;} +.col-sm-pull-5{right:41.66666667%;} +.col-sm-pull-4{right:33.33333333%;} +.col-sm-pull-3{right:25%;} +.col-sm-pull-2{right:16.66666667%;} +.col-sm-pull-1{right:8.33333333%;} +.col-sm-pull-0{right: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-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12{float:left;} +.col-md-12{width:100%;} +.col-md-11{width:91.66666667%;} +.col-md-10{width:83.33333333%;} +.col-md-9{width:75%;} +.col-md-8{width:66.66666667%;} +.col-md-7{width:58.33333333%;} +.col-md-6{width:50%;} +.col-md-5{width:41.66666667%;} +.col-md-4{width:33.33333333%;} +.col-md-3{width:25%;} +.col-md-2{width:16.66666667%;} +.col-md-1{width:8.33333333%;} +.col-md-pull-12{right:100%;} +.col-md-pull-11{right:91.66666667%;} +.col-md-pull-10{right:83.33333333%;} +.col-md-pull-9{right:75%;} +.col-md-pull-8{right:66.66666667%;} +.col-md-pull-7{right:58.33333333%;} +.col-md-pull-6{right:50%;} +.col-md-pull-5{right:41.66666667%;} +.col-md-pull-4{right:33.33333333%;} +.col-md-pull-3{right:25%;} +.col-md-pull-2{right:16.66666667%;} +.col-md-pull-1{right:8.33333333%;} +.col-md-pull-0{right: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-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12{float:left;} +.col-lg-12{width:100%;} +.col-lg-11{width:91.66666667%;} +.col-lg-10{width:83.33333333%;} +.col-lg-9{width:75%;} +.col-lg-8{width:66.66666667%;} +.col-lg-7{width:58.33333333%;} +.col-lg-6{width:50%;} +.col-lg-5{width:41.66666667%;} +.col-lg-4{width:33.33333333%;} +.col-lg-3{width:25%;} +.col-lg-2{width:16.66666667%;} +.col-lg-1{width:8.33333333%;} +.col-lg-pull-12{right:100%;} +.col-lg-pull-11{right:91.66666667%;} +.col-lg-pull-10{right:83.33333333%;} +.col-lg-pull-9{right:75%;} +.col-lg-pull-8{right:66.66666667%;} +.col-lg-pull-7{right:58.33333333%;} +.col-lg-pull-6{right:50%;} +.col-lg-pull-5{right:41.66666667%;} +.col-lg-pull-4{right:33.33333333%;} +.col-lg-pull-3{right:25%;} +.col-lg-pull-2{right:16.66666667%;} +.col-lg-pull-1{right:8.33333333%;} +.col-lg-pull-0{right: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:#777777;text-align:left;} +th{text-align:left;} +.table{width:100%;max-width:100%;margin-bottom:20px;} +.table > thead > tr > th, +.table > tbody > tr > th, +.table > tfoot > tr > th, +.table > thead > tr > td, +.table > tbody > tr > td, +.table > tfoot > tr > td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #dddddd;} +.table > thead > tr > th{vertical-align:bottom;border-bottom:2px solid #dddddd;} +.table > caption + thead > tr:first-child > th, +.table > colgroup + thead > tr:first-child > th, +.table > thead:first-child > tr:first-child > th, +.table > caption + thead > tr:first-child > td, +.table > colgroup + thead > tr:first-child > td, +.table > thead:first-child > tr:first-child > td{border-top:0;} +.table > tbody + tbody{border-top:2px solid #dddddd;} +.table .table{background-color:#ffffff;} +.table-condensed > thead > tr > th, +.table-condensed > tbody > tr > th, +.table-condensed > tfoot > tr > th, +.table-condensed > thead > tr > td, +.table-condensed > tbody > tr > td, +.table-condensed > tfoot > tr > td{padding:5px;} +.table-bordered{border:1px solid #dddddd;} +.table-bordered > thead > tr > th, +.table-bordered > tbody > tr > th, +.table-bordered > tfoot > tr > th, +.table-bordered > thead > tr > td, +.table-bordered > tbody > tr > td, +.table-bordered > tfoot > tr > td{border:1px solid #dddddd;} +.table-bordered > thead > tr > th, +.table-bordered > thead > tr > td{border-bottom-width:2px;} +.table-striped > tbody > tr:nth-child(odd){background-color:#f9f9f9;} +.table-hover > tbody > tr:hover{background-color:#f5f5f5;} +table col[class*="col-"]{position:static;float:none;display:table-column;} +table td[class*="col-"], +table th[class*="col-"]{position:static;float:none;display:table-cell;} +.table > thead > tr > td.active, +.table > tbody > tr > td.active, +.table > tfoot > tr > td.active, +.table > thead > tr > th.active, +.table > tbody > tr > th.active, +.table > tfoot > tr > th.active, +.table > thead > tr.active > td, +.table > tbody > tr.active > td, +.table > tfoot > tr.active > td, +.table > thead > tr.active > th, +.table > tbody > tr.active > th, +.table > tfoot > tr.active > th{background-color:#f5f5f5;} +.table-hover > tbody > tr > td.active:hover, +.table-hover > tbody > tr > th.active:hover, +.table-hover > tbody > tr.active:hover > td, +.table-hover > tbody > tr:hover > .active, +.table-hover > tbody > tr.active:hover > th{background-color:#e8e8e8;} +.table > thead > tr > td.success, +.table > tbody > tr > td.success, +.table > tfoot > tr > td.success, +.table > thead > tr > th.success, +.table > tbody > tr > th.success, +.table > tfoot > tr > th.success, +.table > thead > tr.success > td, +.table > tbody > tr.success > td, +.table > tfoot > tr.success > td, +.table > thead > tr.success > th, +.table > tbody > tr.success > th, +.table > tfoot > tr.success > th{background-color:#dff0d8;} +.table-hover > tbody > tr > td.success:hover, +.table-hover > tbody > tr > th.success:hover, +.table-hover > tbody > tr.success:hover > td, +.table-hover > tbody > tr:hover > .success, +.table-hover > tbody > tr.success:hover > th{background-color:#d0e9c6;} +.table > thead > tr > td.info, +.table > tbody > tr > td.info, +.table > tfoot > tr > td.info, +.table > thead > tr > th.info, +.table > tbody > tr > th.info, +.table > tfoot > tr > th.info, +.table > thead > tr.info > td, +.table > tbody > tr.info > td, +.table > tfoot > tr.info > td, +.table > thead > tr.info > th, +.table > tbody > tr.info > th, +.table > tfoot > tr.info > th{background-color:#d9edf7;} +.table-hover > tbody > tr > td.info:hover, +.table-hover > tbody > tr > th.info:hover, +.table-hover > tbody > tr.info:hover > td, +.table-hover > tbody > tr:hover > .info, +.table-hover > tbody > tr.info:hover > th{background-color:#c4e3f3;} +.table > thead > tr > td.warning, +.table > tbody > tr > td.warning, +.table > tfoot > tr > td.warning, +.table > thead > tr > th.warning, +.table > tbody > tr > th.warning, +.table > tfoot > tr > th.warning, +.table > thead > tr.warning > td, +.table > tbody > tr.warning > td, +.table > tfoot > tr.warning > td, +.table > thead > tr.warning > th, +.table > tbody > tr.warning > th, +.table > tfoot > tr.warning > th{background-color:#fcf8e3;} +.table-hover > tbody > tr > td.warning:hover, +.table-hover > tbody > tr > th.warning:hover, +.table-hover > tbody > tr.warning:hover > td, +.table-hover > tbody > tr:hover > .warning, +.table-hover > tbody > tr.warning:hover > th{background-color:#faf2cc;} +.table > thead > tr > td.danger, +.table > tbody > tr > td.danger, +.table > tfoot > tr > td.danger, +.table > thead > tr > th.danger, +.table > tbody > tr > th.danger, +.table > tfoot > tr > th.danger, +.table > thead > tr.danger > td, +.table > tbody > tr.danger > td, +.table > tfoot > tr.danger > td, +.table > thead > tr.danger > th, +.table > tbody > tr.danger > th, +.table > tfoot > tr.danger > th{background-color:#f2dede;} +.table-hover > tbody > tr > td.danger:hover, +.table-hover > tbody > tr > th.danger:hover, +.table-hover > tbody > tr.danger:hover > td, +.table-hover > tbody > tr:hover > .danger, +.table-hover > tbody > tr.danger:hover > th{background-color:#ebcccc;} +.table-responsive{overflow-x:auto;min-height:0.01%;} +@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 #dddddd;} +.table-responsive > .table{margin-bottom:0;} +.table-responsive > .table > thead > tr > th, +.table-responsive > .table > tbody > tr > th, +.table-responsive > .table > tfoot > tr > th, +.table-responsive > .table > thead > tr > td, +.table-responsive > .table > tbody > tr > td, +.table-responsive > .table > tfoot > tr > td{white-space:nowrap;} +.table-responsive > .table-bordered{border:0;} +.table-responsive > .table-bordered > thead > tr > th:first-child, +.table-responsive > .table-bordered > tbody > tr > th:first-child, +.table-responsive > .table-bordered > tfoot > tr > th:first-child, +.table-responsive > .table-bordered > thead > tr > td:first-child, +.table-responsive > .table-bordered > tbody > tr > td:first-child, +.table-responsive > .table-bordered > tfoot > tr > td:first-child{border-left:0;} +.table-responsive > .table-bordered > thead > tr > th:last-child, +.table-responsive > .table-bordered > tbody > tr > th:last-child, +.table-responsive > .table-bordered > tfoot > tr > th:last-child, +.table-responsive > .table-bordered > thead > tr > td:last-child, +.table-responsive > .table-bordered > tbody > tr > td:last-child, +.table-responsive > .table-bordered > tfoot > tr > td:last-child{border-right:0;} +.table-responsive > .table-bordered > tbody > tr:last-child > th, +.table-responsive > .table-bordered > tfoot > tr:last-child > th, +.table-responsive > .table-bordered > tbody > tr:last-child > td, +.table-responsive > .table-bordered > tfoot > tr:last-child > td{border-bottom:0;} +} +fieldset{padding:0;margin:0;border:0;min-width:0;} +legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333333;border:0;border-bottom:1px solid #e5e5e5;} +label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold;} +input[type="search"]{box-sizing:border-box;} +input[type="radio"], +input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal;} +input[type="file"]{display:block;} +input[type="range"]{display:block;width:100%;} +select[multiple], +select[size]{height:auto;} +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;} +output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555555;} +.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555555;background-color:#ffffff;background-image:none;border:1px solid #cccccc;border-radius:4px;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s;} +.form-control:focus{border-color:#66afe9;outline:0;box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, 0.6);} +.form-control::-moz-placeholder{color:#999999;opacity:1;} +.form-control:-ms-input-placeholder{color:#999999;} +.form-control::-webkit-input-placeholder{color:#999999;} +.form-control[disabled], +.form-control[readonly], +fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eeeeee;opacity:1;} +textarea.form-control{height:auto;} +input[type="search"]{-webkit-appearance:none;} +@media screen and (-webkit-min-device-pixel-ratio:0){input[type="date"], +input[type="time"], +input[type="datetime-local"], +input[type="month"]{line-height:34px;} +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[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;} +.radio, +.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px;} +.radio label, +.checkbox label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer;} +.radio input[type="radio"], +.radio-inline input[type="radio"], +.checkbox input[type="checkbox"], +.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9;} +.radio + .radio, +.checkbox + .checkbox{margin-top:-5px;} +.radio-inline, +.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer;} +.radio-inline + .radio-inline, +.checkbox-inline + .checkbox-inline{margin-top:0;margin-left:10px;} +input[type="radio"][disabled], +input[type="checkbox"][disabled], +input[type="radio"].disabled, +input[type="checkbox"].disabled, +fieldset[disabled] input[type="radio"], +fieldset[disabled] input[type="checkbox"]{cursor:not-allowed;} +.radio-inline.disabled, +.checkbox-inline.disabled, +fieldset[disabled] .radio-inline, +fieldset[disabled] .checkbox-inline{cursor:not-allowed;} +.radio.disabled label, +.checkbox.disabled label, +fieldset[disabled] .radio label, +fieldset[disabled] .checkbox label{cursor:not-allowed;} +.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0;} +.form-control-static.input-lg, +.form-control-static.input-sm{padding-left:0;padding-right:0;} +.input-sm, +.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px;} +select.input-sm, +select.form-group-sm .form-control{height:30px;line-height:30px;} +textarea.input-sm, +textarea.form-group-sm .form-control, +select[multiple].input-sm, +select[multiple].form-group-sm .form-control{height:auto;} +.input-lg, +.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px;} +select.input-lg, +select.form-group-lg .form-control{height:46px;line-height:46px;} +textarea.input-lg, +textarea.form-group-lg .form-control, +select[multiple].input-lg, +select[multiple].form-group-lg .form-control{height:auto;} +.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;} +.input-lg + .form-control-feedback{width:46px;height:46px;line-height:46px;} +.input-sm + .form-control-feedback{width:30px;height:30px;line-height:30px;} +.has-success .help-block, +.has-success .control-label, +.has-success .radio, +.has-success .checkbox, +.has-success .radio-inline, +.has-success .checkbox-inline, +.has-success.radio label, +.has-success.checkbox label, +.has-success.radio-inline label, +.has-success.checkbox-inline label{color:#3c763d;} +.has-success .form-control{border-color:#3c763d;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);} +.has-success .form-control:focus{border-color:#2b542c;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;} +.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8;} +.has-success .form-control-feedback{color:#3c763d;} +.has-warning .help-block, +.has-warning .control-label, +.has-warning .radio, +.has-warning .checkbox, +.has-warning .radio-inline, +.has-warning .checkbox-inline, +.has-warning.radio label, +.has-warning.checkbox label, +.has-warning.radio-inline label, +.has-warning.checkbox-inline label{color:#8a6d3b;} +.has-warning .form-control{border-color:#8a6d3b;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);} +.has-warning .form-control:focus{border-color:#66512c;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;} +.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3;} +.has-warning .form-control-feedback{color:#8a6d3b;} +.has-error .help-block, +.has-error .control-label, +.has-error .radio, +.has-error .checkbox, +.has-error .radio-inline, +.has-error .checkbox-inline, +.has-error.radio label, +.has-error.checkbox label, +.has-error.radio-inline label, +.has-error.checkbox-inline label{color:#a94442;} +.has-error .form-control{border-color:#a94442;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);} +.has-error .form-control:focus{border-color:#843534;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;} +.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede;} +.has-error .form-control-feedback{color:#a94442;} +.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 .input-group-addon, +.form-inline .input-group .input-group-btn, +.form-inline .input-group .form-control{width:auto;} +.form-inline .input-group > .form-control{width:100%;} +.form-inline .control-label{margin-bottom:0;vertical-align:middle;} +.form-inline .radio, +.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle;} +.form-inline .radio label, +.form-inline .checkbox label{padding-left:0;} +.form-inline .radio input[type="radio"], +.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0;} +.form-inline .has-feedback .form-control-feedback{top:0;} +} +.form-horizontal .radio, +.form-horizontal .checkbox, +.form-horizontal .radio-inline, +.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px;} +.form-horizontal .radio, +.form-horizontal .checkbox{min-height:27px;} +.form-horizontal .form-group{margin-left:-15px;margin-right:-15px;} +@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:7px;} +} +.form-horizontal .has-feedback .form-control-feedback{right:15px;} +@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14.3px;} +} +@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;} +} +.btn{display:inline-block;margin-bottom:0;font-weight:300;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;} +.btn:focus, +.btn:active:focus, +.btn.active:focus, +.btn.focus, +.btn:active.focus, +.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;} +.btn:hover, +.btn:focus, +.btn.focus{color:#333333;text-decoration:none;} +.btn:active, +.btn.active{outline:0;background-image:none;box-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);} +.btn.disabled, +.btn[disabled], +fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:0.65;filter:alpha(opacity=65);box-shadow:none;} +.btn-default{color:#333333;background-color:#ffffff;border-color:#cccccc;} +.btn-default:hover, +.btn-default:focus, +.btn-default.focus, +.btn-default:active, +.btn-default.active, +.open > .dropdown-toggle.btn-default{color:#333333;background-color:#e6e6e6;border-color:#adadad;} +.btn-default:active, +.btn-default.active, +.open > .dropdown-toggle.btn-default{background-image:none;} +.btn-default.disabled, +.btn-default[disabled], +fieldset[disabled] .btn-default, +.btn-default.disabled:hover, +.btn-default[disabled]:hover, +fieldset[disabled] .btn-default:hover, +.btn-default.disabled:focus, +.btn-default[disabled]:focus, +fieldset[disabled] .btn-default:focus, +.btn-default.disabled.focus, +.btn-default[disabled].focus, +fieldset[disabled] .btn-default.focus, +.btn-default.disabled:active, +.btn-default[disabled]:active, +fieldset[disabled] .btn-default:active, +.btn-default.disabled.active, +.btn-default[disabled].active, +fieldset[disabled] .btn-default.active{background-color:#ffffff;border-color:#cccccc;} +.btn-default .badge{color:#ffffff;background-color:#333333;} +.btn-primary{color:#ffffff;background-color:#337ab7;border-color:#2e6da4;} +.btn-primary:hover, +.btn-primary:focus, +.btn-primary.focus, +.btn-primary:active, +.btn-primary.active, +.open > .dropdown-toggle.btn-primary{color:#ffffff;background-color:#286090;border-color:#204d74;} +.btn-primary:active, +.btn-primary.active, +.open > .dropdown-toggle.btn-primary{background-image:none;} +.btn-primary.disabled, +.btn-primary[disabled], +fieldset[disabled] .btn-primary, +.btn-primary.disabled:hover, +.btn-primary[disabled]:hover, +fieldset[disabled] .btn-primary:hover, +.btn-primary.disabled:focus, +.btn-primary[disabled]:focus, +fieldset[disabled] .btn-primary:focus, +.btn-primary.disabled.focus, +.btn-primary[disabled].focus, +fieldset[disabled] .btn-primary.focus, +.btn-primary.disabled:active, +.btn-primary[disabled]:active, +fieldset[disabled] .btn-primary:active, +.btn-primary.disabled.active, +.btn-primary[disabled].active, +fieldset[disabled] .btn-primary.active{background-color:#337ab7;border-color:#2e6da4;} +.btn-primary .badge{color:#337ab7;background-color:#ffffff;} +.btn-success{color:#ffffff;background-color:#5cb85c;border-color:#4cae4c;} +.btn-success:hover, +.btn-success:focus, +.btn-success.focus, +.btn-success:active, +.btn-success.active, +.open > .dropdown-toggle.btn-success{color:#ffffff;background-color:#449d44;border-color:#398439;} +.btn-success:active, +.btn-success.active, +.open > .dropdown-toggle.btn-success{background-image:none;} +.btn-success.disabled, +.btn-success[disabled], +fieldset[disabled] .btn-success, +.btn-success.disabled:hover, +.btn-success[disabled]:hover, +fieldset[disabled] .btn-success:hover, +.btn-success.disabled:focus, +.btn-success[disabled]:focus, +fieldset[disabled] .btn-success:focus, +.btn-success.disabled.focus, +.btn-success[disabled].focus, +fieldset[disabled] .btn-success.focus, +.btn-success.disabled:active, +.btn-success[disabled]:active, +fieldset[disabled] .btn-success:active, +.btn-success.disabled.active, +.btn-success[disabled].active, +fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c;} +.btn-success .badge{color:#5cb85c;background-color:#ffffff;} +.btn-info{color:#ffffff;background-color:#5bc0de;border-color:#46b8da;} +.btn-info:hover, +.btn-info:focus, +.btn-info.focus, +.btn-info:active, +.btn-info.active, +.open > .dropdown-toggle.btn-info{color:#ffffff;background-color:#31b0d5;border-color:#269abc;} +.btn-info:active, +.btn-info.active, +.open > .dropdown-toggle.btn-info{background-image:none;} +.btn-info.disabled, +.btn-info[disabled], +fieldset[disabled] .btn-info, +.btn-info.disabled:hover, +.btn-info[disabled]:hover, +fieldset[disabled] .btn-info:hover, +.btn-info.disabled:focus, +.btn-info[disabled]:focus, +fieldset[disabled] .btn-info:focus, +.btn-info.disabled.focus, +.btn-info[disabled].focus, +fieldset[disabled] .btn-info.focus, +.btn-info.disabled:active, +.btn-info[disabled]:active, +fieldset[disabled] .btn-info:active, +.btn-info.disabled.active, +.btn-info[disabled].active, +fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da;} +.btn-info .badge{color:#5bc0de;background-color:#ffffff;} +.btn-warning{color:#ffffff;background-color:#f0ad4e;border-color:#eea236;} +.btn-warning:hover, +.btn-warning:focus, +.btn-warning.focus, +.btn-warning:active, +.btn-warning.active, +.open > .dropdown-toggle.btn-warning{color:#ffffff;background-color:#ec971f;border-color:#d58512;} +.btn-warning:active, +.btn-warning.active, +.open > .dropdown-toggle.btn-warning{background-image:none;} +.btn-warning.disabled, +.btn-warning[disabled], +fieldset[disabled] .btn-warning, +.btn-warning.disabled:hover, +.btn-warning[disabled]:hover, +fieldset[disabled] .btn-warning:hover, +.btn-warning.disabled:focus, +.btn-warning[disabled]:focus, +fieldset[disabled] .btn-warning:focus, +.btn-warning.disabled.focus, +.btn-warning[disabled].focus, +fieldset[disabled] .btn-warning.focus, +.btn-warning.disabled:active, +.btn-warning[disabled]:active, +fieldset[disabled] .btn-warning:active, +.btn-warning.disabled.active, +.btn-warning[disabled].active, +fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236;} +.btn-warning .badge{color:#f0ad4e;background-color:#ffffff;} +.btn-danger{color:#ffffff;background-color:#d9534f;border-color:#d43f3a;} +.btn-danger:hover, +.btn-danger:focus, +.btn-danger.focus, +.btn-danger:active, +.btn-danger.active, +.open > .dropdown-toggle.btn-danger{color:#ffffff;background-color:#c9302c;border-color:#ac2925;} +.btn-danger:active, +.btn-danger.active, +.open > .dropdown-toggle.btn-danger{background-image:none;} +.btn-danger.disabled, +.btn-danger[disabled], +fieldset[disabled] .btn-danger, +.btn-danger.disabled:hover, +.btn-danger[disabled]:hover, +fieldset[disabled] .btn-danger:hover, +.btn-danger.disabled:focus, +.btn-danger[disabled]:focus, +fieldset[disabled] .btn-danger:focus, +.btn-danger.disabled.focus, +.btn-danger[disabled].focus, +fieldset[disabled] .btn-danger.focus, +.btn-danger.disabled:active, +.btn-danger[disabled]:active, +fieldset[disabled] .btn-danger:active, +.btn-danger.disabled.active, +.btn-danger[disabled].active, +fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a;} +.btn-danger .badge{color:#d9534f;background-color:#ffffff;} +.btn-link{color:#337ab7;font-weight:normal;border-radius:0;} +.btn-link, +.btn-link:active, +.btn-link.active, +.btn-link[disabled], +fieldset[disabled] .btn-link{background-color:transparent;box-shadow:none;} +.btn-link, +.btn-link:hover, +.btn-link:focus, +.btn-link:active{border-color:transparent;} +.btn-link:hover, +.btn-link:focus{color:#23527c;text-decoration:underline;background-color:transparent;} +.btn-link[disabled]:hover, +fieldset[disabled] .btn-link:hover, +.btn-link[disabled]:focus, +fieldset[disabled] .btn-link:focus{color:#777777;text-decoration:none;} +.btn-lg, +.btn-group-lg > .btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px;} +.btn-sm, +.btn-group-sm > .btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px;} +.btn-xs, +.btn-group-xs > .btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px;} +.btn-block{display:block;width:100%;} +.btn-block + .btn-block{margin-top:5px;} +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block{width:100%;} +.fade{opacity:0;transition:opacity 0.15s linear;} +.fade.in{opacity:1;} +.collapse{display:none;visibility:hidden;} +.collapse.in{display:block;visibility:visible;} +tr.collapse.in{display:table-row;} +tbody.collapse.in{display:table-row-group;} +.collapsing{position:relative;height:0;overflow:hidden;transition-property:height, visibility;transition-duration:0.35s;transition-timing-function:ease;} +.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent;} +.dropdown{position:relative;} +.dropdown-toggle:focus{outline:0;} +.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#ffffff;border:1px solid #cccccc;border:1px solid rgba(0, 0, 0, 0.15);border-radius:4px;box-shadow:0 6px 12px rgba(0, 0, 0, 0.175);background-clip:padding-box;} +.dropdown-menu.pull-right{right:0;left:auto;} +.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5;} +.dropdown-menu > li > a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#333333;white-space:nowrap;} +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus{text-decoration:none;color:#262626;background-color:#f5f5f5;} +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus{color:#ffffff;text-decoration:none;outline:0;background-color:#337ab7;} +.dropdown-menu > .disabled > a, +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus{color:#777777;} +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed;} +.open > .dropdown-menu{display:block;} +.open > a{outline:0;} +.dropdown-menu-right{left:auto;right:0;} +.dropdown-menu-left{left:0;right:auto;} +.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777777;white-space:nowrap;} +.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990;} +.pull-right > .dropdown-menu{right:0;left:auto;} +.dropup .caret, +.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:"";} +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px;} +@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0;} +.navbar-right .dropdown-menu-left{left:0;right:auto;} +} +.btn-group, +.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle;} +.btn-group > .btn, +.btn-group-vertical > .btn{position:relative;float:left;} +.btn-group > .btn:hover, +.btn-group-vertical > .btn:hover, +.btn-group > .btn:focus, +.btn-group-vertical > .btn:focus, +.btn-group > .btn:active, +.btn-group-vertical > .btn:active, +.btn-group > .btn.active, +.btn-group-vertical > .btn.active{z-index:2;} +.btn-group .btn + .btn, +.btn-group .btn + .btn-group, +.btn-group .btn-group + .btn, +.btn-group .btn-group + .btn-group{margin-left:-1px;} +.btn-toolbar{margin-left:-5px;} +.btn-toolbar .btn-group, +.btn-toolbar .input-group{float:left;} +.btn-toolbar > .btn, +.btn-toolbar > .btn-group, +.btn-toolbar > .input-group{margin-left:5px;} +.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0;} +.btn-group > .btn:first-child{margin-left:0;} +.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0;} +.btn-group > .btn:last-child:not(:first-child), +.btn-group > .dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0;} +.btn-group > .btn-group{float:left;} +.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn{border-radius:0;} +.btn-group > .btn-group:first-child > .btn:last-child, +.btn-group > .btn-group:first-child > .dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0;} +.btn-group > .btn-group:last-child > .btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0;} +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle{outline:0;} +.btn-group > .btn + .dropdown-toggle{padding-left:8px;padding-right:8px;} +.btn-group > .btn-lg + .dropdown-toggle{padding-left:12px;padding-right:12px;} +.btn-group.open .dropdown-toggle{box-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);} +.btn-group.open .dropdown-toggle.btn-link{box-shadow:none;} +.btn .caret{margin-left:0;} +.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0;} +.dropup .btn-lg .caret{border-width:0 5px 5px;} +.btn-group-vertical > .btn, +.btn-group-vertical > .btn-group, +.btn-group-vertical > .btn-group > .btn{display:block;float:none;width:100%;max-width:100%;} +.btn-group-vertical > .btn-group > .btn{float:none;} +.btn-group-vertical > .btn + .btn, +.btn-group-vertical > .btn + .btn-group, +.btn-group-vertical > .btn-group + .btn, +.btn-group-vertical > .btn-group + .btn-group{margin-top:-1px;margin-left:0;} +.btn-group-vertical > .btn:not(:first-child):not(:last-child){border-radius:0;} +.btn-group-vertical > .btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0;} +.btn-group-vertical > .btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0;} +.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn{border-radius:0;} +.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child, +.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0;} +.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child{border-top-right-radius:0;border-top-left-radius:0;} +.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate;} +.btn-group-justified > .btn, +.btn-group-justified > .btn-group{float:none;display:table-cell;width:1%;} +.btn-group-justified > .btn-group .btn{width:100%;} +.btn-group-justified > .btn-group .dropdown-menu{left:auto;} +[data-toggle="buttons"] > .btn input[type="radio"], +[data-toggle="buttons"] > .btn-group > .btn input[type="radio"], +[data-toggle="buttons"] > .btn input[type="checkbox"], +[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"]{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-left:0;padding-right:0;} +.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0;} +.input-group-lg > .form-control, +.input-group-lg > .input-group-addon, +.input-group-lg > .input-group-btn > .btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px;} +select.input-group-lg > .form-control, +select.input-group-lg > .input-group-addon, +select.input-group-lg > .input-group-btn > .btn{height:46px;line-height:46px;} +textarea.input-group-lg > .form-control, +textarea.input-group-lg > .input-group-addon, +textarea.input-group-lg > .input-group-btn > .btn, +select[multiple].input-group-lg > .form-control, +select[multiple].input-group-lg > .input-group-addon, +select[multiple].input-group-lg > .input-group-btn > .btn{height:auto;} +.input-group-sm > .form-control, +.input-group-sm > .input-group-addon, +.input-group-sm > .input-group-btn > .btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px;} +select.input-group-sm > .form-control, +select.input-group-sm > .input-group-addon, +select.input-group-sm > .input-group-btn > .btn{height:30px;line-height:30px;} +textarea.input-group-sm > .form-control, +textarea.input-group-sm > .input-group-addon, +textarea.input-group-sm > .input-group-btn > .btn, +select[multiple].input-group-sm > .form-control, +select[multiple].input-group-sm > .input-group-addon, +select[multiple].input-group-sm > .input-group-btn > .btn{height:auto;} +.input-group-addon, +.input-group-btn, +.input-group .form-control{display:table-cell;} +.input-group-addon:not(:first-child):not(:last-child), +.input-group-btn:not(:first-child):not(:last-child), +.input-group .form-control:not(:first-child):not(:last-child){border-radius:0;} +.input-group-addon, +.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle;} +.input-group-addon{padding:6px 12px;font-size:14px;font-weight:normal;line-height:1;color:#555555;text-align:center;background-color:#eeeeee;border:1px solid #cccccc;border-radius:4px;} +.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px;} +.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px;} +.input-group-addon input[type="radio"], +.input-group-addon input[type="checkbox"]{margin-top:0;} +.input-group .form-control:first-child, +.input-group-addon:first-child, +.input-group-btn:first-child > .btn, +.input-group-btn:first-child > .btn-group > .btn, +.input-group-btn:first-child > .dropdown-toggle, +.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), +.input-group-btn:last-child > .btn-group:not(:last-child) > .btn{border-bottom-right-radius:0;border-top-right-radius:0;} +.input-group-addon:first-child{border-right:0;} +.input-group .form-control:last-child, +.input-group-addon:last-child, +.input-group-btn:last-child > .btn, +.input-group-btn:last-child > .btn-group > .btn, +.input-group-btn:last-child > .dropdown-toggle, +.input-group-btn:first-child > .btn:not(:first-child), +.input-group-btn:first-child > .btn-group:not(:first-child) > .btn{border-bottom-left-radius:0;border-top-left-radius:0;} +.input-group-addon:last-child{border-left:0;} +.input-group-btn{position:relative;font-size:0;white-space:nowrap;} +.input-group-btn > .btn{position:relative;} +.input-group-btn > .btn + .btn{margin-left:-1px;} +.input-group-btn > .btn:hover, +.input-group-btn > .btn:focus, +.input-group-btn > .btn:active{z-index:2;} +.input-group-btn:first-child > .btn, +.input-group-btn:first-child > .btn-group{margin-right:-1px;} +.input-group-btn:last-child > .btn, +.input-group-btn:last-child > .btn-group{margin-left:-1px;} +.nav{margin-bottom:0;padding-left:0;list-style:none;} +.nav > li{position:relative;display:block;} +.nav > li > a{position:relative;display:block;padding:10px 15px;} +.nav > li > a:hover, +.nav > li > a:focus{text-decoration:none;background-color:#eeeeee;} +.nav > li.disabled > a{color:#777777;} +.nav > li.disabled > a:hover, +.nav > li.disabled > a:focus{color:#777777;text-decoration:none;background-color:transparent;cursor:not-allowed;} +.nav .open > a, +.nav .open > a:hover, +.nav .open > a:focus{background-color:#eeeeee;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 #dddddd;} +.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:#eeeeee #eeeeee #dddddd;} +.nav-tabs > li.active > a, +.nav-tabs > li.active > a:hover, +.nav-tabs > li.active > a:focus{color:#555555;background-color:#ffffff;border:1px solid #dddddd;border-bottom-color:transparent;cursor:default;} +.nav-tabs.nav-justified{width:100%;border-bottom:0;} +.nav-tabs.nav-justified > li{float:none;} +.nav-tabs.nav-justified > li > a{text-align:center;margin-bottom:5px;} +.nav-tabs.nav-justified > .dropdown .dropdown-menu{top:auto;left:auto;} +@media (min-width:768px){.nav-tabs.nav-justified > li{display:table-cell;width:1%;} +.nav-tabs.nav-justified > li > a{margin-bottom:0;} +} +.nav-tabs.nav-justified > li > a{margin-right:0;border-radius:4px;} +.nav-tabs.nav-justified > .active > a, +.nav-tabs.nav-justified > .active > a:hover, +.nav-tabs.nav-justified > .active > a:focus{border:1px solid #dddddd;} +@media (min-width:768px){.nav-tabs.nav-justified > li > a{border-bottom:1px solid #dddddd;border-radius:4px 4px 0 0;} +.nav-tabs.nav-justified > .active > a, +.nav-tabs.nav-justified > .active > a:hover, +.nav-tabs.nav-justified > .active > a:focus{border-bottom-color:#ffffff;} +} +.nav-pills > li{float:left;} +.nav-pills > li > a{border-radius:4px;} +.nav-pills > li + li{margin-left:2px;} +.nav-pills > li.active > a, +.nav-pills > li.active > a:hover, +.nav-pills > li.active > a:focus{color:#ffffff;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{text-align:center;margin-bottom:5px;} +.nav-justified > .dropdown .dropdown-menu{top:auto;left:auto;} +@media (min-width:768px){.nav-justified > li{display:table-cell;width:1%;} +.nav-justified > li > a{margin-bottom:0;} +} +.nav-tabs-justified{border-bottom:0;} +.nav-tabs-justified > li > a{margin-right:0;border-radius:4px;} +.nav-tabs-justified > .active > a, +.nav-tabs-justified > .active > a:hover, +.nav-tabs-justified > .active > a:focus{border:1px solid #dddddd;} +@media (min-width:768px){.nav-tabs-justified > li > a{border-bottom:1px solid #dddddd;border-radius:4px 4px 0 0;} +.nav-tabs-justified > .active > a, +.nav-tabs-justified > .active > a:hover, +.nav-tabs-justified > .active > a:focus{border-bottom-color:#ffffff;} +} +.tab-content > .tab-pane{display:none;visibility:hidden;} +.tab-content > .active{display:block;visibility:visible;} +.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0;} +.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent;} +@media (min-width:768px){.navbar{border-radius:4px;} +} +@media (min-width:768px){.navbar-header{float:left;} +} +.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1);-webkit-overflow-scrolling:touch;} +.navbar-collapse.in{overflow-y:auto;} +@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none;} +.navbar-collapse.collapse{display:block !important;visibility:visible !important;height:auto !important;padding-bottom:0;overflow:visible !important;} +.navbar-collapse.in{overflow-y:visible;} +.navbar-fixed-top .navbar-collapse, +.navbar-static-top .navbar-collapse, +.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0;} +} +.navbar-fixed-top .navbar-collapse, +.navbar-fixed-bottom .navbar-collapse{max-height:340px;} +@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse, +.navbar-fixed-bottom .navbar-collapse{max-height:200px;} +} +.container > .navbar-header, +.container-fluid > .navbar-header, +.container > .navbar-collapse, +.container-fluid > .navbar-collapse{margin-right:-15px;margin-left:-15px;} +@media (min-width:768px){.container > .navbar-header, +.container-fluid > .navbar-header, +.container > .navbar-collapse, +.container-fluid > .navbar-collapse{margin-right:0;margin-left:0;} +} +.navbar-static-top{z-index:1000;border-width:0 0 1px;} +@media (min-width:768px){.navbar-static-top{border-radius:0;} +} +.navbar-fixed-top, +.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;} +@media (min-width:768px){.navbar-fixed-top, +.navbar-fixed-bottom{border-radius:0;} +} +.navbar-fixed-top{top:0;border-width:0 0 1px;} +.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0;} +.navbar-brand{float:left;padding:15px 15px;font-size:18px;line-height:20px;height:50px;} +.navbar-brand:hover, +.navbar-brand:focus{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;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px;} +.navbar-toggle:focus{outline:0;} +.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px;} +.navbar-toggle .icon-bar + .icon-bar{margin-top:4px;} +@media (min-width:768px){.navbar-toggle{display:none;} +} +.navbar-nav{margin:7.5px -15px;} +.navbar-nav > li > a{padding-top:10px;padding-bottom:10px;line-height:20px;} +@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none;} +.navbar-nav .open .dropdown-menu > li > a, +.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px;} +.navbar-nav .open .dropdown-menu > li > a{line-height:20px;} +.navbar-nav .open .dropdown-menu > li > a:hover, +.navbar-nav .open .dropdown-menu > li > a:focus{background-image:none;} +} +@media (min-width:768px){.navbar-nav{float:left;margin:0;} +.navbar-nav > li{float:left;} +.navbar-nav > li > a{padding-top:15px;padding-bottom:15px;} +} +.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);margin-top:8px;margin-bottom:8px;} +@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle;} +.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle;} +.navbar-form .form-control-static{display:inline-block;} +.navbar-form .input-group{display:inline-table;vertical-align:middle;} +.navbar-form .input-group .input-group-addon, +.navbar-form .input-group .input-group-btn, +.navbar-form .input-group .form-control{width:auto;} +.navbar-form .input-group > .form-control{width:100%;} +.navbar-form .control-label{margin-bottom:0;vertical-align:middle;} +.navbar-form .radio, +.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle;} +.navbar-form .radio label, +.navbar-form .checkbox label{padding-left:0;} +.navbar-form .radio input[type="radio"], +.navbar-form .checkbox input[type="checkbox"]{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;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;box-shadow:none;} +} +.navbar-nav > li > .dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0;} +.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu{border-top-right-radius:4px;border-top-left-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-left:15px;margin-right: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:#777777;} +.navbar-default .navbar-brand:hover, +.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent;} +.navbar-default .navbar-text{color:#777777;} +.navbar-default .navbar-nav > li > a{color:#777777;} +.navbar-default .navbar-nav > li > a:hover, +.navbar-default .navbar-nav > li > a:focus{color:#333333;background-color:transparent;} +.navbar-default .navbar-nav > .active > a, +.navbar-default .navbar-nav > .active > a:hover, +.navbar-default .navbar-nav > .active > a:focus{color:#555555;background-color:#e7e7e7;} +.navbar-default .navbar-nav > .disabled > a, +.navbar-default .navbar-nav > .disabled > a:hover, +.navbar-default .navbar-nav > .disabled > a:focus{color:#cccccc;background-color:transparent;} +.navbar-default .navbar-toggle{border-color:#dddddd;} +.navbar-default .navbar-toggle:hover, +.navbar-default .navbar-toggle:focus{background-color:#dddddd;} +.navbar-default .navbar-toggle .icon-bar{background-color:#888888;} +.navbar-default .navbar-collapse, +.navbar-default .navbar-form{border-color:#e7e7e7;} +.navbar-default .navbar-nav > .open > a, +.navbar-default .navbar-nav > .open > a:hover, +.navbar-default .navbar-nav > .open > a:focus{background-color:#e7e7e7;color:#555555;} +@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu > li > a{color:#777777;} +.navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, +.navbar-default .navbar-nav .open .dropdown-menu > li > a:focus{color:#333333;background-color:transparent;} +.navbar-default .navbar-nav .open .dropdown-menu > .active > a, +.navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, +.navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus{color:#555555;background-color:#e7e7e7;} +.navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, +.navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, +.navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus{color:#cccccc;background-color:transparent;} +} +.navbar-default .navbar-link{color:#777777;} +.navbar-default .navbar-link:hover{color:#333333;} +.navbar-default .btn-link{color:#777777;} +.navbar-default .btn-link:hover, +.navbar-default .btn-link:focus{color:#333333;} +.navbar-default .btn-link[disabled]:hover, +fieldset[disabled] .navbar-default .btn-link:hover, +.navbar-default .btn-link[disabled]:focus, +fieldset[disabled] .navbar-default .btn-link:focus{color:#cccccc;} +.navbar-inverse{background-color:#222222;border-color:#080808;} +.navbar-inverse .navbar-brand{color:#9d9d9d;} +.navbar-inverse .navbar-brand:hover, +.navbar-inverse .navbar-brand:focus{color:#ffffff;background-color:transparent;} +.navbar-inverse .navbar-text{color:#9d9d9d;} +.navbar-inverse .navbar-nav > li > a{color:#9d9d9d;} +.navbar-inverse .navbar-nav > li > a:hover, +.navbar-inverse .navbar-nav > li > a:focus{color:#ffffff;background-color:transparent;} +.navbar-inverse .navbar-nav > .active > a, +.navbar-inverse .navbar-nav > .active > a:hover, +.navbar-inverse .navbar-nav > .active > a:focus{color:#ffffff;background-color:#080808;} +.navbar-inverse .navbar-nav > .disabled > a, +.navbar-inverse .navbar-nav > .disabled > a:hover, +.navbar-inverse .navbar-nav > .disabled > a:focus{color:#444444;background-color:transparent;} +.navbar-inverse .navbar-toggle{border-color:#333333;} +.navbar-inverse .navbar-toggle:hover, +.navbar-inverse .navbar-toggle:focus{background-color:#333333;} +.navbar-inverse .navbar-toggle .icon-bar{background-color:#ffffff;} +.navbar-inverse .navbar-collapse, +.navbar-inverse .navbar-form{border-color:#101010;} +.navbar-inverse .navbar-nav > .open > a, +.navbar-inverse .navbar-nav > .open > a:hover, +.navbar-inverse .navbar-nav > .open > a:focus{background-color:#080808;color:#ffffff;} +@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:hover, +.navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus{color:#ffffff;background-color:transparent;} +.navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, +.navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, +.navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus{color:#ffffff;background-color:#080808;} +.navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, +.navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, +.navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus{color:#444444;background-color:transparent;} +} +.navbar-inverse .navbar-link{color:#9d9d9d;} +.navbar-inverse .navbar-link:hover{color:#ffffff;} +.navbar-inverse .btn-link{color:#9d9d9d;} +.navbar-inverse .btn-link:hover, +.navbar-inverse .btn-link:focus{color:#ffffff;} +.navbar-inverse .btn-link[disabled]:hover, +fieldset[disabled] .navbar-inverse .btn-link:hover, +.navbar-inverse .btn-link[disabled]:focus, +fieldset[disabled] .navbar-inverse .btn-link:focus{color:#444444;} +.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px;} +.breadcrumb > li{display:inline-block;} +.breadcrumb > li + li:before{content:"/\00a0";padding:0 5px;color:#cccccc;} +.breadcrumb > .active{color:#777777;} +.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px;} +.pagination > li{display:inline;} +.pagination > li > a, +.pagination > li > span{position:relative;float:left;padding:6px 12px;line-height:1.42857143;text-decoration:none;color:#337ab7;background-color:#ffffff;border:1px solid #dddddd;margin-left:-1px;} +.pagination > li:first-child > a, +.pagination > li:first-child > span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px;} +.pagination > li:last-child > a, +.pagination > li:last-child > span{border-bottom-right-radius:4px;border-top-right-radius:4px;} +.pagination > li > a:hover, +.pagination > li > span:hover, +.pagination > li > a:focus, +.pagination > li > span:focus{color:#23527c;background-color:#eeeeee;border-color:#dddddd;} +.pagination > .active > a, +.pagination > .active > span, +.pagination > .active > a:hover, +.pagination > .active > span:hover, +.pagination > .active > a:focus, +.pagination > .active > span:focus{z-index:2;color:#ffffff;background-color:#337ab7;border-color:#337ab7;cursor:default;} +.pagination > .disabled > span, +.pagination > .disabled > span:hover, +.pagination > .disabled > span:focus, +.pagination > .disabled > a, +.pagination > .disabled > a:hover, +.pagination > .disabled > a:focus{color:#777777;background-color:#ffffff;border-color:#dddddd;cursor:not-allowed;} +.pagination-lg > li > a, +.pagination-lg > li > span{padding:10px 16px;font-size:18px;} +.pagination-lg > li:first-child > a, +.pagination-lg > li:first-child > span{border-bottom-left-radius:6px;border-top-left-radius:6px;} +.pagination-lg > li:last-child > a, +.pagination-lg > li:last-child > span{border-bottom-right-radius:6px;border-top-right-radius:6px;} +.pagination-sm > li > a, +.pagination-sm > li > span{padding:5px 10px;font-size:12px;} +.pagination-sm > li:first-child > a, +.pagination-sm > li:first-child > span{border-bottom-left-radius:3px;border-top-left-radius:3px;} +.pagination-sm > li:last-child > a, +.pagination-sm > li:last-child > span{border-bottom-right-radius:3px;border-top-right-radius:3px;} +.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center;} +.pager li{display:inline;} +.pager li > a, +.pager li > span{display:inline-block;padding:5px 14px;background-color:#ffffff;border:1px solid #dddddd;border-radius:15px;} +.pager li > a:hover, +.pager li > a:focus{text-decoration:none;background-color:#eeeeee;} +.pager .next > a, +.pager .next > span{float:right;} +.pager .previous > a, +.pager .previous > span{float:left;} +.pager .disabled > a, +.pager .disabled > a:hover, +.pager .disabled > a:focus, +.pager .disabled > span{color:#777777;background-color:#ffffff;cursor:not-allowed;} +.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#ffffff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em;} +a.label:hover, +a.label:focus{color:#ffffff;text-decoration:none;cursor:pointer;} +.label:empty{display:none;} +.btn .label{position:relative;top:-1px;} +.label-default{background-color:#777777;} +.label-default[href]:hover, +.label-default[href]:focus{background-color:#5e5e5e;} +.label-primary{background-color:#337ab7;} +.label-primary[href]:hover, +.label-primary[href]:focus{background-color:#286090;} +.label-success{background-color:#5cb85c;} +.label-success[href]:hover, +.label-success[href]:focus{background-color:#449d44;} +.label-info{background-color:#5bc0de;} +.label-info[href]:hover, +.label-info[href]:focus{background-color:#31b0d5;} +.label-warning{background-color:#f0ad4e;} +.label-warning[href]:hover, +.label-warning[href]:focus{background-color:#ec971f;} +.label-danger{background-color:#d9534f;} +.label-danger[href]:hover, +.label-danger[href]:focus{background-color:#c9302c;} +.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;color:#ffffff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#777777;border-radius:10px;} +.badge:empty{display:none;} +.btn .badge{position:relative;top:-1px;} +.btn-xs .badge{top:0;padding:1px 5px;} +a.badge:hover, +a.badge:focus{color:#ffffff;text-decoration:none;cursor:pointer;} +.list-group-item.active > .badge, +.nav-pills > .active > a > .badge{color:#337ab7;background-color:#ffffff;} +.list-group-item > .badge{float:right;} +.list-group-item > .badge + .badge{margin-right:5px;} +.nav-pills > li > a > .badge{margin-left:3px;} +.jumbotron{padding:30px 15px;margin-bottom:30px;color:inherit;background-color:#eeeeee;} +.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{border-radius:6px;} +.jumbotron .container{max-width:100%;} +@media screen and (min-width:768px){.jumbotron{padding:48px 0;} +.container .jumbotron, +.container-fluid .jumbotron{padding-left:60px;padding-right:60px;} +.jumbotron h1, +.jumbotron .h1{font-size:63px;} +} +.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#ffffff;border:1px solid #dddddd;border-radius:4px;transition:border 0.2s ease-in-out;} +.thumbnail > img, +.thumbnail a > img{margin-left:auto;margin-right:auto;} +a.thumbnail:hover, +a.thumbnail:focus, +a.thumbnail.active{border-color:#337ab7;} +.thumbnail .caption{padding:9px;color:#333333;} +.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:bold;} +.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{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d;} +.alert-success hr{border-top-color:#c9e2b3;} +.alert-success .alert-link{color:#2b542c;} +.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f;} +.alert-info hr{border-top-color:#a6e1ec;} +.alert-info .alert-link{color:#245269;} +.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b;} +.alert-warning hr{border-top-color:#f7e1b5;} +.alert-warning .alert-link{color:#66512c;} +.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442;} +.alert-danger hr{border-top-color:#e4b9c0;} +.alert-danger .alert-link{color:#843534;} +@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0;} +to{background-position:0 0;} +} +@keyframes progress-bar-stripes{from{background-position:40px 0;} +to{background-position:0 0;} +} +.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);} +.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:20px;color:#ffffff;text-align:center;background-color:#337ab7;box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15);transition:width 0.6s ease;} +.progress-striped .progress-bar, +.progress-bar-striped{background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);background-size:40px 40px;} +.progress.active .progress-bar, +.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite;} +.progress-bar-success{background-color:#5cb85c;} +.progress-striped .progress-bar-success{background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);} +.progress-bar-info{background-color:#5bc0de;} +.progress-striped .progress-bar-info{background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);} +.progress-bar-warning{background-color:#f0ad4e;} +.progress-striped .progress-bar-warning{background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);} +.progress-bar-danger{background-color:#d9534f;} +.progress-striped .progress-bar-danger{background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);} +.media{margin-top:15px;} +.media:first-child{margin-top:0;} +.media-right, +.media > .pull-right{padding-left:10px;} +.media-left, +.media > .pull-left{padding-right:10px;} +.media-left, +.media-right, +.media-body{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{margin-bottom:20px;padding-left:0;} +.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#ffffff;border:1px solid #dddddd;} +.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px;} +.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px;} +a.list-group-item{color:#555555;} +a.list-group-item .list-group-item-heading{color:#333333;} +a.list-group-item:hover, +a.list-group-item:focus{text-decoration:none;color:#555555;background-color:#f5f5f5;} +.list-group-item.disabled, +.list-group-item.disabled:hover, +.list-group-item.disabled:focus{background-color:#eeeeee;color:#777777;cursor:not-allowed;} +.list-group-item.disabled .list-group-item-heading, +.list-group-item.disabled:hover .list-group-item-heading, +.list-group-item.disabled:focus .list-group-item-heading{color:inherit;} +.list-group-item.disabled .list-group-item-text, +.list-group-item.disabled:hover .list-group-item-text, +.list-group-item.disabled:focus .list-group-item-text{color:#777777;} +.list-group-item.active, +.list-group-item.active:hover, +.list-group-item.active:focus{z-index:2;color:#ffffff;background-color:#337ab7;border-color:#337ab7;} +.list-group-item.active .list-group-item-heading, +.list-group-item.active:hover .list-group-item-heading, +.list-group-item.active:focus .list-group-item-heading, +.list-group-item.active .list-group-item-heading > small, +.list-group-item.active:hover .list-group-item-heading > small, +.list-group-item.active:focus .list-group-item-heading > small, +.list-group-item.active .list-group-item-heading > .small, +.list-group-item.active:hover .list-group-item-heading > .small, +.list-group-item.active:focus .list-group-item-heading > .small{color:inherit;} +.list-group-item.active .list-group-item-text, +.list-group-item.active:hover .list-group-item-text, +.list-group-item.active:focus .list-group-item-text{color:#c7ddef;} +.list-group-item-success{color:#3c763d;background-color:#dff0d8;} +a.list-group-item-success{color:#3c763d;} +a.list-group-item-success .list-group-item-heading{color:inherit;} +a.list-group-item-success:hover, +a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6;} +a.list-group-item-success.active, +a.list-group-item-success.active:hover, +a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d;} +.list-group-item-info{color:#31708f;background-color:#d9edf7;} +a.list-group-item-info{color:#31708f;} +a.list-group-item-info .list-group-item-heading{color:inherit;} +a.list-group-item-info:hover, +a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3;} +a.list-group-item-info.active, +a.list-group-item-info.active:hover, +a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f;} +.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3;} +a.list-group-item-warning{color:#8a6d3b;} +a.list-group-item-warning .list-group-item-heading{color:inherit;} +a.list-group-item-warning:hover, +a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc;} +a.list-group-item-warning.active, +a.list-group-item-warning.active:hover, +a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b;} +.list-group-item-danger{color:#a94442;background-color:#f2dede;} +a.list-group-item-danger{color:#a94442;} +a.list-group-item-danger .list-group-item-heading{color:inherit;} +a.list-group-item-danger:hover, +a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc;} +a.list-group-item-danger.active, +a.list-group-item-danger.active:hover, +a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442;} +.list-group-item-heading{margin-top:0;margin-bottom:5px;} +.list-group-item-text{margin-bottom:0;line-height:1.3;} +.panel{margin-bottom:20px;background-color:#ffffff;border:1px solid transparent;border-radius:4px;box-shadow:0 1px 1px rgba(0, 0, 0, 0.05);} +.panel-body{padding:15px;} +.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px;} +.panel-heading > .dropdown .dropdown-toggle{color:inherit;} +.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit;} +.panel-title > a{color:inherit;} +.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #dddddd;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-right-radius:3px;border-top-left-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-heading + .list-group .list-group-item:first-child{border-top-width:0;} +.list-group + .panel-footer{border-top-width:0;} +.panel > .table, +.panel > .table-responsive > .table, +.panel > .panel-collapse > .table{margin-bottom:0;} +.panel > .table caption, +.panel > .table-responsive > .table caption, +.panel > .panel-collapse > .table caption{padding-left:15px;padding-right:15px;} +.panel > .table:first-child, +.panel > .table-responsive:first-child > .table:first-child{border-top-right-radius:3px;border-top-left-radius:3px;} +.panel > .table:first-child > thead:first-child > tr:first-child, +.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-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px;} +.panel > .table:first-child > thead:first-child > tr:first-child td:first-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child, +.panel > .table:first-child > thead:first-child > tr:first-child th:first-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child{border-top-left-radius:3px;} +.panel > .table:first-child > thead:first-child > tr:first-child td:last-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, +.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child, +.panel > .table:first-child > thead:first-child > tr:first-child th:last-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, +.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child{border-top-right-radius:3px;} +.panel > .table:last-child, +.panel > .table-responsive:last-child > .table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px;} +.panel > .table:last-child > tbody:last-child > tr:last-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px;} +.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child, +.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child{border-bottom-left-radius:3px;} +.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child, +.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child{border-bottom-right-radius:3px;} +.panel > .panel-body + .table, +.panel > .panel-body + .table-responsive, +.panel > .table + .panel-body, +.panel > .table-responsive + .panel-body{border-top:1px solid #dddddd;} +.panel > .table > tbody:first-child > tr:first-child th, +.panel > .table > tbody:first-child > tr:first-child td{border-top:0;} +.panel > .table-bordered, +.panel > .table-responsive > .table-bordered{border:0;} +.panel > .table-bordered > thead > tr > th:first-child, +.panel > .table-responsive > .table-bordered > thead > tr > th:first-child, +.panel > .table-bordered > tbody > tr > th:first-child, +.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, +.panel > .table-bordered > tfoot > tr > th:first-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, +.panel > .table-bordered > thead > tr > td:first-child, +.panel > .table-responsive > .table-bordered > thead > tr > td:first-child, +.panel > .table-bordered > tbody > tr > td:first-child, +.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, +.panel > .table-bordered > tfoot > tr > td:first-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child{border-left:0;} +.panel > .table-bordered > thead > tr > th:last-child, +.panel > .table-responsive > .table-bordered > thead > tr > th:last-child, +.panel > .table-bordered > tbody > tr > th:last-child, +.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, +.panel > .table-bordered > tfoot > tr > th:last-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, +.panel > .table-bordered > thead > tr > td:last-child, +.panel > .table-responsive > .table-bordered > thead > tr > td:last-child, +.panel > .table-bordered > tbody > tr > td:last-child, +.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, +.panel > .table-bordered > tfoot > tr > td:last-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child{border-right:0;} +.panel > .table-bordered > thead > tr:first-child > td, +.panel > .table-responsive > .table-bordered > thead > tr:first-child > td, +.panel > .table-bordered > tbody > tr:first-child > td, +.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td, +.panel > .table-bordered > thead > tr:first-child > th, +.panel > .table-responsive > .table-bordered > thead > tr:first-child > th, +.panel > .table-bordered > tbody > tr:first-child > th, +.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th{border-bottom:0;} +.panel > .table-bordered > tbody > tr:last-child > td, +.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, +.panel > .table-bordered > tfoot > tr:last-child > td, +.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td, +.panel > .table-bordered > tbody > tr:last-child > th, +.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, +.panel > .table-bordered > tfoot > tr:last-child > th, +.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th{border-bottom:0;} +.panel > .table-responsive{border:0;margin-bottom:0;} +.panel-group{margin-bottom:20px;} +.panel-group .panel{margin-bottom:0;border-radius:4px;} +.panel-group .panel + .panel{margin-top:5px;} +.panel-group .panel-heading{border-bottom:0;} +.panel-group .panel-heading + .panel-collapse > .panel-body, +.panel-group .panel-heading + .panel-collapse > .list-group{border-top:1px solid #dddddd;} +.panel-group .panel-footer{border-top:0;} +.panel-group .panel-footer + .panel-collapse .panel-body{border-bottom:1px solid #dddddd;} +.panel-default{border-color:#dddddd;} +.panel-default > .panel-heading{color:#333333;background-color:#f5f5f5;border-color:#dddddd;} +.panel-default > .panel-heading + .panel-collapse > .panel-body{border-top-color:#dddddd;} +.panel-default > .panel-heading .badge{color:#f5f5f5;background-color:#333333;} +.panel-default > .panel-footer + .panel-collapse > .panel-body{border-bottom-color:#dddddd;} +.panel-primary{border-color:#337ab7;} +.panel-primary > .panel-heading{color:#ffffff;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:#ffffff;} +.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 iframe, +.embed-responsive embed, +.embed-responsive object, +.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0;} +.embed-responsive.embed-responsive-16by9{padding-bottom:56.25%;} +.embed-responsive.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;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);} +.well blockquote{border-color:#ddd;border-color:rgba(0, 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:bold;line-height:1;color:#000000;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20);} +.close:hover, +.close:focus{color:#000000;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50);} +button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none;} +.modal-open{overflow:hidden;} +.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;-webkit-overflow-scrolling:touch;outline:0;} +.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);transform:translate(0, -25%);transition:-webkit-transform 0.3s ease-out;transition:transform 0.3s ease-out;} +.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-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:#ffffff;border:1px solid #999999;border:1px solid rgba(0, 0, 0, 0.2);border-radius:6px;box-shadow:0 3px 9px rgba(0, 0, 0, 0.5);background-clip:padding-box;outline:0;} +.modal-backdrop{position:absolute;top:0;right:0;left:0;background-color:#000000;} +.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0);} +.modal-backdrop.in{opacity:0.5;filter:alpha(opacity=50);} +.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px;} +.modal-header .close{margin-top:-2px;} +.modal-title{margin:0;line-height:1.42857143;} +.modal-body{position:relative;padding:15px;} +.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5;} +.modal-footer .btn + .btn{margin-left:5px;margin-bottom:0;} +.modal-footer .btn-group .btn + .btn{margin-left:-1px;} +.modal-footer .btn-block + .btn-block{margin-left:0;} +.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{box-shadow:0 5px 15px rgba(0, 0, 0, 0.5);} +.modal-sm{width:300px;} +} +@media (min-width:992px){.modal-lg{width:900px;} +} +.tooltip{position:absolute;z-index:1070;display:block;visibility:visible;font-family:"Roboto", Helvetica, Arial, sans-serif;font-size:12px;font-weight:normal;line-height:1.4;opacity:0;filter:alpha(opacity=0);} +.tooltip.in{opacity:0.9;filter:alpha(opacity=90);} +.tooltip.top{margin-top:-3px;padding:5px 0;} +.tooltip.right{margin-left:3px;padding:0 5px;} +.tooltip.bottom{margin-top:3px;padding:5px 0;} +.tooltip.left{margin-left:-3px;padding:0 5px;} +.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;text-decoration:none;background-color:#000000;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:#000000;} +.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000;} +.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000;} +.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000;} +.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000;} +.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000;} +.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000;} +.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000;} +.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Roboto", Helvetica, Arial, sans-serif;font-size:14px;font-weight:normal;line-height:1.42857143;text-align:left;background-color:#ffffff;background-clip:padding-box;border:1px solid #cccccc;border:1px solid rgba(0, 0, 0, 0.2);border-radius:6px;box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);white-space:normal;} +.popover.top{margin-top:-10px;} +.popover.right{margin-left:10px;} +.popover.bottom{margin-top:10px;} +.popover.left{margin-left:-10px;} +.popover-title{margin:0;padding:8px 14px;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0;} +.popover-content{padding:9px 14px;} +.popover > .arrow, +.popover > .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid;} +.popover > .arrow{border-width:11px;} +.popover > .arrow:after{border-width:10px;content:"";} +.popover.top > .arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999999;border-top-color:rgba(0, 0, 0, 0.25);bottom:-11px;} +.popover.top > .arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#ffffff;} +.popover.right > .arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999999;border-right-color:rgba(0, 0, 0, 0.25);} +.popover.right > .arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#ffffff;} +.popover.bottom > .arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999999;border-bottom-color:rgba(0, 0, 0, 0.25);top:-11px;} +.popover.bottom > .arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#ffffff;} +.popover.left > .arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999999;border-left-color:rgba(0, 0, 0, 0.25);} +.popover.left > .arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#ffffff;bottom:-10px;} +.carousel{position:relative;} +.carousel-inner{position:relative;overflow:hidden;width:100%;} +.carousel-inner > .item{display:none;position:relative;transition:0.6s ease-in-out left;} +.carousel-inner > .item > img, +.carousel-inner > .item > a > img{line-height:1;} +@media all and (transform-3d), (-webkit-transform-3d){.carousel-inner > .item{transition:-webkit-transform 0.6s ease-in-out;transition:transform 0.6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000;perspective:1000;} +.carousel-inner > .item.next, +.carousel-inner > .item.active.right{-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);left:0;} +.carousel-inner > .item.prev, +.carousel-inner > .item.active.left{-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);left:0;} +.carousel-inner > .item.next.left, +.carousel-inner > .item.prev.right, +.carousel-inner > .item.active{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);left: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;left:0;bottom:0;width:15%;opacity:0.5;filter:alpha(opacity=50);font-size:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0, 0, 0, 0.6);} +.carousel-control.left{background-image:linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);} +.carousel-control.right{left:auto;right:0;background-image:linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);} +.carousel-control:hover, +.carousel-control:focus{outline:0;color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90);} +.carousel-control .icon-prev, +.carousel-control .icon-next, +.carousel-control .glyphicon-chevron-left, +.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block;} +.carousel-control .icon-prev, +.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px;} +.carousel-control .icon-next, +.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px;} +.carousel-control .icon-prev, +.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;font-family:serif;} +.carousel-control .icon-prev:before{content:'\2039';} +.carousel-control .icon-next:before{content:'\203a';} +.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center;} +.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #ffffff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0, 0, 0, 0);} +.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#ffffff;} +.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0, 0, 0, 0.6);} +.carousel-caption .btn{text-shadow:none;} +@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left, +.carousel-control .glyphicon-chevron-right, +.carousel-control .icon-prev, +.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px;} +.carousel-control .glyphicon-chevron-left, +.carousel-control .icon-prev{margin-left:-15px;} +.carousel-control .glyphicon-chevron-right, +.carousel-control .icon-next{margin-right:-15px;} +.carousel-caption{left:20%;right:20%;padding-bottom:30px;} +.carousel-indicators{bottom:20px;} +} +.clearfix:before, +.clearfix:after, +.dl-horizontal dd:before, +.dl-horizontal dd:after, +.container:before, +.container:after, +.container-fluid:before, +.container-fluid:after, +.row:before, +.row:after, +.form-horizontal .form-group:before, +.form-horizontal .form-group:after, +.btn-toolbar:before, +.btn-toolbar:after, +.btn-group-vertical > .btn-group:before, +.btn-group-vertical > .btn-group:after, +.nav:before, +.nav:after, +.navbar:before, +.navbar:after, +.navbar-header:before, +.navbar-header:after, +.navbar-collapse:before, +.navbar-collapse:after, +.pager:before, +.pager:after, +.panel-body:before, +.panel-body:after, +.modal-footer:before, +.modal-footer:after{content:" ";display:table;} +.clearfix:after, +.dl-horizontal dd:after, +.container:after, +.container-fluid:after, +.row:after, +.form-horizontal .form-group:after, +.btn-toolbar:after, +.btn-group-vertical > .btn-group:after, +.nav:after, +.navbar:after, +.navbar-header:after, +.navbar-collapse:after, +.pager:after, +.panel-body:after, +.modal-footer:after{clear:both;} +.center-block{display:block;margin-left:auto;margin-right:auto;} +.pull-right{float:right !important;} +.pull-left{float:left !important;} +.hide{display:none !important;} +.show{display:block !important;} +.invisible{visibility:hidden;} +.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;} +.hidden{display:none !important;visibility:hidden !important;} +.affix{position:fixed;} +@-ms-viewport{width:device-width;} +.visible-xs, +.visible-sm, +.visible-md, +.visible-lg{display:none !important;} +.visible-xs-block, +.visible-xs-inline, +.visible-xs-inline-block, +.visible-sm-block, +.visible-sm-inline, +.visible-sm-inline-block, +.visible-md-block, +.visible-md-inline, +.visible-md-inline-block, +.visible-lg-block, +.visible-lg-inline, +.visible-lg-inline-block{display:none !important;} +@media (max-width:767px){.visible-xs{display:block !important;} +table.visible-xs{display:table;} +tr.visible-xs{display:table-row !important;} +th.visible-xs, +td.visible-xs{display:table-cell !important;} +} +@media (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;} +tr.visible-sm{display:table-row !important;} +th.visible-sm, +td.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;} +tr.visible-md{display:table-row !important;} +th.visible-md, +td.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;} +tr.visible-lg{display:table-row !important;} +th.visible-lg, +td.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;} +tr.visible-print{display:table-row !important;} +th.visible-print, +td.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;} +} +body, +label, +.checkbox label{font-weight:300;} \ No newline at end of file diff --git a/public/css/base.css b/public/css/base.css new file mode 100644 index 0000000..24d7e97 --- /dev/null +++ b/public/css/base.css @@ -0,0 +1,9885 @@ +@charset "utf-8"; + +/*! + * AdminPlus v3.0 + * + * Copyright MosaicPro + * http://www.mosaicpro.biz + * + * Designed and built exclusively for sale @Envato Marketplaces. + */ +/*! + * + * Project: GLYPHICONS HALFLINGS + * Author: Jan Kovarik - www.glyphicons.com + * Twitter: @jankovarik + * + */ +@font-face { + font-family: 'Glyphicons Regular'; + src: url('../fonts/glyphicons-regular.eot'); + src: url('../fonts/glyphicons-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-regular.woff') format('woff'), url('../fonts/glyphicons-regular.ttf') format('truetype'), url('../fonts/glyphicons-regular.svg#glyphiconsregular') format('svg'); + font-weight: normal; + font-style: normal; +} +.glyphicons { + display: inline-block; + position: relative; + padding-left: 48px; + color: #1d1d1b; + text-decoration: none; + *display: inline; + *zoom: 1; + vertical-align: middle; +} +.glyphicons:before { + position: absolute; + left: 0; + top: 0; + display: inline-block; + margin: 0 5px 0 0; + font: 24px/1em 'Glyphicons Regular'; + font-style: normal; + font-weight: normal; + color: #1d1d1b; + *display: inline; + *zoom: 1; + vertical-align: middle; + text-transform: none; + -webkit-font-smoothing: antialiased; +} +.glyphicons.white:before { + color: #fff; +} +.glyphicons.glass:before { + content: "\E001"; +} +.glyphicons.leaf:before { + content: "\E002"; +} +.glyphicons.dog:before { + content: "\1F415"; +} +.glyphicons.user:before { + content: "\E004"; +} +.glyphicons.girl:before { + content: "\1F467"; +} +.glyphicons.car:before { + content: "\E006"; +} +.glyphicons.user_add:before { + content: "\E007"; +} +.glyphicons.user_remove:before { + content: "\E008"; +} +.glyphicons.film:before { + content: "\E009"; +} +.glyphicons.magic:before { + content: "\E010"; +} +.glyphicons.envelope:before { + content: "\2709"; +} +.glyphicons.camera:before { + content: "\1F4F7"; +} +.glyphicons.heart:before { + content: "\E013"; +} +.glyphicons.beach_umbrella:before { + content: "\E014"; +} +.glyphicons.train:before { + content: "\1F686"; +} +.glyphicons.print:before { + content: "\E016"; +} +.glyphicons.bin:before { + content: "\E017"; +} +.glyphicons.music:before { + content: "\E018"; +} +.glyphicons.note:before { + content: "\E019"; +} +.glyphicons.heart_empty:before { + content: "\E020"; +} +.glyphicons.home:before { + content: "\E021"; +} +.glyphicons.snowflake:before { + content: "\2744"; +} +.glyphicons.fire:before { + content: "\1F525"; +} +.glyphicons.magnet:before { + content: "\E024"; +} +.glyphicons.parents:before { + content: "\E025"; +} +.glyphicons.binoculars:before { + content: "\E026"; +} +.glyphicons.road:before { + content: "\E027"; +} +.glyphicons.search:before { + content: "\E028"; +} +.glyphicons.cars:before { + content: "\E029"; +} +.glyphicons.notes_2:before { + content: "\E030"; +} +.glyphicons.pencil:before { + content: "\270F"; +} +.glyphicons.bus:before { + content: "\1F68C"; +} +.glyphicons.wifi_alt:before { + content: "\E033"; +} +.glyphicons.luggage:before { + content: "\E034"; +} +.glyphicons.old_man:before { + content: "\E035"; +} +.glyphicons.woman:before { + content: "\1F469"; +} +.glyphicons.file:before { + content: "\E037"; +} +.glyphicons.coins:before { + content: "\E038"; +} +.glyphicons.airplane:before { + content: "\2708"; +} +.glyphicons.notes:before { + content: "\E040"; +} +.glyphicons.stats:before { + content: "\E041"; +} +.glyphicons.charts:before { + content: "\E042"; +} +.glyphicons.pie_chart:before { + content: "\E043"; +} +.glyphicons.group:before { + content: "\E044"; +} +.glyphicons.keys:before { + content: "\E045"; +} +.glyphicons.calendar:before { + content: "\1F4C5"; +} +.glyphicons.router:before { + content: "\E047"; +} +.glyphicons.camera_small:before { + content: "\E048"; +} +.glyphicons.dislikes:before { + content: "\E049"; +} +.glyphicons.star:before { + content: "\E050"; +} +.glyphicons.link:before { + content: "\E051"; +} +.glyphicons.eye_open:before { + content: "\E052"; +} +.glyphicons.eye_close:before { + content: "\E053"; +} +.glyphicons.alarm:before { + content: "\E054"; +} +.glyphicons.clock:before { + content: "\E055"; +} +.glyphicons.stopwatch:before { + content: "\E056"; +} +.glyphicons.projector:before { + content: "\E057"; +} +.glyphicons.history:before { + content: "\E058"; +} +.glyphicons.truck:before { + content: "\E059"; +} +.glyphicons.cargo:before { + content: "\E060"; +} +.glyphicons.compass:before { + content: "\E061"; +} +.glyphicons.keynote:before { + content: "\E062"; +} +.glyphicons.paperclip:before { + content: "\1F4CE"; +} +.glyphicons.power:before { + content: "\E064"; +} +.glyphicons.lightbulb:before { + content: "\E065"; +} +.glyphicons.tag:before { + content: "\E066"; +} +.glyphicons.tags:before { + content: "\E067"; +} +.glyphicons.cleaning:before { + content: "\E068"; +} +.glyphicons.ruller:before { + content: "\E069"; +} +.glyphicons.gift:before { + content: "\E070"; +} +.glyphicons.umbrella:before { + content: "\2602"; +} +.glyphicons.book:before { + content: "\E072"; +} +.glyphicons.bookmark:before { + content: "\1F516"; +} +.glyphicons.wifi:before { + content: "\E074"; +} +.glyphicons.cup:before { + content: "\E075"; +} +.glyphicons.stroller:before { + content: "\E076"; +} +.glyphicons.headphones:before { + content: "\E077"; +} +.glyphicons.headset:before { + content: "\E078"; +} +.glyphicons.warning_sign:before { + content: "\E079"; +} +.glyphicons.signal:before { + content: "\E080"; +} +.glyphicons.retweet:before { + content: "\E081"; +} +.glyphicons.refresh:before { + content: "\E082"; +} +.glyphicons.roundabout:before { + content: "\E083"; +} +.glyphicons.random:before { + content: "\E084"; +} +.glyphicons.heat:before { + content: "\E085"; +} +.glyphicons.repeat:before { + content: "\E086"; +} +.glyphicons.display:before { + content: "\E087"; +} +.glyphicons.log_book:before { + content: "\E088"; +} +.glyphicons.address_book:before { + content: "\E089"; +} +.glyphicons.building:before { + content: "\E090"; +} +.glyphicons.eyedropper:before { + content: "\E091"; +} +.glyphicons.adjust:before { + content: "\E092"; +} +.glyphicons.tint:before { + content: "\E093"; +} +.glyphicons.crop:before { + content: "\E094"; +} +.glyphicons.vector_path_square:before { + content: "\E095"; +} +.glyphicons.vector_path_circle:before { + content: "\E096"; +} +.glyphicons.vector_path_polygon:before { + content: "\E097"; +} +.glyphicons.vector_path_line:before { + content: "\E098"; +} +.glyphicons.vector_path_curve:before { + content: "\E099"; +} +.glyphicons.vector_path_all:before { + content: "\E100"; +} +.glyphicons.font:before { + content: "\E101"; +} +.glyphicons.italic:before { + content: "\E102"; +} +.glyphicons.bold:before { + content: "\E103"; +} +.glyphicons.text_underline:before { + content: "\E104"; +} +.glyphicons.text_strike:before { + content: "\E105"; +} +.glyphicons.text_height:before { + content: "\E106"; +} +.glyphicons.text_width:before { + content: "\E107"; +} +.glyphicons.text_resize:before { + content: "\E108"; +} +.glyphicons.left_indent:before { + content: "\E109"; +} +.glyphicons.right_indent:before { + content: "\E110"; +} +.glyphicons.align_left:before { + content: "\E111"; +} +.glyphicons.align_center:before { + content: "\E112"; +} +.glyphicons.align_right:before { + content: "\E113"; +} +.glyphicons.justify:before { + content: "\E114"; +} +.glyphicons.list:before { + content: "\E115"; +} +.glyphicons.text_smaller:before { + content: "\E116"; +} +.glyphicons.text_bigger:before { + content: "\E117"; +} +.glyphicons.embed:before { + content: "\E118"; +} +.glyphicons.embed_close:before { + content: "\E119"; +} +.glyphicons.table:before { + content: "\E120"; +} +.glyphicons.message_full:before { + content: "\E121"; +} +.glyphicons.message_empty:before { + content: "\E122"; +} +.glyphicons.message_in:before { + content: "\E123"; +} +.glyphicons.message_out:before { + content: "\E124"; +} +.glyphicons.message_plus:before { + content: "\E125"; +} +.glyphicons.message_minus:before { + content: "\E126"; +} +.glyphicons.message_ban:before { + content: "\E127"; +} +.glyphicons.message_flag:before { + content: "\E128"; +} +.glyphicons.message_lock:before { + content: "\E129"; +} +.glyphicons.message_new:before { + content: "\E130"; +} +.glyphicons.inbox:before { + content: "\E131"; +} +.glyphicons.inbox_plus:before { + content: "\E132"; +} +.glyphicons.inbox_minus:before { + content: "\E133"; +} +.glyphicons.inbox_lock:before { + content: "\E134"; +} +.glyphicons.inbox_in:before { + content: "\E135"; +} +.glyphicons.inbox_out:before { + content: "\E136"; +} +.glyphicons.cogwheel:before { + content: "\E137"; +} +.glyphicons.cogwheels:before { + content: "\E138"; +} +.glyphicons.picture:before { + content: "\E139"; +} +.glyphicons.adjust_alt:before { + content: "\E140"; +} +.glyphicons.database_lock:before { + content: "\E141"; +} +.glyphicons.database_plus:before { + content: "\E142"; +} +.glyphicons.database_minus:before { + content: "\E143"; +} +.glyphicons.database_ban:before { + content: "\E144"; +} +.glyphicons.folder_open:before { + content: "\E145"; +} +.glyphicons.folder_plus:before { + content: "\E146"; +} +.glyphicons.folder_minus:before { + content: "\E147"; +} +.glyphicons.folder_lock:before { + content: "\E148"; +} +.glyphicons.folder_flag:before { + content: "\E149"; +} +.glyphicons.folder_new:before { + content: "\E150"; +} +.glyphicons.edit:before { + content: "\E151"; +} +.glyphicons.new_window:before { + content: "\E152"; +} +.glyphicons.check:before { + content: "\E153"; +} +.glyphicons.unchecked:before { + content: "\E154"; +} +.glyphicons.more_windows:before { + content: "\E155"; +} +.glyphicons.show_big_thumbnails:before { + content: "\E156"; +} +.glyphicons.show_thumbnails:before { + content: "\E157"; +} +.glyphicons.show_thumbnails_with_lines:before { + content: "\E158"; +} +.glyphicons.show_lines:before { + content: "\E159"; +} +.glyphicons.playlist:before { + content: "\E160"; +} +.glyphicons.imac:before { + content: "\E161"; +} +.glyphicons.macbook:before { + content: "\E162"; +} +.glyphicons.ipad:before { + content: "\E163"; +} +.glyphicons.iphone:before { + content: "\E164"; +} +.glyphicons.iphone_transfer:before { + content: "\E165"; +} +.glyphicons.iphone_exchange:before { + content: "\E166"; +} +.glyphicons.ipod:before { + content: "\E167"; +} +.glyphicons.ipod_shuffle:before { + content: "\E168"; +} +.glyphicons.ear_plugs:before { + content: "\E169"; +} +.glyphicons.record:before { + content: "\E170"; +} +.glyphicons.step_backward:before { + content: "\E171"; +} +.glyphicons.fast_backward:before { + content: "\E172"; +} +.glyphicons.rewind:before { + content: "\E173"; +} +.glyphicons.play:before { + content: "\E174"; +} +.glyphicons.pause:before { + content: "\E175"; +} +.glyphicons.stop:before { + content: "\E176"; +} +.glyphicons.forward:before { + content: "\E177"; +} +.glyphicons.fast_forward:before { + content: "\E178"; +} +.glyphicons.step_forward:before { + content: "\E179"; +} +.glyphicons.eject:before { + content: "\E180"; +} +.glyphicons.facetime_video:before { + content: "\E181"; +} +.glyphicons.download_alt:before { + content: "\E182"; +} +.glyphicons.mute:before { + content: "\E183"; +} +.glyphicons.volume_down:before { + content: "\E184"; +} +.glyphicons.volume_up:before { + content: "\E185"; +} +.glyphicons.screenshot:before { + content: "\E186"; +} +.glyphicons.move:before { + content: "\E187"; +} +.glyphicons.more:before { + content: "\E188"; +} +.glyphicons.brightness_reduce:before { + content: "\E189"; +} +.glyphicons.brightness_increase:before { + content: "\E190"; +} +.glyphicons.circle_plus:before { + content: "\E191"; +} +.glyphicons.circle_minus:before { + content: "\E192"; +} +.glyphicons.circle_remove:before { + content: "\E193"; +} +.glyphicons.circle_ok:before { + content: "\E194"; +} +.glyphicons.circle_question_mark:before { + content: "\E195"; +} +.glyphicons.circle_info:before { + content: "\E196"; +} +.glyphicons.circle_exclamation_mark:before { + content: "\E197"; +} +.glyphicons.remove:before { + content: "\E198"; +} +.glyphicons.ok:before { + content: "\E199"; +} +.glyphicons.ban:before { + content: "\E200"; +} +.glyphicons.download:before { + content: "\E201"; +} +.glyphicons.upload:before { + content: "\E202"; +} +.glyphicons.shopping_cart:before { + content: "\E203"; +} +.glyphicons.lock:before { + content: "\1F512"; +} +.glyphicons.unlock:before { + content: "\E205"; +} +.glyphicons.electricity:before { + content: "\E206"; +} +.glyphicons.ok_2:before { + content: "\E207"; +} +.glyphicons.remove_2:before { + content: "\E208"; +} +.glyphicons.cart_out:before { + content: "\E209"; +} +.glyphicons.cart_in:before { + content: "\E210"; +} +.glyphicons.left_arrow:before { + content: "\E211"; +} +.glyphicons.right_arrow:before { + content: "\E212"; +} +.glyphicons.down_arrow:before { + content: "\E213"; +} +.glyphicons.up_arrow:before { + content: "\E214"; +} +.glyphicons.resize_small:before { + content: "\E215"; +} +.glyphicons.resize_full:before { + content: "\E216"; +} +.glyphicons.circle_arrow_left:before { + content: "\E217"; +} +.glyphicons.circle_arrow_right:before { + content: "\E218"; +} +.glyphicons.circle_arrow_top:before { + content: "\E219"; +} +.glyphicons.circle_arrow_down:before { + content: "\E220"; +} +.glyphicons.play_button:before { + content: "\E221"; +} +.glyphicons.unshare:before { + content: "\E222"; +} +.glyphicons.share:before { + content: "\E223"; +} +.glyphicons.chevron-right:before { + content: "\E224"; +} +.glyphicons.chevron-left:before { + content: "\E225"; +} +.glyphicons.bluetooth:before { + content: "\E226"; +} +.glyphicons.euro:before { + content: "\20AC"; +} +.glyphicons.usd:before { + content: "\E228"; +} +.glyphicons.gbp:before { + content: "\E229"; +} +.glyphicons.retweet_2:before { + content: "\E230"; +} +.glyphicons.moon:before { + content: "\E231"; +} +.glyphicons.sun:before { + content: "\2609"; +} +.glyphicons.cloud:before { + content: "\2601"; +} +.glyphicons.direction:before { + content: "\E234"; +} +.glyphicons.brush:before { + content: "\E235"; +} +.glyphicons.pen:before { + content: "\E236"; +} +.glyphicons.zoom_in:before { + content: "\E237"; +} +.glyphicons.zoom_out:before { + content: "\E238"; +} +.glyphicons.pin:before { + content: "\E239"; +} +.glyphicons.albums:before { + content: "\E240"; +} +.glyphicons.rotation_lock:before { + content: "\E241"; +} +.glyphicons.flash:before { + content: "\E242"; +} +.glyphicons.google_maps:before { + content: "\E243"; +} +.glyphicons.anchor:before { + content: "\2693"; +} +.glyphicons.conversation:before { + content: "\E245"; +} +.glyphicons.chat:before { + content: "\E246"; +} +.glyphicons.male:before { + content: "\E247"; +} +.glyphicons.female:before { + content: "\E248"; +} +.glyphicons.asterisk:before { + content: "\002A"; +} +.glyphicons.divide:before { + content: "\00F7"; +} +.glyphicons.snorkel_diving:before { + content: "\E251"; +} +.glyphicons.scuba_diving:before { + content: "\E252"; +} +.glyphicons.oxygen_bottle:before { + content: "\E253"; +} +.glyphicons.fins:before { + content: "\E254"; +} +.glyphicons.fishes:before { + content: "\E255"; +} +.glyphicons.boat:before { + content: "\E256"; +} +.glyphicons.delete:before { + content: "\E257"; +} +.glyphicons.sheriffs_star:before { + content: "\E258"; +} +.glyphicons.qrcode:before { + content: "\E259"; +} +.glyphicons.barcode:before { + content: "\E260"; +} +.glyphicons.pool:before { + content: "\E261"; +} +.glyphicons.buoy:before { + content: "\E262"; +} +.glyphicons.spade:before { + content: "\E263"; +} +.glyphicons.bank:before { + content: "\1F3E6"; +} +.glyphicons.vcard:before { + content: "\E265"; +} +.glyphicons.electrical_plug:before { + content: "\E266"; +} +.glyphicons.flag:before { + content: "\E267"; +} +.glyphicons.credit_card:before { + content: "\E268"; +} +.glyphicons.keyboard-wireless:before { + content: "\E269"; +} +.glyphicons.keyboard-wired:before { + content: "\E270"; +} +.glyphicons.shield:before { + content: "\E271"; +} +.glyphicons.ring:before { + content: "\02DA"; +} +.glyphicons.cake:before { + content: "\E273"; +} +.glyphicons.drink:before { + content: "\E274"; +} +.glyphicons.beer:before { + content: "\E275"; +} +.glyphicons.fast_food:before { + content: "\E276"; +} +.glyphicons.cutlery:before { + content: "\E277"; +} +.glyphicons.pizza:before { + content: "\E278"; +} +.glyphicons.birthday_cake:before { + content: "\E279"; +} +.glyphicons.tablet:before { + content: "\E280"; +} +.glyphicons.settings:before { + content: "\E281"; +} +.glyphicons.bullets:before { + content: "\E282"; +} +.glyphicons.cardio:before { + content: "\E283"; +} +.glyphicons.t-shirt:before { + content: "\E284"; +} +.glyphicons.pants:before { + content: "\E285"; +} +.glyphicons.sweater:before { + content: "\E286"; +} +.glyphicons.fabric:before { + content: "\E287"; +} +.glyphicons.leather:before { + content: "\E288"; +} +.glyphicons.scissors:before { + content: "\E289"; +} +.glyphicons.bomb:before { + content: "\1F4A3"; +} +.glyphicons.skull:before { + content: "\1F480"; +} +.glyphicons.celebration:before { + content: "\E292"; +} +.glyphicons.tea_kettle:before { + content: "\E293"; +} +.glyphicons.french_press:before { + content: "\E294"; +} +.glyphicons.coffe_cup:before { + content: "\E295"; +} +.glyphicons.pot:before { + content: "\E296"; +} +.glyphicons.grater:before { + content: "\E297"; +} +.glyphicons.kettle:before { + content: "\E298"; +} +.glyphicons.hospital:before { + content: "\1F3E5"; +} +.glyphicons.hospital_h:before { + content: "\E300"; +} +.glyphicons.microphone:before { + content: "\1F3A4"; +} +.glyphicons.webcam:before { + content: "\E302"; +} +.glyphicons.temple_christianity_church:before { + content: "\E303"; +} +.glyphicons.temple_islam:before { + content: "\E304"; +} +.glyphicons.temple_hindu:before { + content: "\E305"; +} +.glyphicons.temple_buddhist:before { + content: "\E306"; +} +.glyphicons.bicycle:before { + content: "\1F6B2"; +} +.glyphicons.life_preserver:before { + content: "\E308"; +} +.glyphicons.share_alt:before { + content: "\E309"; +} +.glyphicons.comments:before { + content: "\E310"; +} +.glyphicons.flower:before { + content: "\2698"; +} +.glyphicons.baseball:before { + content: "\26BE"; +} +.glyphicons.rugby:before { + content: "\E313"; +} +.glyphicons.ax:before { + content: "\E314"; +} +.glyphicons.table_tennis:before { + content: "\E315"; +} +.glyphicons.bowling:before { + content: "\1F3B3"; +} +.glyphicons.tree_conifer:before { + content: "\E317"; +} +.glyphicons.tree_deciduous:before { + content: "\E318"; +} +.glyphicons.more_items:before { + content: "\E319"; +} +.glyphicons.sort:before { + content: "\E320"; +} +.glyphicons.filter:before { + content: "\E321"; +} +.glyphicons.gamepad:before { + content: "\E322"; +} +.glyphicons.playing_dices:before { + content: "\E323"; +} +.glyphicons.calculator:before { + content: "\E324"; +} +.glyphicons.tie:before { + content: "\E325"; +} +.glyphicons.wallet:before { + content: "\E326"; +} +.glyphicons.piano:before { + content: "\E327"; +} +.glyphicons.sampler:before { + content: "\E328"; +} +.glyphicons.podium:before { + content: "\E329"; +} +.glyphicons.soccer_ball:before { + content: "\E330"; +} +.glyphicons.blog:before { + content: "\E331"; +} +.glyphicons.dashboard:before { + content: "\E332"; +} +.glyphicons.certificate:before { + content: "\E333"; +} +.glyphicons.bell:before { + content: "\1F514"; +} +.glyphicons.candle:before { + content: "\E335"; +} +.glyphicons.pushpin:before { + content: "\1F4CC"; +} +.glyphicons.iphone_shake:before { + content: "\E337"; +} +.glyphicons.pin_flag:before { + content: "\E338"; +} +.glyphicons.turtle:before { + content: "\1F422"; +} +.glyphicons.rabbit:before { + content: "\1F407"; +} +.glyphicons.globe:before { + content: "\E341"; +} +.glyphicons.briefcase:before { + content: "\1F4BC"; +} +.glyphicons.hdd:before { + content: "\E343"; +} +.glyphicons.thumbs_up:before { + content: "\E344"; +} +.glyphicons.thumbs_down:before { + content: "\E345"; +} +.glyphicons.hand_right:before { + content: "\E346"; +} +.glyphicons.hand_left:before { + content: "\E347"; +} +.glyphicons.hand_up:before { + content: "\E348"; +} +.glyphicons.hand_down:before { + content: "\E349"; +} +.glyphicons.fullscreen:before { + content: "\E350"; +} +.glyphicons.shopping_bag:before { + content: "\E351"; +} +.glyphicons.book_open:before { + content: "\E352"; +} +.glyphicons.nameplate:before { + content: "\E353"; +} +.glyphicons.nameplate_alt:before { + content: "\E354"; +} +.glyphicons.vases:before { + content: "\E355"; +} +.glyphicons.bullhorn:before { + content: "\E356"; +} +.glyphicons.dumbbell:before { + content: "\E357"; +} +.glyphicons.suitcase:before { + content: "\E358"; +} +.glyphicons.file_import:before { + content: "\E359"; +} +.glyphicons.file_export:before { + content: "\E360"; +} +.glyphicons.bug:before { + content: "\1F41B"; +} +.glyphicons.crown:before { + content: "\1F451"; +} +.glyphicons.smoking:before { + content: "\E363"; +} +.glyphicons.cloud-upload:before { + content: "\E364"; +} +.glyphicons.cloud-download:before { + content: "\E365"; +} +.glyphicons.restart:before { + content: "\E366"; +} +.glyphicons.security_camera:before { + content: "\E367"; +} +.glyphicons.expand:before { + content: "\E368"; +} +.glyphicons.collapse:before { + content: "\E369"; +} +.glyphicons.collapse_top:before { + content: "\E370"; +} +.glyphicons.globe_af:before { + content: "\E371"; +} +.glyphicons.global:before { + content: "\E372"; +} +.glyphicons.spray:before { + content: "\E373"; +} +.glyphicons.nails:before { + content: "\E374"; +} +.glyphicons.claw_hammer:before { + content: "\E375"; +} +.glyphicons.classic_hammer:before { + content: "\E376"; +} +.glyphicons.hand_saw:before { + content: "\E377"; +} +.glyphicons.riflescope:before { + content: "\E378"; +} +.glyphicons.electrical_socket_eu:before { + content: "\E379"; +} +.glyphicons.electrical_socket_us:before { + content: "\E380"; +} +.glyphicons.message_forward:before { + content: "\E381"; +} +.glyphicons.coat_hanger:before { + content: "\E382"; +} +.glyphicons.dress:before { + content: "\1F457"; +} +.glyphicons.bathrobe:before { + content: "\E384"; +} +.glyphicons.shirt:before { + content: "\E385"; +} +.glyphicons.underwear:before { + content: "\E386"; +} +.glyphicons.log_in:before { + content: "\E387"; +} +.glyphicons.log_out:before { + content: "\E388"; +} +.glyphicons.exit:before { + content: "\E389"; +} +.glyphicons.new_window_alt:before { + content: "\E390"; +} +.glyphicons.video_sd:before { + content: "\E391"; +} +.glyphicons.video_hd:before { + content: "\E392"; +} +.glyphicons.subtitles:before { + content: "\E393"; +} +.glyphicons.sound_stereo:before { + content: "\E394"; +} +.glyphicons.sound_dolby:before { + content: "\E395"; +} +.glyphicons.sound_5_1:before { + content: "\E396"; +} +.glyphicons.sound_6_1:before { + content: "\E397"; +} +.glyphicons.sound_7_1:before { + content: "\E398"; +} +.glyphicons.copyright_mark:before { + content: "\E399"; +} +.glyphicons.registration_mark:before { + content: "\E400"; +} +.glyphicons.radar:before { + content: "\E401"; +} +.glyphicons.skateboard:before { + content: "\E402"; +} +.glyphicons.golf_course:before { + content: "\E403"; +} +.glyphicons.sorting:before { + content: "\E404"; +} +.glyphicons.sort-by-alphabet:before { + content: "\E405"; +} +.glyphicons.sort-by-alphabet-alt:before { + content: "\E406"; +} +.glyphicons.sort-by-order:before { + content: "\E407"; +} +.glyphicons.sort-by-order-alt:before { + content: "\E408"; +} +.glyphicons.sort-by-attributes:before { + content: "\E409"; +} +.glyphicons.sort-by-attributes-alt:before { + content: "\E410"; +} +.glyphicons.compressed:before { + content: "\E411"; +} +.glyphicons.package:before { + content: "\1F4E6"; +} +.glyphicons.cloud_plus:before { + content: "\E413"; +} +.glyphicons.cloud_minus:before { + content: "\E414"; +} +.glyphicons.disk_save:before { + content: "\E415"; +} +.glyphicons.disk_open:before { + content: "\E416"; +} +.glyphicons.disk_saved:before { + content: "\E417"; +} +.glyphicons.disk_remove:before { + content: "\E418"; +} +.glyphicons.disk_import:before { + content: "\E419"; +} +.glyphicons.disk_export:before { + content: "\E420"; +} +.glyphicons.tower:before { + content: "\E421"; +} +.glyphicons.send:before { + content: "\E422"; +} +.glyphicons.git_branch:before { + content: "\E423"; +} +.glyphicons.git_create:before { + content: "\E424"; +} +.glyphicons.git_private:before { + content: "\E425"; +} +.glyphicons.git_delete:before { + content: "\E426"; +} +.glyphicons.git_merge:before { + content: "\E427"; +} +.glyphicons.git_pull_request:before { + content: "\E428"; +} +.glyphicons.git_compare:before { + content: "\E429"; +} +.glyphicons.git_commit:before { + content: "\E430"; +} +.glyphicons.construction_cone:before { + content: "\E431"; +} +.glyphicons.shoe_steps:before { + content: "\E432"; +} +.glyphicons.plus:before { + content: "\002B"; +} +.glyphicons.minus:before { + content: "\2212"; +} +.glyphicons.redo:before { + content: "\E435"; +} +.glyphicons.undo:before { + content: "\E436"; +} +.glyphicons.golf:before { + content: "\E437"; +} +.glyphicons.hockey:before { + content: "\E438"; +} +.glyphicons.pipe:before { + content: "\E439"; +} +.glyphicons.wrench:before { + content: "\1F527"; +} +.glyphicons.folder_closed:before { + content: "\E441"; +} +.glyphicons.phone_alt:before { + content: "\E442"; +} +.glyphicons.earphone:before { + content: "\E443"; +} +.glyphicons.floppy_disk:before { + content: "\E444"; +} +.glyphicons.floppy_saved:before { + content: "\E445"; +} +.glyphicons.floppy_remove:before { + content: "\E446"; +} +.glyphicons.floppy_save:before { + content: "\E447"; +} +.glyphicons.floppy_open:before { + content: "\E448"; +} +.glyphicons.translate:before { + content: "\E449"; +} +.glyphicons.fax:before { + content: "\E450"; +} +.glyphicons.factory:before { + content: "\1F3ED"; +} +.glyphicons.shop_window:before { + content: "\E452"; +} +.glyphicons.shop:before { + content: "\E453"; +} +.glyphicons.kiosk:before { + content: "\E454"; +} +.glyphicons.kiosk_wheels:before { + content: "\E455"; +} +.glyphicons.kiosk_light:before { + content: "\E456"; +} +.glyphicons.kiosk_food:before { + content: "\E457"; +} +.glyphicons.transfer:before { + content: "\E458"; +} +.glyphicons.money:before { + content: "\E459"; +} +.glyphicons.header:before { + content: "\E460"; +} +.glyphicons.blacksmith:before { + content: "\E461"; +} +.glyphicons.saw_blade:before { + content: "\E462"; +} +.glyphicons.basketball:before { + content: "\E463"; +} +.glyphicons.server:before { + content: "\E464"; +} +.glyphicons.server_plus:before { + content: "\E465"; +} +.glyphicons.server_minus:before { + content: "\E466"; +} +.glyphicons.server_ban:before { + content: "\E467"; +} +.glyphicons.server_flag:before { + content: "\E468"; +} +.glyphicons.server_lock:before { + content: "\E469"; +} +.glyphicons.server_new:before { + content: "\E470"; +} +.glyphicons-icon { + display: inline-block; + width: 48px; + height: 48px; + margin: 0 8px 0 0; + line-height: 14px; + vertical-align: text-top; + background-image: url(../images/glyphicons.svg); + background-position: 0 0; + background-repeat: no-repeat; + vertical-align: top; + *display: inline; + *zoom: 1; + *margin-right: .3em; +} +.glyphicons-icon _:-o-prefocus, +.glyphicons-icon { + background-image: url(../images/glyphicons.png); +} +.no-inlinesvg .glyphicons-icon { + background-image: url(../images/glyphicons.png); +} +.glyphicons-icon.white { + background-image: url(../images/glyphicons-white.svg); +} +.glyphicons-icon.white _:-o-prefocus, +.glyphicons-icon.white { + background-image: url(../images/glyphicons-white.png); +} +.no-inlinesvg .glyphicons-icon.white { + background-image: url(../images/glyphicons-white.png); +} +.glyphicons-icon.glass { + background-position: 4px 11px; +} +.glyphicons-icon.leaf { + background-position: -44px 11px; +} +.glyphicons-icon.dog { + background-position: -92px 11px; +} +.glyphicons-icon.user { + background-position: -140px 11px; +} +.glyphicons-icon.girl { + background-position: -188px 11px; +} +.glyphicons-icon.car { + background-position: -236px 11px; +} +.glyphicons-icon.user_add { + background-position: -284px 11px; +} +.glyphicons-icon.user_remove { + background-position: -332px 11px; +} +.glyphicons-icon.film { + background-position: -380px 11px; +} +.glyphicons-icon.magic { + background-position: -428px 11px; +} +.glyphicons-icon.envelope { + background-position: 4px -37px; +} +.glyphicons-icon.camera { + background-position: -44px -37px; +} +.glyphicons-icon.heart { + background-position: -92px -37px; +} +.glyphicons-icon.beach_umbrella { + background-position: -140px -37px; +} +.glyphicons-icon.train { + background-position: -188px -37px; +} +.glyphicons-icon.print { + background-position: -236px -37px; +} +.glyphicons-icon.bin { + background-position: -284px -37px; +} +.glyphicons-icon.music { + background-position: -332px -37px; +} +.glyphicons-icon.note { + background-position: -380px -37px; +} +.glyphicons-icon.heart_empty { + background-position: -428px -37px; +} +.glyphicons-icon.home { + background-position: 4px -85px; +} +.glyphicons-icon.snowflake { + background-position: -44px -85px; +} +.glyphicons-icon.fire { + background-position: -92px -85px; +} +.glyphicons-icon.magnet { + background-position: -140px -85px; +} +.glyphicons-icon.parents { + background-position: -188px -85px; +} +.glyphicons-icon.binoculars { + background-position: -236px -85px; +} +.glyphicons-icon.road { + background-position: -284px -85px; +} +.glyphicons-icon.search { + background-position: -332px -85px; +} +.glyphicons-icon.cars { + background-position: -380px -85px; +} +.glyphicons-icon.notes_2 { + background-position: -428px -85px; +} +.glyphicons-icon.pencil { + background-position: 4px -133px; +} +.glyphicons-icon.bus { + background-position: -44px -133px; +} +.glyphicons-icon.wifi_alt { + background-position: -92px -133px; +} +.glyphicons-icon.luggage { + background-position: -140px -133px; +} +.glyphicons-icon.old_man { + background-position: -188px -133px; +} +.glyphicons-icon.woman { + background-position: -236px -133px; +} +.glyphicons-icon.file { + background-position: -284px -133px; +} +.glyphicons-icon.coins { + background-position: -332px -133px; +} +.glyphicons-icon.airplane { + background-position: -380px -133px; +} +.glyphicons-icon.notes { + background-position: -428px -133px; +} +.glyphicons-icon.stats { + background-position: 4px -181px; +} +.glyphicons-icon.charts { + background-position: -44px -181px; +} +.glyphicons-icon.pie_chart { + background-position: -92px -181px; +} +.glyphicons-icon.group { + background-position: -140px -181px; +} +.glyphicons-icon.keys { + background-position: -188px -181px; +} +.glyphicons-icon.calendar { + background-position: -236px -181px; +} +.glyphicons-icon.router { + background-position: -284px -181px; +} +.glyphicons-icon.camera_small { + background-position: -332px -181px; +} +.glyphicons-icon.dislikes { + background-position: -380px -181px; +} +.glyphicons-icon.star { + background-position: -428px -181px; +} +.glyphicons-icon.link { + background-position: 4px -229px; +} +.glyphicons-icon.eye_open { + background-position: -44px -229px; +} +.glyphicons-icon.eye_close { + background-position: -92px -229px; +} +.glyphicons-icon.alarm { + background-position: -140px -229px; +} +.glyphicons-icon.clock { + background-position: -188px -229px; +} +.glyphicons-icon.stopwatch { + background-position: -236px -229px; +} +.glyphicons-icon.projector { + background-position: -284px -229px; +} +.glyphicons-icon.history { + background-position: -332px -229px; +} +.glyphicons-icon.truck { + background-position: -380px -229px; +} +.glyphicons-icon.cargo { + background-position: -428px -229px; +} +.glyphicons-icon.compass { + background-position: 4px -277px; +} +.glyphicons-icon.keynote { + background-position: -44px -277px; +} +.glyphicons-icon.paperclip { + background-position: -92px -277px; +} +.glyphicons-icon.power { + background-position: -140px -277px; +} +.glyphicons-icon.lightbulb { + background-position: -188px -277px; +} +.glyphicons-icon.tag { + background-position: -236px -277px; +} +.glyphicons-icon.tags { + background-position: -284px -277px; +} +.glyphicons-icon.cleaning { + background-position: -332px -277px; +} +.glyphicons-icon.ruller { + background-position: -380px -277px; +} +.glyphicons-icon.gift { + background-position: -428px -277px; +} +.glyphicons-icon.umbrella { + background-position: 4px -325px; +} +.glyphicons-icon.book { + background-position: -44px -325px; +} +.glyphicons-icon.bookmark { + background-position: -92px -325px; +} +.glyphicons-icon.wifi { + background-position: -140px -325px; +} +.glyphicons-icon.cup { + background-position: -188px -325px; +} +.glyphicons-icon.stroller { + background-position: -236px -325px; +} +.glyphicons-icon.headphones { + background-position: -284px -325px; +} +.glyphicons-icon.headset { + background-position: -332px -325px; +} +.glyphicons-icon.warning_sign { + background-position: -380px -325px; +} +.glyphicons-icon.signal { + background-position: -428px -325px; +} +.glyphicons-icon.retweet { + background-position: 4px -373px; +} +.glyphicons-icon.refresh { + background-position: -44px -373px; +} +.glyphicons-icon.roundabout { + background-position: -92px -373px; +} +.glyphicons-icon.random { + background-position: -140px -373px; +} +.glyphicons-icon.heat { + background-position: -188px -373px; +} +.glyphicons-icon.repeat { + background-position: -236px -373px; +} +.glyphicons-icon.display { + background-position: -284px -373px; +} +.glyphicons-icon.log_book { + background-position: -332px -373px; +} +.glyphicons-icon.address_book { + background-position: -380px -373px; +} +.glyphicons-icon.building { + background-position: -428px -373px; +} +.glyphicons-icon.eyedropper { + background-position: 4px -421px; +} +.glyphicons-icon.adjust { + background-position: -44px -421px; +} +.glyphicons-icon.tint { + background-position: -92px -421px; +} +.glyphicons-icon.crop { + background-position: -140px -421px; +} +.glyphicons-icon.vector_path_square { + background-position: -188px -421px; +} +.glyphicons-icon.vector_path_circle { + background-position: -236px -421px; +} +.glyphicons-icon.vector_path_polygon { + background-position: -284px -421px; +} +.glyphicons-icon.vector_path_line { + background-position: -332px -421px; +} +.glyphicons-icon.vector_path_curve { + background-position: -380px -421px; +} +.glyphicons-icon.vector_path_all { + background-position: -428px -421px; +} +.glyphicons-icon.font { + background-position: 4px -469px; +} +.glyphicons-icon.italic { + background-position: -44px -469px; +} +.glyphicons-icon.bold { + background-position: -92px -469px; +} +.glyphicons-icon.text_underline { + background-position: -140px -469px; +} +.glyphicons-icon.text_strike { + background-position: -188px -469px; +} +.glyphicons-icon.text_height { + background-position: -236px -469px; +} +.glyphicons-icon.text_width { + background-position: -284px -469px; +} +.glyphicons-icon.text_resize { + background-position: -332px -469px; +} +.glyphicons-icon.left_indent { + background-position: -380px -469px; +} +.glyphicons-icon.right_indent { + background-position: -428px -469px; +} +.glyphicons-icon.align_left { + background-position: 4px -517px; +} +.glyphicons-icon.align_center { + background-position: -44px -517px; +} +.glyphicons-icon.align_right { + background-position: -92px -517px; +} +.glyphicons-icon.justify { + background-position: -140px -517px; +} +.glyphicons-icon.list { + background-position: -188px -517px; +} +.glyphicons-icon.text_smaller { + background-position: -236px -517px; +} +.glyphicons-icon.text_bigger { + background-position: -284px -517px; +} +.glyphicons-icon.embed { + background-position: -332px -517px; +} +.glyphicons-icon.embed_close { + background-position: -380px -517px; +} +.glyphicons-icon.table { + background-position: -428px -517px; +} +.glyphicons-icon.message_full { + background-position: 4px -565px; +} +.glyphicons-icon.message_empty { + background-position: -44px -565px; +} +.glyphicons-icon.message_in { + background-position: -92px -565px; +} +.glyphicons-icon.message_out { + background-position: -140px -565px; +} +.glyphicons-icon.message_plus { + background-position: -188px -565px; +} +.glyphicons-icon.message_minus { + background-position: -236px -565px; +} +.glyphicons-icon.message_ban { + background-position: -284px -565px; +} +.glyphicons-icon.message_flag { + background-position: -332px -565px; +} +.glyphicons-icon.message_lock { + background-position: -380px -565px; +} +.glyphicons-icon.message_new { + background-position: -428px -565px; +} +.glyphicons-icon.inbox { + background-position: 4px -613px; +} +.glyphicons-icon.inbox_plus { + background-position: -44px -613px; +} +.glyphicons-icon.inbox_minus { + background-position: -92px -613px; +} +.glyphicons-icon.inbox_lock { + background-position: -140px -613px; +} +.glyphicons-icon.inbox_in { + background-position: -188px -613px; +} +.glyphicons-icon.inbox_out { + background-position: -236px -613px; +} +.glyphicons-icon.cogwheel { + background-position: -284px -613px; +} +.glyphicons-icon.cogwheels { + background-position: -332px -613px; +} +.glyphicons-icon.picture { + background-position: -380px -613px; +} +.glyphicons-icon.adjust_alt { + background-position: -428px -613px; +} +.glyphicons-icon.database_lock { + background-position: 4px -661px; +} +.glyphicons-icon.database_plus { + background-position: -44px -661px; +} +.glyphicons-icon.database_minus { + background-position: -92px -661px; +} +.glyphicons-icon.database_ban { + background-position: -140px -661px; +} +.glyphicons-icon.folder_open { + background-position: -188px -661px; +} +.glyphicons-icon.folder_plus { + background-position: -236px -661px; +} +.glyphicons-icon.folder_minus { + background-position: -284px -661px; +} +.glyphicons-icon.folder_lock { + background-position: -332px -661px; +} +.glyphicons-icon.folder_flag { + background-position: -380px -661px; +} +.glyphicons-icon.folder_new { + background-position: -428px -661px; +} +.glyphicons-icon.edit { + background-position: 4px -709px; +} +.glyphicons-icon.new_window { + background-position: -44px -709px; +} +.glyphicons-icon.check { + background-position: -92px -709px; +} +.glyphicons-icon.unchecked { + background-position: -140px -709px; +} +.glyphicons-icon.more_windows { + background-position: -188px -709px; +} +.glyphicons-icon.show_big_thumbnails { + background-position: -236px -709px; +} +.glyphicons-icon.show_thumbnails { + background-position: -284px -709px; +} +.glyphicons-icon.show_thumbnails_with_lines { + background-position: -332px -709px; +} +.glyphicons-icon.show_lines { + background-position: -380px -709px; +} +.glyphicons-icon.playlist { + background-position: -428px -709px; +} +.glyphicons-icon.imac { + background-position: 4px -757px; +} +.glyphicons-icon.macbook { + background-position: -44px -757px; +} +.glyphicons-icon.ipad { + background-position: -92px -757px; +} +.glyphicons-icon.iphone { + background-position: -140px -757px; +} +.glyphicons-icon.iphone_transfer { + background-position: -188px -757px; +} +.glyphicons-icon.iphone_exchange { + background-position: -236px -757px; +} +.glyphicons-icon.ipod { + background-position: -284px -757px; +} +.glyphicons-icon.ipod_shuffle { + background-position: -332px -757px; +} +.glyphicons-icon.ear_plugs { + background-position: -380px -757px; +} +.glyphicons-icon.record { + background-position: -428px -757px; +} +.glyphicons-icon.step_backward { + background-position: 4px -805px; +} +.glyphicons-icon.fast_backward { + background-position: -44px -805px; +} +.glyphicons-icon.rewind { + background-position: -92px -805px; +} +.glyphicons-icon.play { + background-position: -140px -805px; +} +.glyphicons-icon.pause { + background-position: -188px -805px; +} +.glyphicons-icon.stop { + background-position: -236px -805px; +} +.glyphicons-icon.forward { + background-position: -284px -805px; +} +.glyphicons-icon.fast_forward { + background-position: -332px -805px; +} +.glyphicons-icon.step_forward { + background-position: -380px -805px; +} +.glyphicons-icon.eject { + background-position: -428px -805px; +} +.glyphicons-icon.facetime_video { + background-position: 4px -853px; +} +.glyphicons-icon.download_alt { + background-position: -44px -853px; +} +.glyphicons-icon.mute { + background-position: -92px -853px; +} +.glyphicons-icon.volume_down { + background-position: -140px -853px; +} +.glyphicons-icon.volume_up { + background-position: -188px -853px; +} +.glyphicons-icon.screenshot { + background-position: -236px -853px; +} +.glyphicons-icon.move { + background-position: -284px -853px; +} +.glyphicons-icon.more { + background-position: -332px -853px; +} +.glyphicons-icon.brightness_reduce { + background-position: -380px -853px; +} +.glyphicons-icon.brightness_increase { + background-position: -428px -853px; +} +.glyphicons-icon.circle_plus { + background-position: 4px -901px; +} +.glyphicons-icon.circle_minus { + background-position: -44px -901px; +} +.glyphicons-icon.circle_remove { + background-position: -92px -901px; +} +.glyphicons-icon.circle_ok { + background-position: -140px -901px; +} +.glyphicons-icon.circle_question_mark { + background-position: -188px -901px; +} +.glyphicons-icon.circle_info { + background-position: -236px -901px; +} +.glyphicons-icon.circle_exclamation_mark { + background-position: -284px -901px; +} +.glyphicons-icon.remove { + background-position: -332px -901px; +} +.glyphicons-icon.ok { + background-position: -380px -901px; +} +.glyphicons-icon.ban { + background-position: -428px -901px; +} +.glyphicons-icon.download { + background-position: 4px -949px; +} +.glyphicons-icon.upload { + background-position: -44px -949px; +} +.glyphicons-icon.shopping_cart { + background-position: -92px -949px; +} +.glyphicons-icon.lock { + background-position: -140px -949px; +} +.glyphicons-icon.unlock { + background-position: -188px -949px; +} +.glyphicons-icon.electricity { + background-position: -236px -949px; +} +.glyphicons-icon.ok_2 { + background-position: -284px -949px; +} +.glyphicons-icon.remove_2 { + background-position: -332px -949px; +} +.glyphicons-icon.cart_out { + background-position: -380px -949px; +} +.glyphicons-icon.cart_in { + background-position: -428px -949px; +} +.glyphicons-icon.left_arrow { + background-position: 4px -997px; +} +.glyphicons-icon.right_arrow { + background-position: -44px -997px; +} +.glyphicons-icon.down_arrow { + background-position: -92px -997px; +} +.glyphicons-icon.up_arrow { + background-position: -140px -997px; +} +.glyphicons-icon.resize_small { + background-position: -188px -997px; +} +.glyphicons-icon.resize_full { + background-position: -236px -997px; +} +.glyphicons-icon.circle_arrow_left { + background-position: -284px -997px; +} +.glyphicons-icon.circle_arrow_right { + background-position: -332px -997px; +} +.glyphicons-icon.circle_arrow_top { + background-position: -380px -997px; +} +.glyphicons-icon.circle_arrow_down { + background-position: -428px -997px; +} +.glyphicons-icon.play_button { + background-position: 4px -1045px; +} +.glyphicons-icon.unshare { + background-position: -44px -1045px; +} +.glyphicons-icon.share { + background-position: -92px -1045px; +} +.glyphicons-icon.chevron-right { + background-position: -140px -1045px; +} +.glyphicons-icon.chevron-left { + background-position: -188px -1045px; +} +.glyphicons-icon.bluetooth { + background-position: -236px -1045px; +} +.glyphicons-icon.euro { + background-position: -284px -1045px; +} +.glyphicons-icon.usd { + background-position: -332px -1045px; +} +.glyphicons-icon.gbp { + background-position: -380px -1045px; +} +.glyphicons-icon.retweet_2 { + background-position: -428px -1045px; +} +.glyphicons-icon.moon { + background-position: 4px -1093px; +} +.glyphicons-icon.sun { + background-position: -44px -1093px; +} +.glyphicons-icon.cloud { + background-position: -92px -1093px; +} +.glyphicons-icon.direction { + background-position: -140px -1093px; +} +.glyphicons-icon.brush { + background-position: -188px -1093px; +} +.glyphicons-icon.pen { + background-position: -236px -1093px; +} +.glyphicons-icon.zoom_in { + background-position: -284px -1093px; +} +.glyphicons-icon.zoom_out { + background-position: -332px -1093px; +} +.glyphicons-icon.pin { + background-position: -380px -1093px; +} +.glyphicons-icon.albums { + background-position: -428px -1093px; +} +.glyphicons-icon.rotation_lock { + background-position: 4px -1141px; +} +.glyphicons-icon.flash { + background-position: -44px -1141px; +} +.glyphicons-icon.google_maps { + background-position: -92px -1141px; +} +.glyphicons-icon.anchor { + background-position: -140px -1141px; +} +.glyphicons-icon.conversation { + background-position: -188px -1141px; +} +.glyphicons-icon.chat { + background-position: -236px -1141px; +} +.glyphicons-icon.male { + background-position: -284px -1141px; +} +.glyphicons-icon.female { + background-position: -332px -1141px; +} +.glyphicons-icon.asterisk { + background-position: -380px -1141px; +} +.glyphicons-icon.divide { + background-position: -428px -1141px; +} +.glyphicons-icon.snorkel_diving { + background-position: 4px -1189px; +} +.glyphicons-icon.scuba_diving { + background-position: -44px -1189px; +} +.glyphicons-icon.oxygen_bottle { + background-position: -92px -1189px; +} +.glyphicons-icon.fins { + background-position: -140px -1189px; +} +.glyphicons-icon.fishes { + background-position: -188px -1189px; +} +.glyphicons-icon.boat { + background-position: -236px -1189px; +} +.glyphicons-icon.delete { + background-position: -284px -1189px; +} +.glyphicons-icon.sheriffs_star { + background-position: -332px -1189px; +} +.glyphicons-icon.qrcode { + background-position: -380px -1189px; +} +.glyphicons-icon.barcode { + background-position: -428px -1189px; +} +.glyphicons-icon.pool { + background-position: 4px -1237px; +} +.glyphicons-icon.buoy { + background-position: -44px -1237px; +} +.glyphicons-icon.spade { + background-position: -92px -1237px; +} +.glyphicons-icon.bank { + background-position: -140px -1237px; +} +.glyphicons-icon.vcard { + background-position: -188px -1237px; +} +.glyphicons-icon.electrical_plug { + background-position: -236px -1237px; +} +.glyphicons-icon.flag { + background-position: -284px -1237px; +} +.glyphicons-icon.credit_card { + background-position: -332px -1237px; +} +.glyphicons-icon.keyboard-wireless { + background-position: -380px -1237px; +} +.glyphicons-icon.keyboard-wired { + background-position: -428px -1237px; +} +.glyphicons-icon.shield { + background-position: 4px -1285px; +} +.glyphicons-icon.ring { + background-position: -44px -1285px; +} +.glyphicons-icon.cake { + background-position: -92px -1285px; +} +.glyphicons-icon.drink { + background-position: -140px -1285px; +} +.glyphicons-icon.beer { + background-position: -188px -1285px; +} +.glyphicons-icon.fast_food { + background-position: -236px -1285px; +} +.glyphicons-icon.cutlery { + background-position: -284px -1285px; +} +.glyphicons-icon.pizza { + background-position: -332px -1285px; +} +.glyphicons-icon.birthday_cake { + background-position: -380px -1285px; +} +.glyphicons-icon.tablet { + background-position: -428px -1285px; +} +.glyphicons-icon.settings { + background-position: 4px -1333px; +} +.glyphicons-icon.bullets { + background-position: -44px -1333px; +} +.glyphicons-icon.cardio { + background-position: -92px -1333px; +} +.glyphicons-icon.t-shirt { + background-position: -140px -1333px; +} +.glyphicons-icon.pants { + background-position: -188px -1333px; +} +.glyphicons-icon.sweater { + background-position: -236px -1333px; +} +.glyphicons-icon.fabric { + background-position: -284px -1333px; +} +.glyphicons-icon.leather { + background-position: -332px -1333px; +} +.glyphicons-icon.scissors { + background-position: -380px -1333px; +} +.glyphicons-icon.bomb { + background-position: -428px -1333px; +} +.glyphicons-icon.skull { + background-position: 4px -1381px; +} +.glyphicons-icon.celebration { + background-position: -44px -1381px; +} +.glyphicons-icon.tea_kettle { + background-position: -92px -1381px; +} +.glyphicons-icon.french_press { + background-position: -140px -1381px; +} +.glyphicons-icon.coffe_cup { + background-position: -188px -1381px; +} +.glyphicons-icon.pot { + background-position: -236px -1381px; +} +.glyphicons-icon.grater { + background-position: -284px -1381px; +} +.glyphicons-icon.kettle { + background-position: -332px -1381px; +} +.glyphicons-icon.hospital { + background-position: -380px -1381px; +} +.glyphicons-icon.hospital_h { + background-position: -428px -1381px; +} +.glyphicons-icon.microphone { + background-position: 4px -1429px; +} +.glyphicons-icon.webcam { + background-position: -44px -1429px; +} +.glyphicons-icon.temple_christianity_church { + background-position: -92px -1429px; +} +.glyphicons-icon.temple_islam { + background-position: -140px -1429px; +} +.glyphicons-icon.temple_hindu { + background-position: -188px -1429px; +} +.glyphicons-icon.temple_buddhist { + background-position: -236px -1429px; +} +.glyphicons-icon.bicycle { + background-position: -284px -1429px; +} +.glyphicons-icon.life_preserver { + background-position: -332px -1429px; +} +.glyphicons-icon.share_alt { + background-position: -380px -1429px; +} +.glyphicons-icon.comments { + background-position: -428px -1429px; +} +.glyphicons-icon.flower { + background-position: 4px -1477px; +} +.glyphicons-icon.baseball { + background-position: -44px -1477px; +} +.glyphicons-icon.rugby { + background-position: -92px -1477px; +} +.glyphicons-icon.ax { + background-position: -140px -1477px; +} +.glyphicons-icon.table_tennis { + background-position: -188px -1477px; +} +.glyphicons-icon.bowling { + background-position: -236px -1477px; +} +.glyphicons-icon.tree_conifer { + background-position: -284px -1477px; +} +.glyphicons-icon.tree_deciduous { + background-position: -332px -1477px; +} +.glyphicons-icon.more_items { + background-position: -380px -1477px; +} +.glyphicons-icon.sort { + background-position: -428px -1477px; +} +.glyphicons-icon.filter { + background-position: 4px -1525px; +} +.glyphicons-icon.gamepad { + background-position: -44px -1525px; +} +.glyphicons-icon.playing_dices { + background-position: -92px -1525px; +} +.glyphicons-icon.calculator { + background-position: -140px -1525px; +} +.glyphicons-icon.tie { + background-position: -188px -1525px; +} +.glyphicons-icon.wallet { + background-position: -236px -1525px; +} +.glyphicons-icon.piano { + background-position: -284px -1525px; +} +.glyphicons-icon.sampler { + background-position: -332px -1525px; +} +.glyphicons-icon.podium { + background-position: -380px -1525px; +} +.glyphicons-icon.soccer_ball { + background-position: -428px -1525px; +} +.glyphicons-icon.blog { + background-position: 4px -1573px; +} +.glyphicons-icon.dashboard { + background-position: -44px -1573px; +} +.glyphicons-icon.certificate { + background-position: -92px -1573px; +} +.glyphicons-icon.bell { + background-position: -140px -1573px; +} +.glyphicons-icon.candle { + background-position: -188px -1573px; +} +.glyphicons-icon.pushpin { + background-position: -236px -1573px; +} +.glyphicons-icon.iphone_shake { + background-position: -284px -1573px; +} +.glyphicons-icon.pin_flag { + background-position: -332px -1573px; +} +.glyphicons-icon.turtle { + background-position: -380px -1573px; +} +.glyphicons-icon.rabbit { + background-position: -428px -1573px; +} +.glyphicons-icon.globe { + background-position: 4px -1621px; +} +.glyphicons-icon.briefcase { + background-position: -44px -1621px; +} +.glyphicons-icon.hdd { + background-position: -92px -1621px; +} +.glyphicons-icon.thumbs_up { + background-position: -140px -1621px; +} +.glyphicons-icon.thumbs_down { + background-position: -188px -1621px; +} +.glyphicons-icon.hand_right { + background-position: -236px -1621px; +} +.glyphicons-icon.hand_left { + background-position: -284px -1621px; +} +.glyphicons-icon.hand_up { + background-position: -332px -1621px; +} +.glyphicons-icon.hand_down { + background-position: -380px -1621px; +} +.glyphicons-icon.fullscreen { + background-position: -428px -1621px; +} +.glyphicons-icon.shopping_bag { + background-position: 4px -1669px; +} +.glyphicons-icon.book_open { + background-position: -44px -1669px; +} +.glyphicons-icon.nameplate { + background-position: -92px -1669px; +} +.glyphicons-icon.nameplate_alt { + background-position: -140px -1669px; +} +.glyphicons-icon.vases { + background-position: -188px -1669px; +} +.glyphicons-icon.bullhorn { + background-position: -236px -1669px; +} +.glyphicons-icon.dumbbell { + background-position: -284px -1669px; +} +.glyphicons-icon.suitcase { + background-position: -332px -1669px; +} +.glyphicons-icon.file_import { + background-position: -380px -1669px; +} +.glyphicons-icon.file_export { + background-position: -428px -1669px; +} +.glyphicons-icon.bug { + background-position: 4px -1717px; +} +.glyphicons-icon.crown { + background-position: -44px -1717px; +} +.glyphicons-icon.smoking { + background-position: -92px -1717px; +} +.glyphicons-icon.cloud-upload { + background-position: -140px -1717px; +} +.glyphicons-icon.cloud-download { + background-position: -188px -1717px; +} +.glyphicons-icon.restart { + background-position: -236px -1717px; +} +.glyphicons-icon.security_camera { + background-position: -284px -1717px; +} +.glyphicons-icon.expand { + background-position: -332px -1717px; +} +.glyphicons-icon.collapse { + background-position: -380px -1717px; +} +.glyphicons-icon.collapse_top { + background-position: -428px -1717px; +} +.glyphicons-icon.globe_af { + background-position: 4px -1765px; +} +.glyphicons-icon.global { + background-position: -44px -1765px; +} +.glyphicons-icon.spray { + background-position: -92px -1765px; +} +.glyphicons-icon.nails { + background-position: -140px -1765px; +} +.glyphicons-icon.claw_hammer { + background-position: -188px -1765px; +} +.glyphicons-icon.classic_hammer { + background-position: -236px -1765px; +} +.glyphicons-icon.hand_saw { + background-position: -284px -1765px; +} +.glyphicons-icon.riflescope { + background-position: -332px -1765px; +} +.glyphicons-icon.electrical_socket_eu { + background-position: -380px -1765px; +} +.glyphicons-icon.electrical_socket_us { + background-position: -428px -1765px; +} +.glyphicons-icon.message_forward { + background-position: 4px -1813px; +} +.glyphicons-icon.coat_hanger { + background-position: -44px -1813px; +} +.glyphicons-icon.dress { + background-position: -92px -1813px; +} +.glyphicons-icon.bathrobe { + background-position: -140px -1813px; +} +.glyphicons-icon.shirt { + background-position: -188px -1813px; +} +.glyphicons-icon.underwear { + background-position: -236px -1813px; +} +.glyphicons-icon.log_in { + background-position: -284px -1813px; +} +.glyphicons-icon.log_out { + background-position: -332px -1813px; +} +.glyphicons-icon.exit { + background-position: -380px -1813px; +} +.glyphicons-icon.new_window_alt { + background-position: -428px -1813px; +} +.glyphicons-icon.video_sd { + background-position: 4px -1861px; +} +.glyphicons-icon.video_hd { + background-position: -44px -1861px; +} +.glyphicons-icon.subtitles { + background-position: -92px -1861px; +} +.glyphicons-icon.sound_stereo { + background-position: -140px -1861px; +} +.glyphicons-icon.sound_dolby { + background-position: -188px -1861px; +} +.glyphicons-icon.sound_5_1 { + background-position: -236px -1861px; +} +.glyphicons-icon.sound_6_1 { + background-position: -284px -1861px; +} +.glyphicons-icon.sound_7_1 { + background-position: -332px -1861px; +} +.glyphicons-icon.copyright_mark { + background-position: -380px -1861px; +} +.glyphicons-icon.registration_mark { + background-position: -428px -1861px; +} +.glyphicons-icon.radar { + background-position: 4px -1909px; +} +.glyphicons-icon.skateboard { + background-position: -44px -1909px; +} +.glyphicons-icon.golf_course { + background-position: -92px -1909px; +} +.glyphicons-icon.sorting { + background-position: -140px -1909px; +} +.glyphicons-icon.sort-by-alphabet { + background-position: -188px -1909px; +} +.glyphicons-icon.sort-by-alphabet-alt { + background-position: -236px -1909px; +} +.glyphicons-icon.sort-by-order { + background-position: -284px -1909px; +} +.glyphicons-icon.sort-by-order-alt { + background-position: -332px -1909px; +} +.glyphicons-icon.sort-by-attributes { + background-position: -380px -1909px; +} +.glyphicons-icon.sort-by-attributes-alt { + background-position: -428px -1909px; +} +.glyphicons-icon.compressed { + background-position: 4px -1957px; +} +.glyphicons-icon.package { + background-position: -44px -1957px; +} +.glyphicons-icon.cloud_plus { + background-position: -92px -1957px; +} +.glyphicons-icon.cloud_minus { + background-position: -140px -1957px; +} +.glyphicons-icon.disk_save { + background-position: -188px -1957px; +} +.glyphicons-icon.disk_open { + background-position: -236px -1957px; +} +.glyphicons-icon.disk_saved { + background-position: -284px -1957px; +} +.glyphicons-icon.disk_remove { + background-position: -332px -1957px; +} +.glyphicons-icon.disk_import { + background-position: -380px -1957px; +} +.glyphicons-icon.disk_export { + background-position: -428px -1957px; +} +.glyphicons-icon.tower { + background-position: 4px -2005px; +} +.glyphicons-icon.send { + background-position: -44px -2005px; +} +.glyphicons-icon.git_branch { + background-position: -92px -2005px; +} +.glyphicons-icon.git_create { + background-position: -140px -2005px; +} +.glyphicons-icon.git_private { + background-position: -188px -2005px; +} +.glyphicons-icon.git_delete { + background-position: -236px -2005px; +} +.glyphicons-icon.git_merge { + background-position: -284px -2005px; +} +.glyphicons-icon.git_pull_request { + background-position: -332px -2005px; +} +.glyphicons-icon.git_compare { + background-position: -380px -2005px; +} +.glyphicons-icon.git_commit { + background-position: -428px -2005px; +} +.glyphicons-icon.construction_cone { + background-position: 4px -2053px; +} +.glyphicons-icon.shoe_steps { + background-position: -44px -2053px; +} +.glyphicons-icon.plus { + background-position: -92px -2053px; +} +.glyphicons-icon.minus { + background-position: -140px -2053px; +} +.glyphicons-icon.redo { + background-position: -188px -2053px; +} +.glyphicons-icon.undo { + background-position: -236px -2053px; +} +.glyphicons-icon.golf { + background-position: -284px -2053px; +} +.glyphicons-icon.hockey { + background-position: -332px -2053px; +} +.glyphicons-icon.pipe { + background-position: -380px -2053px; +} +.glyphicons-icon.wrench { + background-position: -428px -2053px; +} +.glyphicons-icon.folder_closed { + background-position: 4px -2101px; +} +.glyphicons-icon.phone_alt { + background-position: -44px -2101px; +} +.glyphicons-icon.earphone { + background-position: -92px -2101px; +} +.glyphicons-icon.floppy_disk { + background-position: -140px -2101px; +} +.glyphicons-icon.floppy_saved { + background-position: -188px -2101px; +} +.glyphicons-icon.floppy_remove { + background-position: -236px -2101px; +} +.glyphicons-icon.floppy_save { + background-position: -284px -2101px; +} +.glyphicons-icon.floppy_open { + background-position: -332px -2101px; +} +.glyphicons-icon.translate { + background-position: -380px -2101px; +} +.glyphicons-icon.fax { + background-position: -428px -2101px; +} +.glyphicons-icon.factory { + background-position: 4px -2149px; +} +.glyphicons-icon.shop_window { + background-position: -44px -2149px; +} +.glyphicons-icon.shop { + background-position: -92px -2149px; +} +.glyphicons-icon.kiosk { + background-position: -140px -2149px; +} +.glyphicons-icon.kiosk_wheels { + background-position: -188px -2149px; +} +.glyphicons-icon.kiosk_light { + background-position: -236px -2149px; +} +.glyphicons-icon.kiosk_food { + background-position: -284px -2149px; +} +.glyphicons-icon.transfer { + background-position: -332px -2149px; +} +.glyphicons-icon.money { + background-position: -380px -2149px; +} +.glyphicons-icon.header { + background-position: -428px -2149px; +} +.glyphicons-icon.blacksmith { + background-position: 4px -2197px; +} +.glyphicons-icon.saw_blade { + background-position: -44px -2197px; +} +.glyphicons-icon.basketball { + background-position: -92px -2197px; +} +.glyphicons-icon.server { + background-position: -140px -2197px; +} +.glyphicons-icon.server_plus { + background-position: -188px -2197px; +} +.glyphicons-icon.server_minus { + background-position: -236px -2197px; +} +.glyphicons-icon.server_ban { + background-position: -284px -2197px; +} +.glyphicons-icon.server_flag { + background-position: -332px -2197px; +} +.glyphicons-icon.server_lock { + background-position: -380px -2197px; +} +.glyphicons-icon.server_new { + background-position: -428px -2197px; +} +/*! + * + * Project: GLYPHICONS HALFLINGS + * Author: Jan Kovarik - www.glyphicons.com + * Twitter: @jankovarik + * + */ +@font-face { + font-family: 'Glyphicons Social Regular'; + src: url('../fonts/glyphicons-social-regular.eot'); + src: url('../fonts/glyphicons-social-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-social-regular.woff') format('woff'), url('../fonts/glyphicons-social-regular.ttf') format('truetype'), url('../fonts/glyphicons-social-regular.svg#glyphicons_socialregular') format('svg'); + font-weight: normal; + font-style: normal; +} +.social { + display: inline-block; + position: relative; + padding-left: 30px; + color: #1d1d1b; + text-decoration: none; + *display: inline; + *zoom: 1; + vertical-align: middle; +} +.social:before { + position: absolute; + left: 0; + top: 0; + display: inline-block; + margin: 0 5px 0 0; + font: 24px/1em 'Glyphicons Social Regular'; + font-style: normal; + font-weight: normal; + color: #1d1d1b; + *display: inline; + *zoom: 1; + vertical-align: middle; + text-transform: none; + -webkit-font-smoothing: antialiased; +} +.social.white:before { + color: #fff; +} +.social.pinterest:before { + content: "\E001"; +} +.social.dropbox:before { + content: "\E002"; +} +.social.google_plus:before { + content: "\E003"; +} +.social.jolicloud:before { + content: "\E004"; +} +.social.yahoo:before { + content: "\E005"; +} +.social.blogger:before { + content: "\E006"; +} +.social.picasa:before { + content: "\E007"; +} +.social.amazon:before { + content: "\E008"; +} +.social.tumblr:before { + content: "\E009"; +} +.social.wordpress:before { + content: "\E010"; +} +.social.instapaper:before { + content: "\E011"; +} +.social.evernote:before { + content: "\E012"; +} +.social.xing:before { + content: "\E013"; +} +.social.zootool:before { + content: "\E014"; +} +.social.dribbble:before { + content: "\E015"; +} +.social.deviantart:before { + content: "\E016"; +} +.social.read_it_later:before { + content: "\E017"; +} +.social.linked_in:before { + content: "\E018"; +} +.social.forrst:before { + content: "\E019"; +} +.social.pinboard:before { + content: "\E020"; +} +.social.behance:before { + content: "\E021"; +} +.social.github:before { + content: "\E022"; +} +.social.youtube:before { + content: "\E023"; +} +.social.skitch:before { + content: "\E024"; +} +.social.foursquare:before { + content: "\E025"; +} +.social.quora:before { + content: "\E026"; +} +.social.badoo:before { + content: "\E027"; +} +.social.spotify:before { + content: "\E028"; +} +.social.stumbleupon:before { + content: "\E029"; +} +.social.readability:before { + content: "\E030"; +} +.social.facebook:before { + content: "\E031"; +} +.social.twitter:before { + content: "\E032"; +} +.social.instagram:before { + content: "\E033"; +} +.social.posterous_spaces:before { + content: "\E034"; +} +.social.vimeo:before { + content: "\E035"; +} +.social.flickr:before { + content: "\E036"; +} +.social.last_fm:before { + content: "\E037"; +} +.social.rss:before { + content: "\E038"; +} +.social.skype:before { + content: "\E039"; +} +.social.e-mail:before { + content: "\E040"; +} +.social.vine:before { + content: "\E041"; +} +.social.myspace:before { + content: "\E042"; +} +.social.goodreads:before { + content: "\E043"; +} +.social.apple:before { + content: "\F8FF"; +} +.social.windows:before { + content: "\E045"; +} +.social.yelp:before { + content: "\E046"; +} +.social.playstation:before { + content: "\E047"; +} +.social.xbox:before { + content: "\E048"; +} +.social.android:before { + content: "\E049"; +} +.social.ios:before { + content: "\E050"; +} +.social-icon { + display: inline-block; + width: 24px; + height: 24px; + margin: 0 8px 0 0; + line-height: 14px; + vertical-align: text-top; + background-image: url(../images/glyphicons_social.svg); + background-position: 0 0; + background-repeat: no-repeat; + vertical-align: top; + *display: inline; + *zoom: 1; + *margin-right: .3em; +} +.social-icon _:-o-prefocus, +.social-icon { + background-image: url(../images/glyphicons_social.png); +} +.no-inlinesvg .social-icon { + background-image: url(../images/glyphicons_social.png); +} +.social-icon.white { + background-image: url(../images/glyphicons_social-white.svg); +} +.social-icon.white _:-o-prefocus, +.social-icon.white { + background-image: url(../images/glyphicons_social-white.png); +} +.no-inlinesvg .social-icon.white { + background-image: url(../images/glyphicons_social-white.png); +} +.social-icon.pinterest { + background-position: 0px 0px; +} +.social-icon.dropbox { + background-position: -48px 0px; +} +.social-icon.google_plus { + background-position: -96px 0px; +} +.social-icon.jolicloud { + background-position: -144px 0px; +} +.social-icon.yahoo { + background-position: -192px 0px; +} +.social-icon.blogger { + background-position: -240px 0px; +} +.social-icon.picasa { + background-position: -288px 0px; +} +.social-icon.amazon { + background-position: -336px 0px; +} +.social-icon.tumblr { + background-position: -384px 0px; +} +.social-icon.wordpress { + background-position: -432px 0px; +} +.social-icon.instapaper { + background-position: 0px -48px; +} +.social-icon.evernote { + background-position: -48px -48px; +} +.social-icon.xing { + background-position: -96px -48px; +} +.social-icon.zootool { + background-position: -144px -48px; +} +.social-icon.dribbble { + background-position: -192px -48px; +} +.social-icon.deviantart { + background-position: -240px -48px; +} +.social-icon.read_it_later { + background-position: -288px -48px; +} +.social-icon.linked_in { + background-position: -336px -48px; +} +.social-icon.forrst { + background-position: -384px -48px; +} +.social-icon.pinboard { + background-position: -432px -48px; +} +.social-icon.behance { + background-position: 0px -96px; +} +.social-icon.github { + background-position: -48px -96px; +} +.social-icon.youtube { + background-position: -96px -96px; +} +.social-icon.skitch { + background-position: -144px -96px; +} +.social-icon.foursquare { + background-position: -192px -96px; +} +.social-icon.quora { + background-position: -240px -96px; +} +.social-icon.badoo { + background-position: -288px -96px; +} +.social-icon.spotify { + background-position: -336px -96px; +} +.social-icon.stumbleupon { + background-position: -384px -96px; +} +.social-icon.readability { + background-position: -432px -96px; +} +.social-icon.facebook { + background-position: 0px -144px; +} +.social-icon.twitter { + background-position: -48px -144px; +} +.social-icon.instagram { + background-position: -96px -144px; +} +.social-icon.posterous_spaces { + background-position: -144px -144px; +} +.social-icon.vimeo { + background-position: -192px -144px; +} +.social-icon.flickr { + background-position: -240px -144px; +} +.social-icon.last_fm { + background-position: -288px -144px; +} +.social-icon.rss { + background-position: -336px -144px; +} +.social-icon.skype { + background-position: -384px -144px; +} +.social-icon.e-mail { + background-position: -432px -144px; +} +.social-icon.vine { + background-position: 0px -192px; +} +.social-icon.myspace { + background-position: -48px -192px; +} +.social-icon.goodreads { + background-position: -96px -192px; +} +.social-icon.apple { + background-position: -144px -192px; +} +.social-icon.windows { + background-position: -192px -192px; +} +.social-icon.yelp { + background-position: -240px -192px; +} +.social-icon.playstation { + background-position: -288px -192px; +} +.social-icon.xbox { + background-position: -336px -192px; +} +.social-icon.android { + background-position: -384px -192px; +} +.social-icon.ios { + background-position: -432px -192px; +} +/*! + * + * Project: GLYPHICONS HALFLINGS + * Author: Jan Kovarik - www.glyphicons.com + * Twitter: @jankovarik + * + */ +@font-face { + font-family: 'Glyphicons Filetypes Regular'; + src: url('../fonts/glyphicons-filetypes-regular.eot'); + src: url('../fonts/glyphicons-filetypes-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-filetypes-regular.woff') format('woff'), url('../fonts/glyphicons-filetypes-regular.ttf') format('truetype'), url('../fonts/glyphicons-filetypes-regular.svg#glyphicons_filetypesregular') format('svg'); + font-weight: normal; + font-style: normal; +} +.filetype { + display: inline-block; + position: relative; + padding-left: 30px; + color: #1d1d1b; + text-decoration: none; + *display: inline; + *zoom: 1; + vertical-align: middle; +} +.filetype:before { + position: absolute; + left: 0; + top: 0; + display: inline-block; + margin: 0 5px 0 0; + font: 24px/1em 'Glyphicons Filetypes Regular'; + font-style: normal; + font-weight: normal; + color: #1d1d1b; + *display: inline; + *zoom: 1; + vertical-align: middle; + text-transform: none; + -webkit-font-smoothing: antialiased; +} +.filetype.white:before { + color: #fff; +} +.filetype.txt:before { + content: "\E001"; +} +.filetype.doc:before { + content: "\E002"; +} +.filetype.rtf:before { + content: "\E003"; +} +.filetype.log:before { + content: "\E004"; +} +.filetype.tex:before { + content: "\E005"; +} +.filetype.msg:before { + content: "\E006"; +} +.filetype.text:before { + content: "\E007"; +} +.filetype.wpd:before { + content: "\E008"; +} +.filetype.wps:before { + content: "\E009"; +} +.filetype.docx:before { + content: "\E010"; +} +.filetype.page:before { + content: "\E011"; +} +.filetype.csv:before { + content: "\E012"; +} +.filetype.dat:before { + content: "\E013"; +} +.filetype.tar:before { + content: "\E014"; +} +.filetype.xml:before { + content: "\E015"; +} +.filetype.vcf:before { + content: "\E016"; +} +.filetype.pps:before { + content: "\E017"; +} +.filetype.key:before { + content: "\1F511"; +} +.filetype.ppt:before { + content: "\E019"; +} +.filetype.pptx:before { + content: "\E020"; +} +.filetype.sdf:before { + content: "\E021"; +} +.filetype.gbr:before { + content: "\E022"; +} +.filetype.ged:before { + content: "\E023"; +} +.filetype.mp3:before { + content: "\E024"; +} +.filetype.m4a:before { + content: "\E025"; +} +.filetype.waw:before { + content: "\E026"; +} +.filetype.wma:before { + content: "\E027"; +} +.filetype.mpa:before { + content: "\E028"; +} +.filetype.iff:before { + content: "\E029"; +} +.filetype.aif:before { + content: "\E030"; +} +.filetype.ra:before { + content: "\E031"; +} +.filetype.mid:before { + content: "\E032"; +} +.filetype.m3v:before { + content: "\E033"; +} +.filetype.e_3gp:before { + content: "\E034"; +} +.filetype.shf:before { + content: "\E035"; +} +.filetype.avi:before { + content: "\E036"; +} +.filetype.asx:before { + content: "\E037"; +} +.filetype.mp4:before { + content: "\E038"; +} +.filetype.e_3g2:before { + content: "\E039"; +} +.filetype.mpg:before { + content: "\E040"; +} +.filetype.asf:before { + content: "\E041"; +} +.filetype.vob:before { + content: "\E042"; +} +.filetype.wmv:before { + content: "\E043"; +} +.filetype.mov:before { + content: "\E044"; +} +.filetype.srt:before { + content: "\E045"; +} +.filetype.m4v:before { + content: "\E046"; +} +.filetype.flv:before { + content: "\E047"; +} +.filetype.rm:before { + content: "\E048"; +} +.filetype.png:before { + content: "\E049"; +} +.filetype.psd:before { + content: "\E050"; +} +.filetype.psp:before { + content: "\E051"; +} +.filetype.jpg:before { + content: "\E052"; +} +.filetype.tif:before { + content: "\E053"; +} +.filetype.tiff:before { + content: "\E054"; +} +.filetype.gif:before { + content: "\E055"; +} +.filetype.bmp:before { + content: "\E056"; +} +.filetype.tga:before { + content: "\E057"; +} +.filetype.thm:before { + content: "\E058"; +} +.filetype.yuv:before { + content: "\E059"; +} +.filetype.dds:before { + content: "\E060"; +} +.filetype.ai:before { + content: "\E061"; +} +.filetype.eps:before { + content: "\E062"; +} +.filetype.ps:before { + content: "\E063"; +} +.filetype.svg:before { + content: "\E064"; +} +.filetype.pdf:before { + content: "\E065"; +} +.filetype.pct:before { + content: "\E066"; +} +.filetype.indd:before { + content: "\E067"; +} +.filetype.xlr:before { + content: "\E068"; +} +.filetype.xls:before { + content: "\E069"; +} +.filetype.xlsx:before { + content: "\E070"; +} +.filetype.db:before { + content: "\E071"; +} +.filetype.dbf:before { + content: "\E072"; +} +.filetype.mdb:before { + content: "\E073"; +} +.filetype.pdb:before { + content: "\E074"; +} +.filetype.sql:before { + content: "\E075"; +} +.filetype.aacd:before { + content: "\E076"; +} +.filetype.app:before { + content: "\E077"; +} +.filetype.exe:before { + content: "\E078"; +} +.filetype.com:before { + content: "\E079"; +} +.filetype.bat:before { + content: "\E080"; +} +.filetype.apk:before { + content: "\E081"; +} +.filetype.jar:before { + content: "\E082"; +} +.filetype.hsf:before { + content: "\E083"; +} +.filetype.pif:before { + content: "\E084"; +} +.filetype.vb:before { + content: "\E085"; +} +.filetype.cgi:before { + content: "\E086"; +} +.filetype.css:before { + content: "\E087"; +} +.filetype.js:before { + content: "\E088"; +} +.filetype.php:before { + content: "\E089"; +} +.filetype.xhtml:before { + content: "\E090"; +} +.filetype.htm:before { + content: "\E091"; +} +.filetype.html:before { + content: "\E092"; +} +.filetype.asp:before { + content: "\E093"; +} +.filetype.cer:before { + content: "\E094"; +} +.filetype.jsp:before { + content: "\E095"; +} +.filetype.cfm:before { + content: "\E096"; +} +.filetype.aspx:before { + content: "\E097"; +} +.filetype.rss:before { + content: "\E098"; +} +.filetype.csr:before { + content: "\E099"; +} +.filetype.less:before { + content: "\003C"; +} +.filetype.otf:before { + content: "\E101"; +} +.filetype.ttf:before { + content: "\E102"; +} +.filetype.font:before { + content: "\E103"; +} +.filetype.fnt:before { + content: "\E104"; +} +.filetype.eot:before { + content: "\E105"; +} +.filetype.woff:before { + content: "\E106"; +} +.filetype.zip:before { + content: "\E107"; +} +.filetype.zipx:before { + content: "\E108"; +} +.filetype.rar:before { + content: "\E109"; +} +.filetype.targ:before { + content: "\E110"; +} +.filetype.sitx:before { + content: "\E111"; +} +.filetype.deb:before { + content: "\E112"; +} +.filetype.e_7z:before { + content: "\E113"; +} +.filetype.pkg:before { + content: "\E114"; +} +.filetype.rpm:before { + content: "\E115"; +} +.filetype.cbr:before { + content: "\E116"; +} +.filetype.gz:before { + content: "\E117"; +} +.filetype.dmg:before { + content: "\E118"; +} +.filetype.cue:before { + content: "\E119"; +} +.filetype.bin:before { + content: "\E120"; +} +.filetype.iso:before { + content: "\E121"; +} +.filetype.hdf:before { + content: "\E122"; +} +.filetype.vcd:before { + content: "\E123"; +} +.filetype.bak:before { + content: "\E124"; +} +.filetype.tmp:before { + content: "\E125"; +} +.filetype.ics:before { + content: "\E126"; +} +.filetype.msi:before { + content: "\E127"; +} +.filetype.cfg:before { + content: "\E128"; +} +.filetype.ini:before { + content: "\E129"; +} +.filetype.prf:before { + content: "\E130"; +} +.filetype-icon { + display: inline-block; + width: 19px; + height: 24px; + margin: 0 8px 0 0; + line-height: 14px; + vertical-align: text-top; + background-image: url(../images/glyphicons_filetypes.svg); + background-position: 0 0; + background-repeat: no-repeat; + vertical-align: top; + *display: inline; + *zoom: 1; + *margin-right: .3em; +} +.filetype-icon _:-o-prefocus, +.filetype-icon { + background-image: url(../images/glyphicons_filetypes.png); +} +.no-inlinesvg .filetype-icon { + background-image: url(../images/glyphicons_filetypes.png); +} +.filetype-icon.white { + background-image: url(../images/glyphicons_filetypes-white.svg); +} +.filetype-icon.white _:-o-prefocus, +.filetype-icon.white { + background-image: url(../images/glyphicons_filetypes-white.png); +} +.no-inlinesvg .filetype-icon.white { + background-image: url(../images/glyphicons_filetypes-white.png); +} +.filetype-icon.txt { + background-position: 0px 0px; +} +.filetype-icon.doc { + background-position: -48px 0px; +} +.filetype-icon.rtf { + background-position: -96px 0px; +} +.filetype-icon.log { + background-position: -144px 0px; +} +.filetype-icon.tex { + background-position: -192px 0px; +} +.filetype-icon.msg { + background-position: -240px 0px; +} +.filetype-icon.text { + background-position: -288px 0px; +} +.filetype-icon.wpd { + background-position: -336px 0px; +} +.filetype-icon.wps { + background-position: -384px 0px; +} +.filetype-icon.docx { + background-position: -432px 0px; +} +.filetype-icon.page { + background-position: 0px -48px; +} +.filetype-icon.csv { + background-position: -48px -48px; +} +.filetype-icon.dat { + background-position: -96px -48px; +} +.filetype-icon.tar { + background-position: -144px -48px; +} +.filetype-icon.xml { + background-position: -192px -48px; +} +.filetype-icon.vcf { + background-position: -240px -48px; +} +.filetype-icon.pps { + background-position: -288px -48px; +} +.filetype-icon.key { + background-position: -336px -48px; +} +.filetype-icon.ppt { + background-position: -384px -48px; +} +.filetype-icon.pptx { + background-position: -432px -48px; +} +.filetype-icon.sdf { + background-position: 0px -96px; +} +.filetype-icon.gbr { + background-position: -48px -96px; +} +.filetype-icon.ged { + background-position: -96px -96px; +} +.filetype-icon.mp3 { + background-position: -144px -96px; +} +.filetype-icon.m4a { + background-position: -192px -96px; +} +.filetype-icon.waw { + background-position: -240px -96px; +} +.filetype-icon.wma { + background-position: -288px -96px; +} +.filetype-icon.mpa { + background-position: -336px -96px; +} +.filetype-icon.iff { + background-position: -384px -96px; +} +.filetype-icon.aif { + background-position: -432px -96px; +} +.filetype-icon.ra { + background-position: 0px -144px; +} +.filetype-icon.mid { + background-position: -48px -144px; +} +.filetype-icon.m3v { + background-position: -96px -144px; +} +.filetype-icon.e_3gp { + background-position: -144px -144px; +} +.filetype-icon.shf { + background-position: -192px -144px; +} +.filetype-icon.avi { + background-position: -240px -144px; +} +.filetype-icon.asx { + background-position: -288px -144px; +} +.filetype-icon.mp4 { + background-position: -336px -144px; +} +.filetype-icon.e_3g2 { + background-position: -384px -144px; +} +.filetype-icon.mpg { + background-position: -432px -144px; +} +.filetype-icon.asf { + background-position: 0px -192px; +} +.filetype-icon.vob { + background-position: -48px -192px; +} +.filetype-icon.wmv { + background-position: -96px -192px; +} +.filetype-icon.mov { + background-position: -144px -192px; +} +.filetype-icon.srt { + background-position: -192px -192px; +} +.filetype-icon.m4v { + background-position: -240px -192px; +} +.filetype-icon.flv { + background-position: -288px -192px; +} +.filetype-icon.rm { + background-position: -336px -192px; +} +.filetype-icon.png { + background-position: -384px -192px; +} +.filetype-icon.psd { + background-position: -432px -192px; +} +.filetype-icon.psp { + background-position: 0px -240px; +} +.filetype-icon.jpg { + background-position: -48px -240px; +} +.filetype-icon.tif { + background-position: -96px -240px; +} +.filetype-icon.tiff { + background-position: -144px -240px; +} +.filetype-icon.gif { + background-position: -192px -240px; +} +.filetype-icon.bmp { + background-position: -240px -240px; +} +.filetype-icon.tga { + background-position: -288px -240px; +} +.filetype-icon.thm { + background-position: -336px -240px; +} +.filetype-icon.yuv { + background-position: -384px -240px; +} +.filetype-icon.dds { + background-position: -432px -240px; +} +.filetype-icon.ai { + background-position: 0px -288px; +} +.filetype-icon.eps { + background-position: -48px -288px; +} +.filetype-icon.ps { + background-position: -96px -288px; +} +.filetype-icon.svg { + background-position: -144px -288px; +} +.filetype-icon.pdf { + background-position: -192px -288px; +} +.filetype-icon.pct { + background-position: -240px -288px; +} +.filetype-icon.indd { + background-position: -288px -288px; +} +.filetype-icon.xlr { + background-position: -336px -288px; +} +.filetype-icon.xls { + background-position: -384px -288px; +} +.filetype-icon.xlsx { + background-position: -432px -288px; +} +.filetype-icon.db { + background-position: 0px -336px; +} +.filetype-icon.dbf { + background-position: -48px -336px; +} +.filetype-icon.mdb { + background-position: -96px -336px; +} +.filetype-icon.pdb { + background-position: -144px -336px; +} +.filetype-icon.sql { + background-position: -192px -336px; +} +.filetype-icon.aacd { + background-position: -240px -336px; +} +.filetype-icon.app { + background-position: -288px -336px; +} +.filetype-icon.exe { + background-position: -336px -336px; +} +.filetype-icon.com { + background-position: -384px -336px; +} +.filetype-icon.bat { + background-position: -432px -336px; +} +.filetype-icon.apk { + background-position: 0px -384px; +} +.filetype-icon.jar { + background-position: -48px -384px; +} +.filetype-icon.hsf { + background-position: -96px -384px; +} +.filetype-icon.pif { + background-position: -144px -384px; +} +.filetype-icon.vb { + background-position: -192px -384px; +} +.filetype-icon.cgi { + background-position: -240px -384px; +} +.filetype-icon.css { + background-position: -288px -384px; +} +.filetype-icon.js { + background-position: -336px -384px; +} +.filetype-icon.php { + background-position: -384px -384px; +} +.filetype-icon.xhtml { + background-position: -432px -384px; +} +.filetype-icon.htm { + background-position: 0px -432px; +} +.filetype-icon.html { + background-position: -48px -432px; +} +.filetype-icon.asp { + background-position: -96px -432px; +} +.filetype-icon.cer { + background-position: -144px -432px; +} +.filetype-icon.jsp { + background-position: -192px -432px; +} +.filetype-icon.cfm { + background-position: -240px -432px; +} +.filetype-icon.aspx { + background-position: -288px -432px; +} +.filetype-icon.rss { + background-position: -336px -432px; +} +.filetype-icon.csr { + background-position: -384px -432px; +} +.filetype-icon.less { + background-position: -432px -432px; +} +.filetype-icon.otf { + background-position: 0px -480px; +} +.filetype-icon.ttf { + background-position: -48px -480px; +} +.filetype-icon.font { + background-position: -96px -480px; +} +.filetype-icon.fnt { + background-position: -144px -480px; +} +.filetype-icon.eot { + background-position: -192px -480px; +} +.filetype-icon.woff { + background-position: -240px -480px; +} +.filetype-icon.zip { + background-position: -288px -480px; +} +.filetype-icon.zipx { + background-position: -336px -480px; +} +.filetype-icon.rar { + background-position: -384px -480px; +} +.filetype-icon.targ { + background-position: -432px -480px; +} +.filetype-icon.sitx { + background-position: 0px -528px; +} +.filetype-icon.deb { + background-position: -48px -528px; +} +.filetype-icon.e_7z { + background-position: -96px -528px; +} +.filetype-icon.pkg { + background-position: -144px -528px; +} +.filetype-icon.rpm { + background-position: -192px -528px; +} +.filetype-icon.cbr { + background-position: -240px -528px; +} +.filetype-icon.gz { + background-position: -288px -528px; +} +.filetype-icon.dmg { + background-position: -336px -528px; +} +.filetype-icon.cue { + background-position: -384px -528px; +} +.filetype-icon.bin { + background-position: -432px -528px; +} +.filetype-icon.iso { + background-position: 0px -576px; +} +.filetype-icon.hdf { + background-position: -48px -576px; +} +.filetype-icon.vcd { + background-position: -96px -576px; +} +.filetype-icon.bak { + background-position: -144px -576px; +} +.filetype-icon.tmp { + background-position: -192px -576px; +} +.filetype-icon.ics { + background-position: -240px -576px; +} +.filetype-icon.msi { + background-position: -288px -576px; +} +.filetype-icon.cfg { + background-position: -336px -576px; +} +.filetype-icon.ini { + background-position: -384px -576px; +} +.filetype-icon.prf { + background-position: -432px -576px; +} +html { + -webkit-font-smoothing: antialiased !important; +} +html, +body { + height: 100%; + margin: 0px; + padding: 0px; +} +body { + font-family: Meiryo UI, 'Open Sans', sans-serif; + background: #ffffff url(../images/pattern1.png) repeat; + font-size: 10pt; + padding-bottom: 35px; +} +.lbl { + padding: 0 10px 0 35px; + background-color: #468ccb; + height: 40px; + line-height: 40px; + margin-right: 10px; + color: #fff; +} +.selectpicker.col-md-6 { + width: 49.5%; +} +button::-moz-focus-inner { + border: 0; +} +a { + color: #468ccb; +} +a:hover { + color: #333; +} +h1, +h2, +h3, +h4, +h5, +h6 { + font-family: Meiryo UI, 'Raleway', sans-serif; + margin: 0 0 10px; + line-height: 40px; + font-weight: 700; + color: #575655; +} +h1.glyphicons, +h2.glyphicons, +h3.glyphicons, +h4.glyphicons, +h5.glyphicons, +h6.glyphicons { + color: #575655; +} +h1 span, +h2 span, +h3 span, +h4 span, +h5 span, +h6 span { + color: #dadada; + font-weight: 400; + padding: 0 5px; + font-style: italic; + font-size: 70%; +} +h1, +h2, +h3 { + text-shadow: 0 1px 0 #fff; +} +h1 { + color: #575655; +} +h1 span { + color: #d67170; +} +h2 { + font-size: 26pt; + color: #575655; +} +h4, +h3 { + color: #575655; +} +.heading-buttons h1, +.heading-buttons h2, +.heading-buttons h3, +.heading-buttons h4, +.heading-buttons h5, +.heading-buttons h6 { + display: inline-block; + line-height: 40px; + margin: 0 10px; +} +.heading-buttons h1.glyphicons, +.heading-buttons h2.glyphicons, +.heading-buttons h3.glyphicons, +.heading-buttons h4.glyphicons, +.heading-buttons h5.glyphicons, +.heading-buttons h6.glyphicons { + display: inline-block; +} +.heading-buttons .buttons { + margin-top: 4px; + margin-right: 10px; + text-align: right; +} +.heading-buttons .btn { + margin-right: 10px; +} +.heading-buttons .btn:last-child { + margin-right: 0; +} +h4.glyphicons { + padding: 0 0 0 35px; + display: block; +} +h4.glyphicons:before { + font-size: 22px; + font-weight: normal; + color: #575655; +} +h3.glyphicons, +h2.glyphicons { + padding: 0 0 0 45px; + margin-top: 0; + display: block; +} +h3.glyphicons:before, +h2.glyphicons:before { + font-size: 30px; + font-weight: normal; + top: 5px; + left: 2px; + color: #575655; +} +h3.glyphicons.cogwheels h3.glyphicons:before, +h3.glyphicons.cogwheels h2.glyphicons:before, +h2.glyphicons.cogwheels h3.glyphicons:before, +h2.glyphicons.cogwheels h2.glyphicons:before { + left: 5px; +} +p { + font-size: 12px; + margin: 0 0 10px; + line-height: normal; +} +p.glyphicons { + padding: 5px 0 10px 75px; +} +p.glyphicons:before { + color: #D67170; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.9); + font-size: 45pt; + top: -10px; +} +p.glyphicons.right { + padding: 0 75px 0 0; +} +p.glyphicons.right:before { + left: auto; + right: 0; +} +p.glyphicons.envelope:before { + top: -5px; +} +ul.icons { + text-align: left; + padding: 0 15px; +} +ul.icons:before { + color: #e09694; +} +ul.icons li { + display: block; +} +.strong { + font-weight: bold; +} +blockquote, +blockquote.pull-right { + border-color: #e0d5c6; +} +blockquote p { + font-family: Meiryo UI, 'Dancing Script', cursive; + font-weight: 400; + font-size: 25pt; + margin: 0 0 10px; +} +blockquote small { + color: #BAAC98; +} +.hide2 { + display: none; +} +pre.prettyprint { + word-break: normal; + word-wrap: normal; + white-space: pre; + background-color: #f8f8f8; + background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(50%, #f8f8f8), color-stop(50%, #eeeeee)); + background-image: -webkit-linear-gradient(#f8f8f8 50%, #eeeeee 50%); + background-image: -moz-linear-gradient(#f8f8f8 50%, #eeeeee 50%); + background-image: -o-linear-gradient(#f8f8f8 50%, #eeeeee 50%); + background-image: linear-gradient(#f8f8f8 50%, #eeeeee 50%); + -moz-background-size: 38px 38px; + background-size: 38px 38px; + border: 1px solid #d7d8da; + display: block; + line-height: 19px; + margin-bottom: 10px; + overflow: visible; + overflow-y: hidden; + padding: 0 0 0 4px; +} +pre.prettyprint .glyphicons { + padding: 0 0 0 20px; +} +pre.prettyprint .glyphicons:before { + font-size: 17px; + top: 1px; +} +.highlight-1 { + background: #D67170; + display: inline-block; + padding: 0 5px; + color: #fff; + text-shadow: 0 1px 0 rgba(0, 0, 0, 0.5); + -webkit-border-radius: 3px 3px 3px 3px; + -moz-border-radius: 3px 3px 3px 3px; + border-radius: 3px 3px 3px 3px; + font-weight: bold; +} +.separator { + padding: 10px 0; + display: block; +} +.separator.bottom { + padding: 0 0 10px; +} +hr { + border-top-color: #cbcccd; + margin: 10px 0; +} +hr.separator { + padding: 0 !important; +} +@media print { + @page { + size: auto; + margin: 10mm 10mm 10mm 10mm; + } + #content { + margin: 0 !important; + padding: 0 !important; + } + #tlyPageGuideWrapper, + .filter-bar, + .breadcrumb { + display: none !important; + } + .table { + border: none !important; + } + .table.table-bordered td, + .table.table-bordered th { + vertical-align: middle; + border: 1px solid #ccc !important; + border-collapse: collapse; + box-shadow: none; + -moz-box-shadow: none; + -webkit-box-shadow: none; + } + .table th { + padding: 3px; + text-align: center; + } + .table img { + float: left; + } +} +.glyphicons.standard { + width: 24px; + height: 24px; + padding: 0; +} +.glyphicons.single { + color: #468ccb; + padding: 0 0 0 20px; +} +.glyphicons.single:before { + font-size: 13px; + top: 4px; + color: #468ccb; +} +.glyphicons.text-error { + color: #468ccb; +} +.glyphicons.text-error:before { + color: #468ccb; +} +.glyphicons.text-info { + color: #5d92b3; +} +.glyphicons.text-info:before { + color: #5d92b3; +} +.glyphicons.text-success { + color: #719d46; +} +.glyphicons.text-success:before { + color: #719d46; +} +.glyphicons.btn-action { + width: 25px; + height: 25px; + padding: 0; + -webkit-border-radius: 5px 5px 5px 5px; + -moz-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + border-width: 1px; + border-style: solid; + vertical-align: middle; +} +.glyphicons.btn-action:before { + font-size: 14px; + top: 5px; + left: 5px; +} +.glyphicons.btn-action.glyphicons.btn-info { + background: #c2d5e1; + border: 1px solid rgba(0, 0, 0, 0.1); +} +.glyphicons.btn-action.glyphicons.btn-info:before { + color: #7ea6bf; +} +.glyphicons.btn-action.glyphicons.btn-success { + background: #d1e1c2; + border: 1px solid rgba(0, 0, 0, 0.1); +} +.glyphicons.btn-action.glyphicons.btn-success:before { + color: #9dbf7e; +} +.glyphicons.btn-action.glyphicons.btn-danger { + background: #f7b6b6; + border: 1px solid rgba(0, 0, 0, 0.1); +} +.glyphicons.btn-action.glyphicons.btn-danger:before { + color: #ed5a5a; +} +.glyphicons.btn-action.single { + box-shadow: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + border: none; + background: none; + margin-right: 10px; +} +.glyphicons.btn-icon { + padding: 5px 7px 5px 40px; +} +.glyphicons.btn-icon:before { + font-size: 15px; + color: rgba(255, 255, 255, 0.3); + background: rgba(0, 0, 0, 0.1); + width: 33px; + height: 30px; + -webkit-border-radius: 3px 0px 0px 3px; + -moz-border-radius: 3px 0px 0px 3px; + border-radius: 3px 0px 0px 3px; + padding: 7px 0 0; + border-right: 1px solid rgba(0, 0, 0, 0.15); + text-align: center; +} +.glyphicons.btn-icon.right { + text-align: left; +} +.glyphicons.btn-icon.right:before { + -webkit-border-radius: 0 3px 3px 0; + -moz-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; + right: 0; + left: auto; + border-right: none; + border-left: 1px solid rgba(255, 255, 255, 0.5); + text-align: center; +} +.glyphicons.btn-large { + padding: 10px 10px 10px 40px; +} +.glyphicons.btn-large:before { + top: 12px; + left: 12px; + font-size: 17px; +} +.glyphicons.btn-large.btn-icon:before { + top: 0; + left: 0; + height: 40px; + padding: 12px 0 0; +} +.glyphicons.btn-small { + padding: 2px 10px 2px 35px; +} +.glyphicons.btn-small:before { + padding: 5px 0 0; + width: 28px; + height: 19px; + font-size: 14px; +} +.glyphicons.btn-small.btn-icon:before { + top: 0; + left: 0; + height: 25px; + padding: 5px 0 0; +} +.glyphicons.btn-mini { + padding: 1px 6px 1px 33px; +} +.glyphicons.btn-mini:before { + padding: 5px 0 0; + width: 26px; + height: 23px; + font-size: 13px; +} +.glyphicons.orange .glyphicons:before { + color: #EDB459; +} +.glyphicons.btn-default.btn-icon:before { + /*font-size: 15px; */ + + color: rgba(0, 0, 0, 0.3); + background: rgba(255, 255, 255, 0.7); + /*width: 33px; + height: 40px; + .rounded(3px, 0px, 0px, 3px); + padding: 7px 0 0; + border-right: 1px solid rgba(0,0,0,.2); + text-align: center; */ + +} +.glyphicons.white:before { + color: #fff; +} +.glyphicons.toggle { + padding-left: 0; + padding-top: 0; +} +.glyphicons.toggle:before { + margin: 2px; + padding: 0 4px 2px 4px; + line-height: 20px; + position: relative; + color: #ffffff; + font-size: 18px; +} +#docs_icons { + padding: 0 20px; + margin-top: 10px; +} +#docs_icons a { + display: block; + height: 50px; + border: 1px solid #efefef; + margin: 0 5px 10px 0; + padding-right: 10px; +} +#docs_icons a strong { + line-height: 50px; + font-weight: normal; +} +#docs_icons a span { + display: none; +} +#docs_icons a.glyphicons, +#docs_icons a.social, +#docs_icons a.filetype { + display: inline-block; + *display: inline; + *zoom: 1; + font-size: 12px; + line-height: 48px; + overflow: hidden; + padding-left: 50px; + text-align: left; +} +#docs_icons a.glyphicons:before, +#docs_icons a.social:before, +#docs_icons a.filetype:before { + color: #468ccb; + line-height: 50px; + padding-left: 10px; + line-height: 55px !important; +} +.muted { + color: #999; +} +.innerLR { + padding: 0 10px; + position: relative; +} +.innerTB { + padding: 10px 0; + position: relative; +} +.innerAll { + padding: 10px; + position: relative; +} +.innerL { + padding-left: 10px; + position: relative; +} +.innerR { + padding-right: 10px; + position: relative; +} +.innerT { + padding-top: 10px; + position: relative; +} +.innerB { + padding-bottom: 10px; + position: relative; +} +.innerLR-none { + padding-left: 0 !important; + padding-right: 0 !important; +} +.center { + text-align: center !important; +} +.right { + text-align: right; +} +.relativeWrap { + position: relative; +} +.margin-bottom-none { + margin-bottom: 0; +} +.margin-none { + margin: 0 !important; +} +.padding-none { + padding: 0 !important; +} +.text-primary { + color: #468ccb; +} +#wrapper { + position: relative; + overflow: hidden; + float: left; + width: 100%; +} +.container { + padding: 0; + max-width: 100%; + background: #f5f5f5; +} +.container.fluid { + position: relative; +} +.container.documentation { + background: #fff; +} +.fixed { + width: 960px; + margin: 20px auto; + border: 1px solid #ddd; +} +#content { + position: relative; + overflow: hidden; + margin: 0 0 0 234px; + background: #fff; + min-width: 320px; +} +#content.fluid { + margin-left: 0; +} +#content > p { + padding: 5px 10px; +} +#content > h1, +#content > h2, +#content > h3, +#content > h4, +#content > h5, +#content > h6 { + margin: 0 10px 10px; +} +#content .heading-arrow { + text-transform: uppercase; + border-bottom: 1px solid #dddddd; + margin: 0 0 10px; + padding: 0 10px; + font-size: 11pt; + height: 35px; + line-height: 30px; + position: relative; +} +#content .heading-arrow:after { + content: ""; + display: inline-block; + width: 0; + height: 0; + border-bottom: 8px solid #ddd; + border-right: 8px solid transparent; + border-left: 8px solid transparent; + position: absolute; + bottom: 0; + left: 15px; +} +#content .heading-arrow.glyphicons { + padding: 0 10px 0 40px; +} +#content .heading-arrow.glyphicons:before { + font-size: 17px; + left: 15px; +} +#content .heading-arrow.margin-bottom-none { + margin-bottom: 0; +} +#content > .widget { + border-left: 0; + border-right: 0; +} +#content > .widget .widget-head, +#content > .widget .widget-body { + border-left: 0; + border-right: 0; +} +#content > .table { + border-left: none; + border-right: none; +} +#content > .table tr td:first-child { + border-left: none; +} +#footer { + height: 35px; + background: #444; + /*background: #272729;*/ + border-top: 1px solid #010101; + position: fixed; + bottom: 0; + z-index: 20000; + left: 0; + right: 0; +} +#footer .wrap { + background: #444; + /*background: #272729;*/ + display: block; + position: absolute; + width: 100%; + height: 100%; + left: 0; + padding: 0; + border-top: 1px solid #494E53; +} +#footer .wrap > ul { + margin: 0; + padding: 0; + list-style: none; +} +#footer .wrap > ul > li { + float: left; + display: block; + border-right: 1px solid #232323; + line-height: 35px; + height: 35px; +} +#footer .wrap > ul > li > span:first-child, +#footer .wrap > ul > li > a { + border-left: 1px solid #535353; + display: block; + width: auto; + cursor: pointer; + padding: 0 10px; + text-align: center; + line-height: 35px; + text-decoration: none; + color: #797979; + font-weight: bold; +} +#footer .wrap > ul > li > span:first-child:before, +#footer .wrap > ul > li > a:before { + line-height: 35px; + position: relative; + color: #797979; + left: auto; + top: -2px; + font-size: 20px; + vertical-align: middle; + font-weight: normal; +} +#footer .wrap > ul > li > span:first-child.text span, +#footer .wrap > ul > li > a.text span { + margin-left: 5px; +} +#footer .wrap > ul > li.active > span:first-child, +#footer .wrap > ul > li:hover > span:first-child, +#footer .wrap > ul > li.active > a, +#footer .wrap > ul > li:hover > a { + color: #e6e6e6; +} +#footer .wrap > ul > li.active > span:first-child:before, +#footer .wrap > ul > li:hover > span:first-child:before, +#footer .wrap > ul > li.active > a:before, +#footer .wrap > ul > li:hover > a:before { + color: #e6e6e6; +} +#footer .dropdown-menu { + background: #f5f5f5; + border: 1px solid #dddddd; + border-top: none; + box-shadow: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + padding: 0; + -webkit-border-radius: 0 0 0 0; + -moz-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; + margin-bottom: 2px; +} +#footer .dropdown-menu li { + border-bottom: 1px solid #dddddd; +} +#footer .dropdown-menu li:last-child { + border-bottom: none; +} +#footer .dropdown-menu li:first-child > a, +#footer .dropdown-menu li:first-child > a:hover, +#footer .dropdown-menu li:first-child > span { + border-top: none; +} +#footer .dropdown-menu li > a, +#footer .dropdown-menu li > a:hover, +#footer .dropdown-menu li > span { + height: 38px; + line-height: 38px; + padding: 0 10px; + border-top: 1px solid #ffffff; + display: block; + background: #f5f5f5; + color: #333; +} +#footer .dropdown-menu li > a.glyphicons:before, +#footer .dropdown-menu li > a:hover.glyphicons:before, +#footer .dropdown-menu li > span.glyphicons:before { + left: auto; + right: 10px; + top: 8px; + font-size: 17px; + color: #c4c4c4; +} +#footer .dropdown-menu li.active { + background: #ddd; +} +#footer .dropdown-menu li.active a { + background: #ddd; +} +#footer .dropdown-menu li.highlight > a, +#footer .dropdown-menu li.highlight > a:hover, +#footer .dropdown-menu li.highlight > span { + background: #fff; +} +#footer .dropdown-menu li.highlight.profile > a, +#footer .dropdown-menu li.highlight.profile > a:hover, +#footer .dropdown-menu li.highlight.profile > span { + height: auto; + line-height: normal; + padding: 5px 10px 10px; +} +#footer .dropdown-menu li.highlight.profile > a .heading, +#footer .dropdown-menu li.highlight.profile > a:hover .heading, +#footer .dropdown-menu li.highlight.profile > span .heading { + display: block; + text-transform: uppercase; + margin-bottom: 5px; +} +#footer .dropdown-menu li.highlight.profile > a .heading a, +#footer .dropdown-menu li.highlight.profile > a:hover .heading a, +#footer .dropdown-menu li.highlight.profile > span .heading a { + text-transform: none; +} +#footer .dropdown-menu li.highlight.profile > a .img, +#footer .dropdown-menu li.highlight.profile > a:hover .img, +#footer .dropdown-menu li.highlight.profile > span .img { + display: inline-block; + float: left; + width: 47px; + height: 45px; + line-height: 45px; + background: #272729; + text-align: center; + content: "\e004"; + color: #525254; + font-family: "Glyphicons Regular"; + margin: 0 10px 0 0; + position: relative; +} +#footer .dropdown-menu li.highlight.profile > a .clearfix, +#footer .dropdown-menu li.highlight.profile > a:hover .clearfix, +#footer .dropdown-menu li.highlight.profile > span .clearfix { + display: block; +} +.navbar.main { + -webkit-border-radius: 0 0 0 0; + -moz-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; + background-color: #468ccb; + box-shadow: 0px 3px 8px rgba(0, 0, 0, 0.1); + margin: 0; + padding: 0; + min-height: 50px; + position: relative; + border: none; +} +.navbar.main .appbrand { + font-family: Meiryo UI, 'Raleway', sans-serif; + color: #dedede; + font-size: 18pt; +/* text-transform: uppercase;*/ + font-weight: 700; + display: inline-block; + text-decoration: none; + height: 50px; + padding: 0 0 0 10px; + line-height: normal; + width: 225px; + border-right: 1px solid #367fc1; +} +.navbar.main .appbrand > span { + border-right: 1px solid #2b6599; + display: block; + height: 50px; +} +.navbar.main .appbrand > span span { + display: block; + font-size: 8pt; + color: #ffffff; + line-height: normal; +/* margin: -4px 0 0;*/ +} +.navbar.main .btn-navbar { + padding: 0; + margin: 0; + position: absolute; + float: none; + left: 195px; + top: 12px; + display: block; + background: #468ccb; + -webkit-border-radius: 0 0 0 0; + -moz-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.navbar.main .btn-navbar .icon-bar { + background: #999; +} +.navbar.main .topnav { + border-left: 1px solid #2b6599; +} +.navbar.main .topnav, +.navbar.main .topnav ul { + margin: 0; + padding: 0; + list-style: none; +} +.navbar.main .topnav > li { + border-left: 1px solid #367fc1; + border-right: 1px solid #2b6599; + position: relative; +} +.navbar.main .topnav.pull-left { + border-right: 1px solid #367fc1; +} +.navbar.main .topnav.pull-left:first-of-type { + border-left: none; +} +.navbar.main .topnav.pull-left:first-of-type li:first-child { + border-left: none; +} +.navbar.main .topnav > li, +.navbar.main .topnav > li .notif li { + float: left; + height: 50px; + line-height: 50px; + display: block; + padding: 0 1px; +} +.navbar.main .topnav > li > a, +.navbar.main .topnav > li .notif li > a { + display: block; + color: #d9d9d9; + text-decoration: none; + padding: 0 10px; +} +.navbar.main .topnav > li > a .text, +.navbar.main .topnav > li .notif li > a .text { + display: inline-block; + padding-left: 10px; +} +.navbar.main .topnav > li > a.glyphicons, +.navbar.main .topnav > li .notif li > a.glyphicons { + padding: 0 10px 0 35px; +} +.navbar.main .topnav > li > a.glyphicons:before, +.navbar.main .topnav > li .notif li > a.glyphicons:before { + color: #ffffff; + font-size: 17px; + left: 10px; + line-height: 56px; +} +.navbar.main .topnav > li > a.glyphicons.logout, +.navbar.main .topnav > li .notif li > a.glyphicons.logout { + padding: 0 38px 0 0; +} +.navbar.main .topnav > li > a.glyphicons.logout:before, +.navbar.main .topnav > li .notif li > a.glyphicons.logout:before { + left: auto; + right: 10px; + color: #468ccb; +} +.navbar.main .topnav > li.open, +.navbar.main .topnav > li .notif li.open { + padding: 0; +} +.navbar.main .topnav > li.open > a, +.navbar.main .topnav > li .notif li.open > a { + background: #f5f5f5; + color: #a9a9a9; + position: relative; + top: 0px; + border: 1px solid #dddddd; +} +.navbar.main .topnav > li.open .dropdown-menu, +.navbar.main .topnav > li .notif li.open .dropdown-menu { + background: #f5f5f5; + border: 1px solid #dddddd; + border-top: none; + box-shadow: none; + right: 1px; + width: 246px; +} +.navbar.main .topnav > li.open .dropdown-menu li, +.navbar.main .topnav > li .notif li.open .dropdown-menu li { + border-bottom: 1px solid #dddddd; +} +.navbar.main .topnav > li.open .dropdown-menu li:last-child, +.navbar.main .topnav > li .notif li.open .dropdown-menu li:last-child { + border-bottom: none; +} +.navbar.main .topnav > li.open .dropdown-menu li:first-child > a, +.navbar.main .topnav > li .notif li.open .dropdown-menu li:first-child > a, +.navbar.main .topnav > li.open .dropdown-menu li:first-child > a:hover, +.navbar.main .topnav > li .notif li.open .dropdown-menu li:first-child > a:hover, +.navbar.main .topnav > li.open .dropdown-menu li:first-child > span, +.navbar.main .topnav > li .notif li.open .dropdown-menu li:first-child > span { + border-top: none; +} +.navbar.main .topnav > li.open .dropdown-menu li > a, +.navbar.main .topnav > li .notif li.open .dropdown-menu li > a, +.navbar.main .topnav > li.open .dropdown-menu li > a:hover, +.navbar.main .topnav > li .notif li.open .dropdown-menu li > a:hover, +.navbar.main .topnav > li.open .dropdown-menu li > span, +.navbar.main .topnav > li .notif li.open .dropdown-menu li > span { + height: 38px; + line-height: 38px; + padding: 0 10px; + border-top: 1px solid #ffffff; + display: block; + background: #f5f5f5; + color: #333; +} +.navbar.main .topnav > li.open .dropdown-menu li > a.glyphicons:before, +.navbar.main .topnav > li .notif li.open .dropdown-menu li > a.glyphicons:before, +.navbar.main .topnav > li.open .dropdown-menu li > a:hover.glyphicons:before, +.navbar.main .topnav > li .notif li.open .dropdown-menu li > a:hover.glyphicons:before, +.navbar.main .topnav > li.open .dropdown-menu li > span.glyphicons:before, +.navbar.main .topnav > li .notif li.open .dropdown-menu li > span.glyphicons:before { + left: auto; + right: 10px; + top: 8px; + font-size: 17px; + color: #c4c4c4; +} +.navbar.main .topnav > li.open .dropdown-menu li.active, +.navbar.main .topnav > li .notif li.open .dropdown-menu li.active { + background: #ddd; +} +.navbar.main .topnav > li.open .dropdown-menu li.active a, +.navbar.main .topnav > li .notif li.open .dropdown-menu li.active a { + background: #ddd; +} +.navbar.main .topnav > li.open .dropdown-menu li.highlight > a, +.navbar.main .topnav > li .notif li.open .dropdown-menu li.highlight > a, +.navbar.main .topnav > li.open .dropdown-menu li.highlight > a:hover, +.navbar.main .topnav > li .notif li.open .dropdown-menu li.highlight > a:hover, +.navbar.main .topnav > li.open .dropdown-menu li.highlight > span, +.navbar.main .topnav > li .notif li.open .dropdown-menu li.highlight > span { + background: #fff; +} +.navbar.main .topnav > li.open .dropdown-menu li.highlight.profile > a, +.navbar.main .topnav > li .notif li.open .dropdown-menu li.highlight.profile > a, +.navbar.main .topnav > li.open .dropdown-menu li.highlight.profile > a:hover, +.navbar.main .topnav > li .notif li.open .dropdown-menu li.highlight.profile > a:hover, +.navbar.main .topnav > li.open .dropdown-menu li.highlight.profile > span, +.navbar.main .topnav > li .notif li.open .dropdown-menu li.highlight.profile > span { + height: auto; + line-height: normal; + padding: 5px 10px 10px; +} +.navbar.main .topnav > li.open .dropdown-menu li.highlight.profile > a .heading, +.navbar.main .topnav > li .notif li.open .dropdown-menu li.highlight.profile > a .heading, +.navbar.main .topnav > li.open .dropdown-menu li.highlight.profile > a:hover .heading, +.navbar.main .topnav > li .notif li.open .dropdown-menu li.highlight.profile > a:hover .heading, +.navbar.main .topnav > li.open .dropdown-menu li.highlight.profile > span .heading, +.navbar.main .topnav > li .notif li.open .dropdown-menu li.highlight.profile > span .heading { + display: block; + text-transform: uppercase; + margin-bottom: 5px; +} +.navbar.main .topnav > li.open .dropdown-menu li.highlight.profile > a .heading a, +.navbar.main .topnav > li .notif li.open .dropdown-menu li.highlight.profile > a .heading a, +.navbar.main .topnav > li.open .dropdown-menu li.highlight.profile > a:hover .heading a, +.navbar.main .topnav > li .notif li.open .dropdown-menu li.highlight.profile > a:hover .heading a, +.navbar.main .topnav > li.open .dropdown-menu li.highlight.profile > span .heading a, +.navbar.main .topnav > li .notif li.open .dropdown-menu li.highlight.profile > span .heading a { + text-transform: none; +} +.navbar.main .topnav > li.open .dropdown-menu li.highlight.profile > a .img, +.navbar.main .topnav > li .notif li.open .dropdown-menu li.highlight.profile > a .img, +.navbar.main .topnav > li.open .dropdown-menu li.highlight.profile > a:hover .img, +.navbar.main .topnav > li .notif li.open .dropdown-menu li.highlight.profile > a:hover .img, +.navbar.main .topnav > li.open .dropdown-menu li.highlight.profile > span .img, +.navbar.main .topnav > li .notif li.open .dropdown-menu li.highlight.profile > span .img { + display: inline-block; + float: left; + width: 47px; + height: 45px; + line-height: 45px; + background: #272729; + text-align: center; + content: "\e004"; + color: #525254; + font-family: "Glyphicons Regular"; + margin: 0 10px 0 0; + position: relative; +} +.navbar.main .topnav > li.open .dropdown-menu li.highlight.profile > a .clearfix, +.navbar.main .topnav > li .notif li.open .dropdown-menu li.highlight.profile > a .clearfix, +.navbar.main .topnav > li.open .dropdown-menu li.highlight.profile > a:hover .clearfix, +.navbar.main .topnav > li .notif li.open .dropdown-menu li.highlight.profile > a:hover .clearfix, +.navbar.main .topnav > li.open .dropdown-menu li.highlight.profile > span .clearfix, +.navbar.main .topnav > li .notif li.open .dropdown-menu li.highlight.profile > span .clearfix { + display: block; +} +.navbar.main .topnav .dropdown > a .caret { + border-top-color: #fafafa; + top: 0px; + position: relative; +} +.navbar.main .topnav .dropdown-menu { + -webkit-border-radius: 0 0 0 0; + -moz-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.navbar.main .topnav #themer { + position: absolute; + top: 100%; + left: auto; + right: -1px; + z-index: 1000; + width: 250px; + margin: -5px 0 0; + text-align: left; +} +.navbar.main .topnav #themer.in { + overflow: visible; +} +.navbar.main .topnav #themer .close2 { + position: absolute; + background: #DDD; + color: #222; + height: 20px; + top: 14px; + right: 10px; + line-height: 20px; + text-align: center; + font-size: 10pt; + padding: 0 10px; + -webkit-border-radius: 5px 5px 5px 5px; + -moz-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + cursor: pointer; +} +.navbar.main .topnav #themer .wrapper { + -webkit-border-radius: 5px 0 5px 5px; + -moz-border-radius: 5px 0 5px 5px; + border-radius: 5px 0 5px 5px; + position: relative; + background: #292c2e; + border: 1px solid #2f3235; + box-shadow: 0 0 0 1px #5e646b inset; + -moz-box-shadow: 0 0 0 1px #5e646b inset; + -webkit-box-shadow: 0 0 0 1px #5e646b inset; + padding: 15px; + color: #fafafa; +} +.navbar.main .topnav #themer .wrapper hr.separator { + margin: 10px 0; + border-top-color: #5e646b; + border-bottom-color: #2f3235; +} +.navbar.main .topnav #themer .wrapper h4 { + border-bottom: 1px solid #5e6060; + padding: 0 0 10px; + margin: 0 0 10px; + color: #fff; +} +.navbar.main .topnav #themer .wrapper h4 span { + color: #5e6060; + font-weight: normal; + font-size: 10pt; +} +.navbar.main .topnav #themer .wrapper .btn { + margin: 0; +} +.navbar.main .topnav #themer .wrapper #themer-getcode-less { + margin: 0 0 0 5px; +} +.navbar.main .topnav #themer .wrapper ul { + margin: 0; + list-style: none; +} +.navbar.main .topnav #themer .wrapper ul li { + height: 25px; + line-height: 25px; + position: relative; +} +.navbar.main .topnav #themer .wrapper ul li .minicolors { + line-height: normal; + border: none; + top: 2px; + right: 0; + position: absolute; +} +.navbar.main .topnav #themer .wrapper ul li .minicolors input { + border: none; + height: 20px; + width: 69px; + background: #414649; + color: #fff; + font-size: 9pt; + padding: 0 5px; + margin: 0 0 1px; +} +.navbar.main .topnav #themer .wrapper ul li .minicolors-swatch { + cursor: pointer; + width: 18px; + height: 18px; +} +.navbar.main .topnav #themer .wrapper ul li .minicolors-panel { + z-index: 10000; + top: 24px; +} +.navbar.main .topnav #themer .wrapper ul li .minicolors-position-left .minicolors-panel { + left: -152px; +} +.navbar.main .topnav #themer .wrapper ul li select { + position: absolute; + top: 3px; + right: 0; + width: 100px; + height: 20px; + line-height: normal; + padding: 0; + margin: 0; + font-size: 9pt; + background: #414649; + border: 1px solid #2F3235; + color: #fff; +} +.navbar.main .topnav #themer .wrapper ul li .link { + text-decoration: underline; + cursor: pointer; +} +.navbar.main .topnav #themer .wrapper ul li label { + margin: 0; + line-height: 25px; + font-size: 9pt; +} +.navbar.main .topnav #themer .wrapper ul li label input { + margin: 0 0 1px; +} +.navbar.main .topnav #themer .wrapper ul li.advanced { + display: none; +} +.navbar.main .topnav #themer.themer-advanced .wrapper ul li.advanced { + display: block; +} +#menu { + width: 233px; + border-right: 1px solid #dddddd; + float: left; + position: absolute; + left: 0; + top: 0; + overflow: hidden; + margin-bottom: -99999px; + padding-bottom: 99999px; +} +#menu #menuInner { + position: relative; + margin-bottom: -99999px; + padding-bottom: 99999px; + width: 225px; +/* border-right: 1px solid #d0d0d0; + box-shadow: -2px 0 5px rgba(0, 0, 0, 0.1) inset; + -moz-box-shadow: -2px 0 5px rgba(0, 0, 0, 0.1) inset; + -wekbit-box-shadow: -2px 0 5px rgba(0, 0, 0, 0.1) inset;*/ + float: left; +} +#menu #menuInner > ul { + float: left; + margin: 0 0 25px; + border-top: 1px solid #dddddd; +} +#menu #menuInner > ul > li:first-child { + border-top: 1px solid #fafafa; +} +#menu > ul, +#menu .slim-scroll > ul { + list-style: none; + margin: 0; + padding: 0; + display: block; + width: 100%; +} +#menu > ul:first-of-type, +#menu .slim-scroll > ul:first-of-type { + border-top: 1px solid #dddddd; +} +#menu > ul li, +#menu .slim-scroll > ul li { + display: block; + height: 39px; + line-height: 39px; + border-bottom: 1px solid #fafafa; + position: relative; + overflow: hidden; + padding: 0; + margin: 0; +} +#menu > ul li a, +#menu .slim-scroll > ul li a { + display: block; + width: auto; + border-bottom: 1px solid #dddddd; + padding: 0; + margin: 0; + color: #222222; + height: 38px; + line-height: 38px; + text-decoration: none; + font-size: 13px; +} +#menu > ul li a.glyphicons, +#menu .slim-scroll > ul li a.glyphicons { + padding: 0 0 0 50px; +} +#menu > ul li a.glyphicons:before, +#menu .slim-scroll > ul li a.glyphicons:before { + font-size: 17px; + color: #468ccb; + line-height: 38px; + left: 20px; +} +#menu > ul li a:hover, +#menu .slim-scroll > ul li a:hover { + background: #efefef; +} +#menu > ul li:after, +#menu .slim-scroll > ul li:after { + overflow: hidden; + display: inline-block; + width: 0; + position: absolute; + content: ""; +} +#menu > ul li.active, +#menu .slim-scroll > ul li.active { + position: relative; + overflow: visible; +} +#menu > ul li.active > a, +#menu .slim-scroll > ul li.active > a { + background: #fff; +} +#menu > ul li.active:after, +#menu .slim-scroll > ul li.active:after { + display: inline-block; + width: 9px; + position: absolute; + top: 0; + bottom: 0; + right: -10px; + content: ""; + background: #468ccb; +} +#menu > ul li.glyphicons a, +#menu .slim-scroll > ul li.glyphicons a { + padding: 0 0 0 50px; +} +#menu > ul li.glyphicons:before, +#menu .slim-scroll > ul li.glyphicons:before { + font-size: 17px; + color: #468ccb; + line-height: 38px; + left: 20px; +} +#menu > ul li.hasSubmenu.active, +#menu .slim-scroll > ul li.hasSubmenu.active { + height: auto; + background: #fff; + padding: 0 0 8px; + border-bottom: 1px solid #dddddd; +} +#menu > ul li.hasSubmenu.active a, +#menu .slim-scroll > ul li.hasSubmenu.active a { + border: none; +} +#menu > ul li.heading span, +#menu .slim-scroll > ul li.heading span { + display: block; + text-transform: uppercase; + background: #ECECEC; + border-bottom: 1px solid #dddddd; + height: 38px; + color: #AFAFAF; + font-family: Meiryo UI, 'Raleway', sans-serif; + padding: 0 0 0 20px; + font-size: 11pt; +} +#menu > ul ul, +#menu .slim-scroll > ul ul { + margin: 0; + padding: 0; + list-style: none; +} +#menu > ul ul li, +#menu .slim-scroll > ul ul li { + height: auto; + border: none; +} +#menu > ul ul li a, +#menu .slim-scroll > ul ul li a { + padding: 0 0 0 20px; + height: 25px; + line-height: 25px; + border: none; + font-weight: 400; +} +#menu > ul ul li a.glyphicons:before, +#menu .slim-scroll > ul ul li a.glyphicons:before { + font-size: 12px; + top: 7px; + left: 22px; + color: #222; +} +#menu > ul ul li a:hover, +#menu .slim-scroll > ul ul li a:hover { + background: #fafafa; +} +#menu > ul ul li.active a, +#menu .slim-scroll > ul ul li.active a { + background: #fafafa; +} +#menu #search { + position: relative; + overflow: hidden; + width: 196px; + height: 30px; + border: 1px solid #dddddd; + background: #fff; + margin: 15px auto; +} +#menu #search input { + border: none; + height: 30px; + line-height: 30px; + padding: 0; + width: 152px; + margin: 0; + left: 10px; + position: absolute; + top: 0; + box-shadow: none; +} +#menu #search .glyphicons { + width: 34px; + height: 30px; + background: #fff; + border: none; + padding: 0; + margin: 0; + position: absolute; + top: 0; + right: 0; +} +#menu #search .glyphicons:before { + top: 6px; + left: 9px; + color: #cccccc; + font-size: 17px; +} +.right-menu #menu { + left: auto; + right: 0; + border-right: none; + border-left: 1px solid #dddddd; +} +.right-menu #menu ul li.active:after { + display: inline-block; + width: 9px; + position: absolute; + top: 0; + bottom: 0; + left: -10px; + content: ""; + background: #468ccb; +} +.right-menu #menu #menuInner { + box-shadow: 2px 0 5px rgba(0, 0, 0, 0.1) inset; + -moz-box-shadow: 2px 0 5px rgba(0, 0, 0, 0.1) inset; + -wekbit-box-shadow: 2px 0 5px rgba(0, 0, 0, 0.1) inset; + float: right; + border-right: none; + border-left: 1px solid #d0d0d0; +} +.right-menu #content { + margin: 0 234px 0 0; +} +.menu-hidden #menu { + display: none; +} +.menu-hidden #content { + margin: 0; +} +.menu-hidden .navbar.main .appbrand { + display: none; +} +.menu-hidden .navbar.main .appbrand.visible-menu-hidden { + display: block; +} +.menu-hidden .navbar.main .btn-navbar { + left: 10px; +} +.menu-hidden.login .navbar.main .appbrand, +.menu-hidden.documentation .navbar.main .appbrand { + display: inline-block; + border: none; +} +.menu-hidden.login .navbar.main .appbrand span, +.menu-hidden.documentation .navbar.main .appbrand span { + border: none; +} +.menubar { + height: 34px; + position: relative; + overflow: hidden; + border-top: 1px solid #dddddd; + border-bottom: 1px solid #dddddd; + background: #f5f5f5; + margin: 0 0 10px; +} +.menubar ul { + margin: 0; + padding: 0 10px; + list-style: none; + height: 33px; + border-bottom: 1px solid #fff; +} +.menubar ul li { + float: left; + display: block; + height: 33px; + line-height: 33px; + padding: 0 8px; +} +.menubar ul li.divider { + border-left: 1px solid #dddddd; + border-right: 1px solid #ffffff; + width: 0px; + padding: 0; + margin: 0 8px; +} +.menubar ul li a { + color: #4b4b4b; + font-weight: 700; + font-size: 9pt; +} +.widget-stats { + background: #f5f5f5; + height: 70px; + position: relative; + overflow: hidden; + text-align: center; + display: block; + color: #222; + margin: 5px; + padding: 10px 5px; +} +.widget-stats, +.widget-stats:hover, +.widget-stats:focus { + text-decoration: none; +} +.widget-stats span { + display: inline-block; +} +.widget-stats .txt { + padding: 0 5px 0 0; +} +.widget-stats .txt strong { + display: block; + font-size: 22pt; + color: #468ccb; + padding: 0px; + line-height: 30px; +} +.widget-stats .glyphicons { + padding: 0 5px 0 0; +} +.widget-stats .glyphicons:before { + color: #bebebe; + font-size: 30px; + top: 0; + left: 0; + position: relative; + margin-top: -30px; +} +.widget-pinterest { + border: 1px solid #d8d8d8; + -webkit-border-radius: 5px 5px 0 0; + -moz-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0; +} +.widget-pinterest .widget-body { + padding: 0; +} +.widget-pinterest .widget-body .description { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + line-height: 16px; + padding: 15px; +} +.widget-pinterest .widget-body h5 { + line-height: normal; +} +.widget-pinterest .widget-body .thumb { + padding: 0; + border: none; +} +.widget-pinterest .widget-body .thumb img { + width: 100%; + -webkit-border-radius: 5px 5px 0 0; + -moz-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0; +} +[data-gridalicious-gutter="0"] .widget-pinterest { + margin-bottom: 15px !important; +} +[data-gridalicious-gutter="0"] .galcolumn:not(:first-of-type) .widget-pinterest { + margin-left: 15px; +} +.widget-activity ul.filters { + display: block; + overflow: hidden; + position: relative; + list-style: none; + padding: 0; + margin: 0 0 5px 0; +} +.widget-activity ul.filters li { + float: left; + display: block; + padding: 0; + font-size: 8pt; + line-height: 30px; + margin: 0 3px 0 3px; +} +.widget-activity ul.filters li.glyphicons { + width: 30px; + height: 30px; + line-height: 24px; + text-align: center; + cursor: pointer; +} +.widget-activity ul.filters li.glyphicons:before { + position: relative; + top: 0px; + left: 0; + color: #cccccc; + font-size: 17px; +} +.widget-activity ul.filters li.glyphicons:hover:before { + color: #dedede; +} +.widget-activity ul.filters li.glyphicons.active { + top: 0px; + background: #468ccb; + display: block; + -webkit-border-radius: 2px 2px 2px 2px; + -moz-border-radius: 2px 2px 2px 2px; + border-radius: 2px 2px 2px 2px; + height: 30px; + position: relative; +} +.widget-activity ul.filters li.glyphicons.active:before { + color: #fff; +} +.widget-activity ul.activities { + list-style: none; + padding: 0; +} +.widget-activity ul.activities li { + display: block; + height: 52px; + line-height: 50px; + position: relative; + overflow: hidden; + border: 1px solid #ddd; + background: #fafafa; + margin: 0 0 10px; + padding: 0 10px 0; +} +.widget-activity ul.activities li .glyphicons { + padding: 0; + line-height: 24px; + margin-left: 3px; +} +.widget-activity ul.activities li .activity-icon { + padding: 2px; + display: inline-block; + height: 34px; + position: relative; + text-align: center; + margin-right: 5px; +} +.widget-activity ul.activities li .activity-icon:before { + position: relative; + top: 0; + left: 0; + color: #a6a6a7; + font-size: 20px; + margin-left: 3px; +} +.widget-activity ul.activities li.highlight { + background: #e6f6fb; + border: 1px solid #cae4ec; +} +.widget-activity ul.activities li.highlight .activity-icon { + background: #ffffff; + border: 1px solid #cae4ec; + -webkit-border-radius: 5px 5px 5px 5px; + -moz-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + margin: 0 10px 0 0; +} +.widget-activity ul.activities li.highlight .activity-icon:before { + color: #468ccb; + top: -1px; +} +.widget { + background: #fff; + margin: 0 auto 10px; + position: relative; +} +.widget .widget-head { + background: #468ccb; + border: 1px solid #468ccb; + color: #fff; + text-shadow: 0 1px 0 rgba(0, 0, 0, 0.5); + box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0.6), inset -1px -1px 1px rgba(0, 0, 0, 0); + -moz-box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0.6), inset -1px -1px 1px rgba(0, 0, 0, 0); + -webkit-box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0.6), inset -1px -1px 1px rgba(0, 0, 0, 0); + height: 31px; + line-height: 31px; + position: relative; +} +.widget .widget-head ul { + padding: 0; +} +.widget .widget-head .glyphicons { + height: 31px; + width: 30px; + padding: 0; +} +.widget .widget-head .glyphicons:before { + width: 30px; + height: 31px; + line-height: 31px; + text-align: center; + font-size: 16px; + color: rgba(255, 255, 255, 0.5); +} +.widget .widget-head .heading { + color: #fff; + font-size: 10pt; + height: 30px; + line-height: 30px; + float: left; +} +.widget .widget-head .heading.glyphicons { + width: auto; + display: block; + padding: 0 0 0 35px; +} +.widget .widget-head .heading.glyphicons:before { + padding: 0; + margin: 0; + left: 0; + top: 0; + height: 31px; + line-height: 31px; + text-align: center; + width: 30px; + background: rgba(0, 0, 0, 0.3); + color: rgba(255, 255, 255, 0.5); + border-right: 1px solid rgba(255, 255, 255, 0.5); + font-size: 16px; + font-weight: normal; + text-shadow: none; +} +.widget .widget-head a { + text-shadow: none; +} +.widget .widget-head .dropdown-menu li > a:hover, +.widget .widget-head .dropdown-menu li > a:focus, +.widget .widget-head .dropdown-submenu:hover > a { + background-color: #468ccb; + background-image: -moz-linear-gradient(top, #468ccb, #d24343); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#468ccb), to(#d24343)); + background-image: -webkit-linear-gradient(top, #468ccb, #d24343); + background-image: -o-linear-gradient(top, #468ccb, #d24343); + background-image: linear-gradient(to bottom, #468ccb, #d24343); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffda4c4c', endColorstr='#ffd24343', GradientType=0); +} +.widget > .widget-body { + padding: 15px; +} +.widget > .widget-body .count { + font-size: 15pt; + font-weight: 400; +} +.widget > .widget-body > p:last-child { + margin: 0; +} +.widget > .widget-body.list { + color: #575655; + padding: 0; +} +.widget > .widget-body.list ul { + margin: 0; + list-style: none; +} +.widget > .widget-body.list ul li { + padding: 0 10px; + height: 39px; + border-bottom: 1px solid rgba(0, 0, 0, 0.02); + line-height: 39px; + text-align: left; + clear: both; +} +.widget > .widget-body.list ul li:first-child { + border-top: none; +} +.widget > .widget-body.list ul li:last-child { + border-bottom: none; +} +.widget > .widget-body.list ul li .count { + float: right; +} +.widget > .widget-body.list ul li .sparkline { + position: relative; + top: 5px; + margin-left: 5px; +} +.widget > .widget-body.list.products li { + height: 60px; + line-height: 60px; +} +.widget > .widget-body.list.products .img { + float: left; + display: inline-block; + width: 48px; + height: 44px; + line-height: 44px; + color: #818181; + text-align: center; + background: #272729; + margin: 8px 8px 0 0; + -webkit-border-radius: 3px 3px 3px 3px; + -moz-border-radius: 3px 3px 3px 3px; + border-radius: 3px 3px 3px 3px; + cursor: pointer; + font-size: 10pt; +} +.widget > .widget-body.list.products .title { + line-height: normal; + display: inline-block; + padding: 13px 0 0; + font-family: Meiryo UI, "Raleway", sans-serif; + text-transform: uppercase; +} +.widget > .widget-body.list.products .title strong { + font-family: Meiryo UI, "Open Sans", sans-serif; + text-transform: none; +} +.widget > .widget-body.list.fluid ul li { + height: auto; + line-height: normal; + padding: 10px; +} +.widget > .widget-body.list.list-2 ul li { + border-bottom: 1px solid #d8d9da; + border-top: none; + background: #f8f8f8; +} +.widget > .widget-body.list.list-2 ul li.active { + border-color: #dddddd; + background: #fff; +} +.widget > .widget-body.list.list-2 ul li.active:before { + font-weight: normal; + background: #468ccb; + color: #fff; + text-shadow: none; +} +.widget > .widget-body.list.list-2 ul li.active a { + color: #468ccb; +} +.widget > .widget-body.list.list-2 ul li:last-child { + border-bottom: none; +} +.widget > .widget-body.list.list-2 ul li a { + display: block; + color: #222; + padding: 0 0 0 30px; +} +.widget > .widget-body.list.list-2 ul li a:before { + color: #555; + width: 20px; + height: 17px; + font-size: 14px; + border: 1px solid #ccc; + background: #dddddd; + top: 9px; + left: 0; + text-align: center; + vertical-align: middle; + padding-top: 3px; + text-shadow: 0 1px 0 #fff; +} +.widget > .widget-body.list.list-2 ul li.hasSubmenu { + height: auto; +} +.widget > .widget-body.list.list-2 ul li.hasSubmenu ul { + padding: 0 0 10px; +} +.widget > .widget-body.list.list-2 ul li.hasSubmenu ul li { + height: auto; + line-height: normal; + background: none; + border: none; + line-height: 20px; +} +.widget > .widget-body.list.list-2 ul li.hasSubmenu ul li a { + color: #333; + padding: 0 0 0 20px; +} +.widget > .widget-body.list.list-2 ul li.hasSubmenu ul li.active a { + font-weight: bold; +} +.widget .widget-footer { + background: #f7f7f7; + line-height: 25px; + border-top: 1px solid #e6e6e6; + border-bottom: 1px solid #ffffff; +} +.widget .widget-footer .glyphicons { + width: 25px; + height: 25px; + line-height: 25px; + padding: 0; + float: right; +} +.widget .widget-footer .glyphicons:before { + font-size: 16px; + color: #c3c3c3; + text-align: center; + width: 20px; + height: 25px; + line-height: 25px; + text-shadow: 0 1px 0 #fff; +} +.widget .widget-footer .glyphicons:hover .widget .widget-footer .glyphicons:before { + color: rgba(0, 0, 0, 0.5); +} +.widget.margin-bottom-none { + margin-bottom: 0; +} +.widget.widget-gray { + background: #f5f5f5; +} +.widget.widget-gray .widget-head { + background: #e9e9e9; + border-color: #d1d2d3; + box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0.6), inset -1px -1px 1px rgba(0, 0, 0, 0); + -moz-box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0.6), inset -1px -1px 1px rgba(0, 0, 0, 0); + -webkit-box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0.6), inset -1px -1px 1px rgba(0, 0, 0, 0); +} +.widget.widget-gray .widget-head .heading { + color: #555555; + text-shadow: 0 1px 0 #fff; +} +.widget.widget-gray .widget-head .heading.glyphicons:before { + background: none; + color: #555; + border-color: rgba(0, 0, 0, 0.1); +} +.widget.widget-2:before, +.widget.widget-2:after { + display: none; +} +.widget.widget-2 > .widget-head { + background: #e2e2e4; + box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0.6), inset -1px -1px 1px rgba(0, 0, 0, 0); + -moz-box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0.6), inset -1px -1px 1px rgba(0, 0, 0, 0); + -webkit-box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0.6), inset -1px -1px 1px rgba(0, 0, 0, 0); + height: 36px; + line-height: 36px; + border-color: #d1d2d3; +} +.widget.widget-2 > .widget-head ul { + padding: 0; +} +.widget.widget-2 > .widget-head .heading { + line-height: 36px; + color: #555555; + text-shadow: 0 1px 0 #fff; + font-size: 12pt; +} +.widget.widget-2 > .widget-head .heading:before { + color: #555555; + background: none; + border: none; + left: 3px; + top: 2px; +} +.widget.widget-2 > .widget-head .details { + padding: 0 10px 0 0; + color: #222; + text-decoration: underline; +} +.widget.widget-2 > .widget-body { + border: 1px solid #d1d2d3; + border-top: 0; + background: #f5f5f5; +} +.widget.widget-2 > .widget-body ul { + padding: 0; +} +.widget.widget-2.primary .widget-head { + background: #468ccb; + border-color: #468ccb; + box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0.6), inset -1px -1px 1px rgba(0, 0, 0, 0.1); + -moz-box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0.6), inset -1px -1px 1px rgba(0, 0, 0, 0.1); + -webkit-box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0.6), inset -1px -1px 1px rgba(0, 0, 0, 0.1); +} +.widget.widget-2.primary .widget-head .heading { + color: #fff; + text-shadow: 0 1px 0 rgba(0, 0, 0, 0.5); +} +.widget.widget-2.primary .widget-head .heading:before { + color: #fff; + text-shadow: 0 1px 0 rgba(0, 0, 0, 0.5); +} +.widget.widget-2 .form-group { + margin-bottom: 15px; +} +.widget.widget-3:before, +.widget.widget-3:after { + display: none; +} +.widget.widget-3 .widget-head { + box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0), inset -1px -1px 1px rgba(0, 0, 0, 0); + -moz-box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0), inset -1px -1px 1px rgba(0, 0, 0, 0); + -webkit-box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0), inset -1px -1px 1px rgba(0, 0, 0, 0); + height: 36px; + line-height: 36px; +} +.widget.widget-3 .widget-head .heading { + display: block; + text-align: center; + float: none; + line-height: 36px; + height: 36px; + color: #fff; + text-shadow: 0 1px 0 #555555; + text-transform: uppercase; + font-size: 14pt; +} +.widget.widget-3 .widget-head .heading .glyphicons { + vertical-align: middle; + width: 35px; + height: 36px; + padding: 0; +} +.widget.widget-3 .widget-head .heading .glyphicons:before { + color: #fff; + background: none; + border: none; + left: 3px; + top: 0px; + font-size: 20px; + text-shadow: 0 1px 0 #555555; +} +.widget.widget-3 > .widget-body { + border: 1px solid #dddddd; + border-top: 0; + background: #fff; +} +.widget.widget-3 > .widget-body.large { + font-size: 26pt; + font-weight: bold; + text-shadow: 0 3px 0 #ececec; + text-align: center; + padding: 25px 0; + vertical-align: middle; + line-height: normal; +} +.widget.widget-3 > .widget-body.large.cancellations span { + line-height: 20px; + text-align: left; + font-size: 17pt; + display: inline-block; + text-shadow: none; +} +.widget.widget-3 > .widget-body.large.cancellations span span { + display: block; +} +.widget.widget-3 > .widget-body.large.cancellations span span:first-child { + color: #468ccb; + text-transform: uppercase; + font-size: 13pt; +} +.widget.widget-3 .widget-footer { + border: 1px solid #dddddd; + background: #fff; + border-top: none; +} +.widget.widget-3 .widget-footer a { + float: none; + color: #dddddd; + width: auto; + padding: 0 10px 0 30px; + border-right: 1px solid #dddddd; + text-decoration: none; +} +.widget.widget-3 .widget-footer a:before { + color: #dddddd; + left: 5px; +} +.widget.widget-3 .widget-footer a:hover { + color: #468ccb; +} +.widget.widget-3 .widget-footer a:hover:before { + color: #468ccb; +} +.widget.widget-3 .widget-footer.align-center { + text-align: center; +} +.widget.widget-3 .widget-footer.align-center a:first-child { + border-left: 1px solid #dddddd; +} +.widget.widget-3 .widget-footer.align-right { + text-align: right; +} +.widget.widget-3 .widget-footer.align-right a:first-child { + border-left: 1px solid #dddddd; +} +.widget.widget-3 .widget-footer.align-right a:last-child { + border-right: none; +} +.widget.widget-4 .widget-head { + box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0), inset -1px -1px 1px rgba(0, 0, 0, 0); + -moz-box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0), inset -1px -1px 1px rgba(0, 0, 0, 0); + -webkit-box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0), inset -1px -1px 1px rgba(0, 0, 0, 0); + background: #fff; + border: none; + border-bottom: 5px solid #eeeeee; + height: 30px; + line-height: 30px; +} +.widget.widget-4 .widget-head .heading { + text-transform: uppercase; + color: #222222; + font-family: Meiryo UI, "Raleway", sans-serif; + text-shadow: none; + padding: 0; + margin: 0; + height: 30px; + line-height: 30px; + border-bottom: 5px solid #468ccb; +} +.widget.widget-4 .widget-head .details { + font-size: 8pt; +} +.widget.widget-4 > .widget-body { + border: none; + padding: 10px 0 0; +} +.widget.widget-4 > .widget-body ul { + padding: 0; +} +.widget.widget-4 > .widget-body.list ul li { + padding: 0; +} +.widget.widget-body-white .widget-body { + background: #fff; +} +.circular-item { + position: relative; + display: block; +} +.circular-item .glyphicons { + position: absolute; + top: 48%; + left: 50%; + margin-left: -18px; + margin-top: -50px; +} +.finances_summary .well { + font-size: 16px; + text-align: center; +} +.finances_summary .well strong { + display: block; + font-size: 22pt; + color: #45494c; + line-height: normal; +} +.glyphicons.standard .finances_summary:before { + color: #cccccc; +} +.finances_cashflow .amount { + font-size: 25pt; + font-weight: bold; + text-shadow: 0 3px 0 #ECECEC; + text-align: center; + padding: 0; + vertical-align: middle; + line-height: normal; +} +.finances_cashflow .target { + position: absolute; + width: 100%; + text-align: center; + top: 55%; + left: 0; +} +.finances_cashflow .glyphicons.btn-action.single { + width: 35px; + height: 35px; + margin-right: 0; +} +.finances_cashflow .glyphicons.btn-action.single:before { + width: 35px; + height: 35px; + font-size: 24px; + left: 0px; +} +#external-events ul { + list-style: none; + margin: 0; +} +#external-events li { + margin: 0 0 5px; + padding: 2px 5px; + background: #468ccb; + color: #fff; + text-shadow: 0 1px 0 rgba(0, 0, 0, 0.5); + font-size: .85em; + cursor: pointer; + -webkit-border-radius: 3px 3px 3px 3px; + -moz-border-radius: 3px 3px 3px 3px; + border-radius: 3px 3px 3px 3px; + box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0.2), inset -1px -1px 1px rgba(0, 0, 0, 0.2); + -moz-box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0.2), inset -1px -1px 1px rgba(0, 0, 0, 0.2); + -webkit-box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0.2), inset -1px -1px 1px rgba(0, 0, 0, 0.2); +} +#external-events li.glyphicons { + padding: 2px 5px 2px 30px; + display: block; +} +#external-events li.glyphicons:before { + font-size: 14px; + color: #fff; + top: 0; + left: 0; + background: rgba(0, 0, 0, 0.3); + height: 20px; + width: 24px; + line-height: 20px; + text-align: center; + -webkit-border-radius: 3px 0 0 3px; + -moz-border-radius: 3px 0 0 3px; + border-radius: 3px 0 0 3px; + border-right: 1px solid rgba(255, 255, 255, 0.4); +} +.fc-header-title h2 { + font-size: 16pt; + line-height: 25px; +} +.fc-event-skin { + border-color: #468ccb; + background-color: #468ccb; + text-shadow: 0 1px 0 rgba(0, 0, 0, 0.5); + box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0.2), inset -1px -1px 1px rgba(0, 0, 0, 0.2); + -moz-box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0.2), inset -1px -1px 1px rgba(0, 0, 0, 0.2); + -webkit-box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0.2), inset -1px -1px 1px rgba(0, 0, 0, 0.2); +} +.fc-event-time, +.fc-event-title { + padding: 0 5px; +} +#calendar .btn-group .btn-primary { + margin-right: 2px; +} +.pages ul { + list-style: none; + margin: 0; + padding: 0; +} +.pages ul li { + display: block; + background: #dfdfdf; + box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0.5), inset -1px -1px 1px rgba(0, 0, 0, 0); + -moz-box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0.5), inset -1px -1px 1px rgba(0, 0, 0, 0); + -webkit-box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0.5), inset -1px -1px 1px rgba(0, 0, 0, 0); + margin-bottom: 2.127659574468085%; + border: 1px solid #bec0c6; + -webkit-border-radius: 5px 5px 5px 5px; + -moz-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + padding: 10px 15px 15px 65px; + color: #9e9e9e; + text-shadow: 0 1px 0 #fff; +} +.pages ul li:before { + font-size: 40px; + left: 12px; + top: 16px; + color: #9e9e9e; +} +.pages ul li.span3:nth-child(4n+5) { + margin-left: 0; +} +.pages ul li strong { + font-size: 11pt; + padding: 3px 0 5px; + display: block; +} +.pages ul li .actions { + display: block; +} +.pages ul li .actions .glyphicons { + padding: 0 2px 0 20px; + color: #9e9e9e; +} +.pages ul li .actions .glyphicons:before { + font-size: 15px; + top: 3px; + color: #9e9e9e; +} +.pages ul li .actions .glyphicons.pencil .pages ul li .actions .glyphicons:before { + content: "\270F"; + font-size: 14px; +} +.pages ul li .actions .glyphicons.edit .pages ul li .actions .glyphicons:before { + top: 1px; +} +.pages ul li:hover, +.pages ul li.primary { + background-color: #da4c4c; + color: #fff; + text-shadow: 0 1px 0 rgba(0, 0, 0, 0.5); + border-color: #da4c4c; +} +.pages ul li:hover .glyphicons, +.pages ul li.primary .glyphicons { + color: #fff; +} +.pages ul li:hover .glyphicons:before, +.pages ul li.primary .glyphicons:before { + color: #f4cbcb; +} +.pages ul li:hover:before, +.pages ul li.primary:before { + color: #f4cbcb; +} +.breadcrumb { + height: 30px; + line-height: 30px; + padding: 0 8px; + -webkit-border-radius: 0 0 0 0; + -moz-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; + margin: 0; + background: #fafafa; + border-bottom: 1px solid #ddd; + font-size: 9pt; +} +.breadcrumb a { + color: #333; +} +.breadcrumb .glyphicons { + color: #333; + padding: 0 0 0 20px; +} +.breadcrumb .glyphicons:before { + color: #468ccb; + font-size: 9pt; + top: 8px; +} +.breadcrumb li + li::before { + content: none; +} +.breadcrumb .divider { + margin: 0 3px; + width: 0; + border-left: 1px solid #fff; + border-right: 1px solid #bfc2c5; + height: 10px; +} +.well { + box-shadow: none; + -moz-box-shadow: none; + -webkit-box-shadow: none; + border: 1px solid #e5e5e5; + z-index: 1; + position: relative; + -webkit-border-radius: 0 0 0 0; + -moz-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; + background: #fafafa; + margin: 0 0 10px; +} +.well.small { + padding: 10px; +} +.well .popover { + z-index: 2; + font-size: 13px; +} +img.flag { + height: 10px; + width: 15px; + padding-right: 10px; +} +#menu .slim-scroll, +#menu .slimScrollDiv { + overflow: visible !important; +} +.box-generic { + border: 1px solid #e5e5e5; + padding: 10px; + position: relative; + background: #fff; +} +[data-toggle="collapse-widget"] .collapse-toggle { + position: relative; + height: 35px; + width: 30px; + display: block; + cursor: pointer; + float: right; + margin-right: 0; +} +[data-toggle="collapse-widget"] .collapse-toggle:before { + font-family: "Glyphicons Regular"; + font-size: 17px; + display: block; + width: 100%; + height: 35px; + line-height: 34px; + text-align: center; + color: #444; + content: "\E192"; +} +[data-toggle="collapse-widget"] a ~ .collapse-toggle { + margin-right: 0; +} +[data-toggle="collapse-widget"][data-collapse-closed="false"] .collapse-toggle:before { + content: "\E191"; +} +[data-toggle="collapse-widget"][data-collapse-closed="true"] .collapse-toggle:before { + content: "\E191"; +} +[data-toggle="collapse-widget"][data-collapse-closed="true"] .widget-head { + border-bottom: none; + box-shadow: none; + -moz-box-shadow: none; + -webkit-box-shadow: none; +} +[data-toggle="collapse-widget"] .collapse:not(.list) { + -webkit-transition: padding 0.1s ease; + -moz-transition: padding 0.1s ease; + -o-transition: padding 0.1s ease; + transition: padding 0.1s ease; + padding: 0px; +} +[data-toggle="collapse-widget"] .collapse:not(.list).in { + padding: 10px; +} +.widget-timeline .widget-body { + padding: 15px; + position: relative; +} +.widget-timeline .widget-body:before { + display: block; + width: 1px; + background: #e5e5e5; + top: 15px; + bottom: 30px; + left: 75px; + content: ""; + position: absolute; +} +.widget-timeline:not(.widget) { + position: relative; +} +.widget-timeline:not(.widget):before { + display: block; + width: 1px; + background: #e5e5e5; + top: 15px; + bottom: 30px; + left: 75px; + content: ""; + position: absolute; +} +.widget-timeline .view-all { + margin-left: 35px; +} +.widget-timeline ul.list-timeline { + list-style: none; + margin: 0 0 15px; + padding: 0; +} +.widget-timeline ul.list-timeline li { + display: block; + height: 30px; + line-height: 30px; + position: relative; + overflow: hidden; + background: #fff; + border: 1px solid #e5e5e5; + margin: 0 0 10px; + padding: 0 10px; +} +.widget-timeline ul.list-timeline li:last-child { + margin: 0; +} +.widget-timeline ul.list-timeline li span { + display: block; + height: 30px; + line-height: 30px; + float: left; + position: relative; + overflow: hidden; +} +.widget-timeline ul.list-timeline li span.ellipsis { + white-space: nowrap; + text-overflow: ellipsis; + max-width: 75%; +} +.widget-timeline ul.list-timeline li span.date { + width: 40px; + text-align: center; +} +.widget-timeline ul.list-timeline li .activity-icon { + width: 34px; + height: 30px; + padding: 0; + margin: 0 10px; + display: inline-block; + text-align: center; +} +.widget-timeline ul.list-timeline li .activity-icon:before { + height: 30px; + display: block; + background: #64625f; + position: relative; + top: 0; + left: 0; + color: #fff; + font-size: 16px; + line-height: 28px; +} +.panel-group .panel, +.panel-heading { + -webkit-border-radius: 0 0 0 0; + -moz-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +ul.thumbnails { + list-style: none; + padding-left: 0; +} +.pagination ul { + background: #fff; + box-shadow: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + -webkit-border-radius: 6px 6px 6px 6px; + -moz-border-radius: 6px 6px 6px 6px; + border-radius: 6px 6px 6px 6px; +} +.pagination ul > li > a:hover { + border-color: #468ccb; + background: #468ccb; + color: #fff; + text-shadow: 0 1px 0 rgba(0, 0, 0, 0.5); +} +.pagination ul > li > .active > a, +.pagination ul > li > .active > span { + border-color: #468ccb; + background: #468ccb; + color: #fff; + text-shadow: 0 1px 0 rgba(0, 0, 0, 0.5); + box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0.2), inset -1px -1px 1px rgba(0, 0, 0, 0.2); + -moz-box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0.2), inset -1px -1px 1px rgba(0, 0, 0, 0.2); + -webkit-box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0.2), inset -1px -1px 1px rgba(0, 0, 0, 0.2); +} +.pagination ul > li > a, +.pagination ul > li > span { + border-color: #dddddd; +} +.pagination ul > .disabled > a, +.pagination ul > .disabled > span { + border-color: #dddddd; + background: #fafafa; + color: #dddddd; +} +.pagination ul > .disabled > a:hover { + border-color: #dddddd; + background: #fafafa; + color: #dddddd; + text-shadow: none; + box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0), inset -1px -1px 1px rgba(0, 0, 0, 0); + -moz-box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0), inset -1px -1px 1px rgba(0, 0, 0, 0); + -webkit-box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0), inset -1px -1px 1px rgba(0, 0, 0, 0); +} +.pagination > .active > a, +.pagination > .active > span, +.pagination > .active > a:hover, +.pagination > .active > span:hover, +.pagination > .active > a:focus, +.pagination > .active > span:focus { + background-color: #468ccb; + border: 1px solid #2a87a7; + text-shadow: 0 1px 0 rgba(0, 0, 0, 0.5); +} +.table-striped tbody tr:nth-child(odd) td, +.table-striped tbody tr:nth-child(odd) th { + background-color: #f8f8f8; +} +.table th, +.table td { + border-top-color: #f8f8f8; +} +.table td.center, +.table th.center { + text-align: center; +} +.table td.right, +.table th.right { + text-align: right; +} +.table-condensed { + font-size: 10pt; +} +.table-condensed th, +.table-condensed td { + padding: 4px 10px; +} +.table-bordered { + border-color: #d7d8da; +} +.table-bordered th, +.table-bordered td { + border-color: #d7d8da; +} +.table-fill td { + background: #F8F8F8; +} +.table .progress:last-child, +.table .alert:last-child { + margin: 0; +} +.table-large-spacing td { + padding: 20px 15px; +} +.table .thead td { + padding: 8px; + font-weight: bold; +} +.table-vertical-center td, +.table-vertical-center th { + vertical-align: middle !important; +} +.table-thead-simple thead th { + background: none; + border-left: none; + border-right: none; + border-top: none; + border-bottom: 1px solid #dddddd; + color: #555; + -webkit-border-radius: 0 0 0 0; + -moz-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; + text-shadow: none; + text-transform: none; + box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0), inset -1px -1px 1px rgba(0, 0, 0, 0); + -moz-box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0), inset -1px -1px 1px rgba(0, 0, 0, 0); + -webkit-box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0), inset -1px -1px 1px rgba(0, 0, 0, 0); +} +.table-thead-simple.table-thead-border-none { + border-top: none; + -webkit-border-radius: 0 0 0 0; + -moz-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.table-thead-simple.table-thead-border-none thead th { + border-bottom: none; +} +.table-thead-simple.table-thead-border-none thead:first-child tr:first-child > th:last-child, +.table-thead-simple.table-thead-border-none tbody:first-child tr:first-child > td:last-child, +.table-thead-simple.table-thead-border-none tbody:first-child tr:first-child > th:last-child { + -webkit-border-radius: 0 0 0 0; + -moz-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.table-primary { + border-color: #dddddd; + border-top: none; + -webkit-border-radius: 8px 8px 5px 5px; + -moz-border-radius: 8px 8px 5px 5px; + border-radius: 8px 8px 5px 5px; +} +.table-primary thead tr { + border: 1px solid rgba(55, 166, 205, 0.2); +} +.table-primary thead tr th { + background-color: rgba(55, 166, 205, 0.1); + color: #468ccb; + text-transform: uppercase; + border: 1px solid rgba(55, 166, 205, 0.2); + border-bottom: none; + box-shadow: none; +} +.table-primary tbody td { + color: #484c50; + background: #fafafa; + border-width: 0px; +} +.table-primary tbody td.important { + color: #468ccb; +} +.table-primary tbody td.actions { + padding-right: 1px; +} +.table-primary.table-bordered tbody td { + border-color: #dddddd; + border-width: 1px; + box-shadow: 0 0 0 1px #fff inset; + -webkit-box-shadow: 0 0 0 1px #fff inset; + -moz-box-shadow: 0 0 0 1px #fff inset; +} +.table-primary tbody tr:nth-child(odd) td, +.table-primary tbody tr:nth-child(odd) th { + background: #fff; +} +.table-primary tbody tr.selectable td { + cursor: pointer; +} +.table-primary tbody tr.selected td, +.table-primary tbody tr.selectable:hover td { + background: #e9e9e9; + box-shadow: 0 0 0 1px #fff inset; + -webkit-box-shadow: 0 0 0 1px #fff inset; + -moz-box-shadow: 0 0 0 1px #fff inset; +} +.dataTables_filter input { + width: 150px; +} +.google-visualization-table-div-page { + margin: 10px 0 0 0 !important; +} +.google-visualization-table-div-page .a-d-e-h-g { + padding: 0; + border: none; + margin: 0; +} +.google-visualization-table-div-page .a-d-e-f-g, +.google-visualization-table-div-page .a-d-e-h-g { + border-style: none; +} +.google-visualization-table-div-page .a-d-e-o-q .a-d-e-h-g { + border: none; +} +.google-visualization-table-div-page .a-d-e { + background: none; + margin-left: 5px; +} +.google-visualization-table-div-page .a-d-e.a-d-e-o-p { + margin-left: 0; +} +.google-visualization-table-table { + width: 100%; + border-collapse: separate; + border-spacing: 0; + border: 1px solid #D7D8DA; + border-left: 0; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + font-size: 10pt; + background: none !important; +} +.google-visualization-table-table td, +.google-visualization-table-table .tableHeaderRow td { + padding: 4px 10px; + border: none; + border-left: 1px solid #D7D8DA; + border-top: 1px solid #D7D8DA; + line-height: 20px; +} +.google-visualization-table-table .tableHeaderRow td { + font-weight: bold; + vertical-align: bottom; +} +.google-visualization-table-table tbody tr:nth-child(odd) td, +.google-visualization-table-table tbody tr:nth-child(odd) td { + background-color: rgba(255, 255, 255, 0.5); +} +.google-visualization-table-table .tableHeaderRow:first-child tr:first-child > td:first-child, +.google-visualization-table-table tbody:first-child tr:first-child > td:first-child { + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; +} +.google-visualization-table-table .tableHeaderRow:first-child tr:first-child > td:last-child, +.google-visualization-table-table tbody:first-child tr:first-child > td:last-child { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -moz-border-radius-topright: 4px; +} +.google-visualization-table-table tbody:last-child tr:last-child > td:first-child { + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; +} +.google-visualization-table-table tbody:last-child tr:last-child > td:last-child { + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -moz-border-radius-bottomright: 4px; +} +.google-visualization-table-table .tableHeaderRow:first-child tr:first-child td, +.google-visualization-table-table tbody:first-child tr:first-child td { + border-top: 0; +} +.table.table-invoice td { + border: none; + padding: 0; +} +.table.table-borderless td { + border: none; +} +.table-projects .stats span { + display: block; + text-transform: uppercase; + padding: 2px 0; +} +.table-projects .stats span.count { + font-size: 18pt; + font-weight: normal; + color: #468ccb; +} +.table-pricing th, +.table-pricing td { + padding: 10px; +} +.table-pricing .plan { + font-size: 14px; + display: block; +} +.table-pricing .price { + font-size: 24px; + display: block; +} +.table-pricing .heading { + font-size: 24px; + vertical-align: middle; +} +.table-pricing .standard { + vertical-align: middle; +} +.table-pricing .standard:before { + color: #797979; +} +.table-pricing .standard.circle_ok:before { + color: #9fc75f; +} +.table-pricing-2 th { + padding: 12px 0; + background: #64625f; + font-size: 14px; + color: #fff; + border-color: #5a5855; +} +.table-pricing-2 .pricing td { + padding: 12px 10px 10px; + background: #e5e5e5; + border-color: #cecece; +} +.widget.widget-tabs .tab-content { + padding: 0; +} +.widget.widget-tabs > .widget-head { + background: #e1e1e3; +} +.widget.widget-tabs > .widget-head ul { + list-style: none; + height: 36px; + margin: 0; + border-right: 1px solid #f5f5f5; + display: inline-block; +} +.widget.widget-tabs > .widget-head ul li { + height: 36px; + line-height: 36px; + float: left; + display: block; + border-right: 1px solid #d1d2d3; +} +.widget.widget-tabs > .widget-head ul li a { + width: auto; + height: auto; + display: block; + padding: 0 15px; + color: #939393; + border-left: 1px solid #f5f5f5; +} +.widget.widget-tabs > .widget-head ul li a:before { + left: 5px; + top: 3px; + color: #9d9d9d; + text-shadow: 0 1px 0 #fff; +} +.widget.widget-tabs > .widget-head ul li a.glyphicons { + padding: 0 15px 0 35px; +} +.widget.widget-tabs > .widget-head ul li.active { + background: #f5f5f5; + height: 37px; + color: #555555; +} +.widget.widget-tabs > .widget-head ul li.active:before { + color: #7a7a7a; +} +.widget.widget-tabs > .widget-head ul li:first-child { + -webkit-border-radius: 0 0 0 0; + -moz-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.widget.widget-tabs > .widget-head ul li:first-child a { + -webkit-border-radius: 0 0 0 0; + -moz-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.widget.widget-tabs .widget-body.large { + padding: 25px; +} +.widget.widget-tabs-2 { + border-bottom: 1px solid #dddddd; +} +.widget.widget-tabs-2.border-bottom-none { + border-bottom: none; +} +.widget.widget-tabs-2 > .widget-head { + background: #fff; + border: none; + border-bottom: 1px solid #dddddd; + padding: 0 10px; +} +.widget.widget-tabs-2 > .widget-head ul { + border-color: #ddd; +} +.widget.widget-tabs-2 > .widget-head ul li { + border: none; +} +.widget.widget-tabs-2 > .widget-head ul li.active { + background-color: #fafafa; + background-image: -moz-linear-gradient(top, #f7f7f7, #ffffff); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f7f7f7), to(#ffffff)); + background-image: -webkit-linear-gradient(top, #f7f7f7, #ffffff); + background-image: -o-linear-gradient(top, #f7f7f7, #ffffff); + background-image: linear-gradient(to bottom, #f7f7f7, #ffffff); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff7f7f7', endColorstr='#ffffffff', GradientType=0); +} +.widget.widget-tabs-2 > .widget-head ul li a { + border: 1px solid #dddddd; + border-bottom: none; + border-right: none; + color: #222; + text-transform: uppercase; +} +.widget.widget-tabs-2 > .widget-head ul li:first-child a { + -webkit-border-radius: 0 0 0 0; + -moz-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.widget.widget-tabs-2 > .widget-body { + background: #fff; + border: none; + padding: 15px 0; +} +.widget.widget-tabs-double > .widget-head { + height: 40px; + border-color: #d1d2d3; +} +.widget.widget-tabs-double > .widget-head ul { + height: 40px; + padding: 0; +} +.widget.widget-tabs-double > .widget-head ul li { + height: 40px; + line-height: 20px; + border-bottom: none; +} +.widget.widget-tabs-double > .widget-head ul li a { + height: 35px; + padding: 5px 0 0; +} +.widget.widget-tabs-double > .widget-head ul li a span { + display: block; + line-height: 15px; +} +.widget.widget-tabs-double > .widget-head ul li a.glyphicons { + padding: 5px 15px 0 38px; +} +.widget.widget-tabs-double > .widget-head ul li a.glyphicons:before { + left: 4px; + top: 5px; + font-size: 16px; +} +.widget.widget-tabs-double > .widget-head ul li.active { + height: 38px; +} +.widget.widget-tabs-double-2 { + border: none; +} +.widget.widget-tabs-double-2 > .widget-head { + border: 1px solid #e5e5e5; + border-bottom: none; + height: 70px; + border-bottom: 1px solid #e5e5e5; +} +.widget.widget-tabs-double-2 > .widget-head ul { + height: 70px; +} +.widget.widget-tabs-double-2 > .widget-head ul li { + margin: 0; + padding: 0; + height: 70px; + text-align: center; + -webkit-transition: background 1s ease; + -moz-transition: background 1s ease; + -o-transition: background 1s ease; + transition: background 1s ease; +} +.widget.widget-tabs-double-2 > .widget-head ul li a { + height: 70px; + padding: 5px 0 0; + margin: 0; + text-decoration: none; + text-align: center; +} +.widget.widget-tabs-double-2 > .widget-head ul li a span { + display: block; + line-height: 50px; + width: 100%; +} +.widget.widget-tabs-double-2 > .widget-head ul li a.glyphicons { + padding: 0 15px 0 15px; +} +.widget.widget-tabs-double-2 > .widget-head ul li a.glyphicons:before { + font-size: 24px; + position: relative; + display: block; + height: 24px; + width: auto; + padding: 10px 0; + line-height: 24px; + text-align: center; +} +.widget.widget-tabs-double-2 > .widget-head ul li.active { + height: 70px; + background: #f5f5f5; + border-bottom: none; +} +.widget.widget-tabs-double-2 > .widget-head ul li.active a { + color: #7a7a7a; +} +.widget.widget-tabs-double-2 > .widget-head ul li.active a:before { + color: #7a7a7a; +} +.widget.widget-tabs-double-2 > .widget-head ul li:hover { + background: #f5f5f5; +} +.widget.widget-tabs-double-2 > .widget-head ul li:hover a { + color: #7a7a7a; +} +.widget.widget-tabs-double-2 > .widget-head ul li:hover a:before { + color: #7a7a7a; +} +.widget.widget-tabs-double-2 > .widget-body { + padding: 0; + border: none; +} +.widget.widget-tabs-double-2 .widget-body-regular { + padding: 10px; + border: 1px solid #e5e5e5; +} +.widget.widget-tabs-double-2 .widget-body-regular p:last-child { + margin: 0; +} +.widget.widget-tabs-vertical { + border: 1px solid #e5e5e5; +} +.widget.widget-tabs-vertical > .widget-head { + border: none; + border-right: 1px solid #e5e5e5; + height: auto; + padding: 0; +} +.widget.widget-tabs-vertical > .widget-head ul { + display: block; + height: auto; + padding: 0; +} +.widget.widget-tabs-vertical > .widget-head ul.vertical { + position: absolute; + top: 0; + bottom: 0; + background-color: #ccc; +} +.widget.widget-tabs-vertical > .widget-head ul li { + float: none; + display: block; + border-right: none; + border-bottom: 1px solid #d1d2d3; + border-top: 1px solid #f5f5f5; +} +.widget.widget-tabs-vertical > .widget-head ul li:last-child { + border-bottom: none; +} +.widget.widget-tabs-vertical > .widget-body.tab-content { + padding: 10px 10px 10px 0; +} +.widget.widget-wizard-pills > .widget-head { + height: 80px; + padding: 10px 0; +} +.widget.widget-wizard-pills > .widget-head ul { + height: 60px; + border: none; +} +.widget.widget-wizard-pills > .widget-head ul li { + height: 60px; + line-height: 60px; + color: #444; + padding: 0 0 0 10px; + border: none; + text-shadow: 0 1px 0 #fff; + position: relative; +} +.widget.widget-wizard-pills > .widget-head ul li.status { + height: 45px; + padding: 15px 15px 0; +} +.widget.widget-wizard-pills > .widget-head ul li.status span.r { + display: block; + line-height: 15px; +} +.widget.widget-wizard-pills > .widget-head ul li a { + height: 58px; + line-height: 60px; + padding: 0; + width: 58px; + text-align: center; + background: #939393; + border: 1px solid #e5e5e5; + color: #c8c8c8; + font-size: 16pt; + -webkit-border-radius: 5px 5px 5px 5px; + -moz-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + position: relative; + z-index: 2; +} +.widget.widget-wizard-pills > .widget-head ul li.active { + height: 60px; + background: none; +} +.widget.widget-wizard-pills > .widget-head ul li.active a { + width: 60px; + height: 60px; + border: none; + background: #f5f5f5; + color: #555555; +} +.widget.widget-wizard-pills > .widget-head ul li.primary a { + width: 60px; + height: 60px; + background: #468ccb; + border: none; + color: #fff; +} +.widget.widget-wizard-pills > .widget-head ul li:not(:first-child):before { + position: absolute; + background: #939393; + height: 1px; + left: 0; + right: 0; + top: 29px; + display: block; + content: ""; + z-index: 1; +} +.widget.widget-wizard-pills > .widget-head ul li.no-padding { + padding: 0; +} +.widget.widget-tabs-2 { + border-bottom: 1px solid #e5e5e5; +} +.widget.widget-tabs-2.border-bottom-none { + border-bottom: none; +} +.widget.widget-tabs-2 > .widget-head { + background: #fff; + border: none; + border-bottom: 1px solid #e5e5e5; + padding: 0 10px; +} +.widget.widget-tabs-2 > .widget-head ul { + border-color: #e5e5e5; +} +.widget.widget-tabs-2 > .widget-head ul li { + border: none; +} +.widget.widget-tabs-2 > .widget-head ul li.active { + background-color: #f7f7f7; + background-image: -moz-linear-gradient(top, #f7f7f7, #ffffff); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f7f7f7), to(#ffffff)); + background-image: -webkit-linear-gradient(top, #f7f7f7, #ffffff); + background-image: -o-linear-gradient(top, #f7f7f7, #ffffff); + background-image: linear-gradient(to bottom, #f7f7f7, #ffffff); + background-repeat: repeat-x; +} +.widget.widget-tabs-2 > .widget-head ul li a { + border: 1px solid #dddddd; + border-bottom: none; + border-right: none; + color: #222; + text-transform: uppercase; +} +.widget.widget-tabs-2 > .widget-head ul li:first-child a { + -webkit-border-radius: 0 0 0 0; + -moz-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.widget.widget-tabs-2 > .widget-body { + background: #fff; + border: none; + padding: 15px; +} +.widget.tabs-right .widget-head ul { + float: right; +} +.widget.widget-tabs-icons-only > .widget-body { + padding: 0; +} +.widget.widget-tabs-icons-only > .widget-body p:last-child { + margin: 0; +} +.widget.widget-tabs-icons-only > .widget-head { + padding: 0 0 10px; + background: none; + border: none; + box-shadow: none; + -moz-box-shadow: none; + -webkit-box-shadow: none; + text-shadow: none; +} +.widget.widget-tabs-icons-only > .widget-head .heading { + padding: 0; + color: #444; +} +.widget.widget-tabs-icons-only > .widget-head ul { + display: block; + overflow: hidden; + position: relative; + list-style: none; + margin: 0; + height: 30px; + line-height: 30px; + padding: 0; +} +.widget.widget-tabs-icons-only > .widget-head ul li { + color: #dadada; + float: left; + display: block; + padding: 0 10px 0 0; + font-size: 8pt; + line-height: 30px; + margin: 0px 5px 4px; +} +.widget.widget-tabs-icons-only > .widget-head ul li.glyphicons { + width: 30px; + height: 30px; + padding: 0 3px; + text-align: center; + cursor: pointer; +} +.widget.widget-tabs-icons-only > .widget-head ul li.glyphicons:before { + background: #e5e5e5; + -webkit-transition: background 0.5s ease; + -moz-transition: background 0.5s ease; + -o-transition: background 0.5s ease; + transition: background 0.5s ease; + display: block; + -webkit-border-radius: 2px 2px 2px 2px; + -moz-border-radius: 2px 2px 2px 2px; + border-radius: 2px 2px 2px 2px; + height: 30px; + position: relative; + top: 0; + left: 0; + color: #64625f; + font-size: 17px; + line-height: 30px; +} +.widget.widget-tabs-icons-only > .widget-head ul li.glyphicons:hover:before { + background: #64625f; + color: #fff; +} +.widget.widget-tabs-icons-only > .widget-head ul li.glyphicons.active:before { + background: #64625f; + color: #fff; +} +.widget.widget-tabs-icons-only > .widget-head ul li.glyphicons:last-child { + padding: 0; +} +.widget.tabs-right .widget-head ul { + float: right; +} +.tabsbar { + height: 60px; + border: 1px solid #e5e5e5; + position: relative; + overflow: hidden; + margin: 0 0 10px; + background: #e1e1e3; +} +.tabsbar ul { + list-style: none; + margin: 0; + padding: 0; + height: 60px; + border-right: 1px solid #f5f5f5; + display: inline-block; +} +.tabsbar ul li { + float: left; + display: block; + height: 60px; + border-right: 1px solid #d1d2d3; + padding: 0; +} +.tabsbar ul li.glyphicons:before { + padding: 0 15px; + float: left; + width: 39px; + height: 60px; + line-height: 60px; + color: #9d9d9d; + position: relative; + top: auto; + left: auto; + text-align: center; +} +.tabsbar ul li a { + height: 60px; + line-height: 60px; + position: relative; + padding: 0 15px; + color: #9d9d9d; + text-decoration: none; + text-shadow: 0 1px 0 #fff; + -webkit-transition: background 1s ease; + -moz-transition: background 1s ease; + -o-transition: background 1s ease; + transition: background 1s ease; +} +.tabsbar ul li.active, +.tabsbar ul li:hover { + background: #f5f5f5; + color: #7a7a7a; +} +.tabsbar ul li.active:before, +.tabsbar ul li:hover:before { + color: #7a7a7a; +} +.tabsbar.tabsbar-2 { + height: 39px; +} +.tabsbar.tabsbar-2 ul { + height: 39px; +} +.tabsbar.tabsbar-2 ul li { + height: 39px; + padding: 0; +} +.tabsbar.tabsbar-2 ul li a { + height: 39px; + line-height: 39px; +} +.tabsbar.tabsbar-2 ul li.glyphicons:before { + line-height: 39px; + font-size: 20px; + height: 39px; + width: 33px; +} +.nav-tabs > li > a:hover, +.nav-pills > li > a, +.nav-pills > li > a:hover { + background: #468ccb; + border-bottom-color: #468ccb; + color: #fff; +} +.nav-tabs { + border-bottom-color: #468ccb; +} +.nav-tabs > li > a { + padding: 6px 8px; +} +.nav-tabs > .active > a, +.nav-tabs > .active > a:hover { + background: #468ccb; + border-top-color: #468ccb; + border-left-color: #468ccb; + border-right-color: #468ccb; + color: #fff; + font-weight: bold; + text-shadow: 0 1px 0 rgba(0, 0, 0, 0.5); + box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0.2), inset -1px -1px 1px rgba(0, 0, 0, 0.2); + -moz-box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0.2), inset -1px -1px 1px rgba(0, 0, 0, 0.2); + -webkit-box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0.2), inset -1px -1px 1px rgba(0, 0, 0, 0.2); +} +.nav-pills a { + cursor: pointer; + color: #BAAC98; + border-bottom: 1px solid #E1D6C7; +} +.nav-pills > .active > a, +.nav-pills > .active > a:hover { + background: #f7f0e8 url("../images/pattern-granite.png") repeat; + border-top-color: #e0d5c6; + border-left-color: #e0d5c6; + border-right-color: #e0d5c6; + background: #D67170; + color: #F7F0E8; +} +.nav-pills .glyphicons { + padding-left: 25px; +} +.nav-pills .glyphicons:before { + position: relative; + font-size: 14px; + left: -10px; + top: 2px; + color: #F5EADB; + font-weight: normal; + text-shadow: none; +} +.tab-content { + overflow: visible; + padding: 0; +} +.tooltip-inner { + background: #272a2c; + color: #bab9b9; +} +.tooltip.bottom .tooltip-arrow { + border-bottom-color: #272a2c; +} +#flotTip { + white-space: nowrap; + border: 1px solid #468ccb; + padding: 3px 8px; + background: #468ccb; + -webkit-border-radius: 5px 5px 5px 5px; + -moz-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0.2), inset -1px -1px 1px rgba(0, 0, 0, 0.2); + -moz-box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0.2), inset -1px -1px 1px rgba(0, 0, 0, 0.2); + -webkit-box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0.2), inset -1px -1px 1px rgba(0, 0, 0, 0.2); + position: absolute; + z-index: 100; + color: #fff; +} +.label-important { + background: #468ccb; +} +.label-block { + display: block; +} +.label-inverse { + background: #333333; +} +input, +button, +select, +textarea { + font-family: Meiryo UI, 'Open Sans', sans-serif; + -webkit-border-radius: 0 0 0 0; + -moz-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.form-control { + -webkit-border-radius: 0 0 0 0; + -moz-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.form-inline.small input, +.form-inline.small select { + margin: 0 5px 0 0; + -webkit-border-radius: 0 0 0 0; + -moz-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; + padding: 1px 5px; + border-color: #d8d9da; + color: #a7a7a7; +} +.form-inline.small select { + padding: 1px 0; + height: 23px; +} +.form-inline.small select:last-child { + margin-right: 0; +} +.form-inline.small label { + float: left; + margin: 0 5px 0 0; + display: block; +} +.form-inline.small .input-group.block { + display: block; +} +.form-inline.small .input-group input { + margin: 0; + width: 85%; +} +.form-inline.small .input-group .input-group-addon { + padding: 1px 3px; + margin: 0 0 0 -1px; + -webkit-border-radius: 0 0 0 0; + -moz-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; + background: #fff; + color: #d8d9da; + border-color: #d8d9da; +} +.form-inline.small .input-group .input-group-addon.glyphicons:before, +.form-inline.small .input-group .input-group-addon.social:before { + top: 4px; + left: 4px; + font-size: 14px; + color: #d0d1d1; +} +textarea:focus, +input[type="text"]:focus, +input[type="password"]:focus, +input[type="datetime"]:focus, +input[type="datetime-local"]:focus, +input[type="date"]:focus, +input[type="month"]:focus, +input[type="time"]:focus, +input[type="week"]:focus, +input[type="number"]:focus, +input[type="email"]:focus, +input[type="url"]:focus, +input[type="search"]:focus, +input[type="tel"]:focus, +input[type="color"]:focus, +.uneditable-input:focus { + border-color: #E0D5C6; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px #e0d5c6; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px #e0d5c6; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px #e0d5c6; +} +select, +textarea, +input[type="text"], +input[type="password"], +input[type="datetime"], +input[type="datetime-local"], +input[type="date"], +input[type="month"], +input[type="time"], +input[type="week"], +input[type="number"], +input[type="email"], +input[type="url"], +input[type="search"], +input[type="tel"], +input[type="color"], +.uneditable-input { + font-size: 13px; +} +.uniformjs .radio .disabled input[type="radio"], +.disabled input[type="checkbox"] { + margin-left: 0; +} +.uniformjs .radio { + height: auto; +} +.radio.inline + .radio.inline, +.checkbox.inline + .checkbox.inline { + margin-left: 3px; +} +.uniformjs label.radio { + margin-bottom: 0; +} +.uniformjs label.radio.inline { + margin: 0; +} +.checkbox.inline { + padding-bottom: 1px; +} +.uniformjs .radio span { + margin: 2px 0 0; +} +.uniformjs .checkbox span { + margin: -2px 0 0; +} +label, +input, +button, +select, +textarea { + font-size: 13px; +} +.input-full input { + width: 83%; + height: 17px; +} +.loginbox form { + margin: 0; +} +.loginbox .input-group-addon { + background: #fff; +} +.loginbox .input-group-addon:before { + color: #7f8284; +} +.loginbox .forgot { + margin-bottom: 5px; + text-align: right; + display: block; +} +legend { + line-height: normal; + height: auto; + font-size: 18px; + margin: 0 0 6px; + text-align: left; + padding: 0; + border: 0; + color: #797979; +} +input[type=text], +input[type=password], +select, +textarea { + border-color: #D8D9DA; + color: #A7A7A7; + -webkit-border-radius: 0 0 0 0; + -moz-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.checkbox, +.radio { + padding-left: 0; + margin-top: 0; +} +.form-actions { + margin-top: 0; + padding: 10px 20px; +} +.control-label.center { + text-align: center; +} +.form-horizontal .form-actions { + margin-top: 0; + padding: 10px 20px; +} +.form-horizontal .controls { + margin-left: 145px; +} +.input-group .input-group-addon, +.input-group .input-group-addon { + background: #fff; +} +.input-group .input-group-addon:before, +.input-group .input-group-addon:before { + color: #D0D1D1; +} +.input-group .input-group-addon icon, +.input-group .input-group-addon icon { + margin-top: 0; +} +.input-group .input-group-addon.glyphicons, +.input-group .input-group-addon.glyphicons { + background: #fff; +} +.input-group .input-group-addon.glyphicons:before, +.input-group .input-group-addon.glyphicons:before { + font-size: 14px; + left: 7px; + top: 7px; + color: #D0D1D1; +} +.input-group .input-group-addon.glyphicons :before { + left: 6px; +} +.input-group .glyphicons, +.input-group .social { + position: relative; + width: 16px; + padding: 0px; +} +.input-group .glyphicons:before, +.input-group .social:before { + top: -8px; + left: 0px; + font-size: 14px; + color: #d0d1d1; +} +.input-group-btn .btn .default { + -webkit-border-radius: 0px 3px 3px 0px; + -moz-border-radius: 0px 3px 3px 0px; + border-radius: 0px 3px 3px 0px; + margin-top: -1px; +} +.widget > .widget-body .input-btn-group .dropdown-toggle { + padding: 6px; + margin: 0; +} +.input-mini { + width: 60px; +} +#validateSubmitForm .control-label { + width: 110px; +} +#accordion { + margin: 0 0 10px; + position: relative; +} +.panel-group { + border-color: #e5e5e5; + -webkit-border-radius: 0 0 0 0; + -moz-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.panel-body { + font-size: 13px; + background: #fff; + -webkit-border-radius: 0 0 0 0; + -moz-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; + border-color: #e5e5e5; +} +.panel-heading .panel-title { + line-height: 20px; +} +.panel-heading .accordion-toggle { + background: #f5f5f5; + color: #444; + text-decoration: none; + -webkit-border-radius: 0 0 0 0; + -moz-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; + font-size: 13px; + padding: 0 10px 0 0; + line-height: 13px; +} +.panel-heading.glyphicons { + line-height: 29px; +} +.panel-heading.glyphicons:before { + display: block; + float: left; + font-size: 20px; + color: #797979; + top: auto; + left: auto; + width: 30px; + line-height: 29px; + height: 29px; + position: relative; + text-align: center; +} +.accordion2 .panel-default > .panel-heading { + color: #333333; + background-color: #fff; +} +.accordion2 .accordion-toggle { + background: #fff; + height: 30px; + line-height: 29px; +} +.accordion2 .accordion-toggle.glyphicons:before { + display: block; + float: left; + font-size: 20px; + color: #797979; + top: auto; + left: auto; + width: 30px; + line-height: 29px; + height: 29px; + position: relative; + text-align: center; +} +.accordion2 .accordion-body.in { + border-bottom: 1px solid #e5e5e5; +} +.accordion2 .accordion-group { + border: none; + margin: 0; +} +.accordion2 .accordion-group:last-child .accordion-body.in { + border-top: 1px solid #e5e5e5; +} +.accordion2 .accordion-inner { + border: none; +} +.widget .widget-body .panel-heading .accordion-toggle { + background: #fff; + line-height: 30px; + display: block; +} +.widget .widget-body .panel-heading .accordion-toggle.glyphicons i { + width: 30px; + line-height: 30px; + display: block; + height: 30px; + float: left; +} +.widget .widget-body .panel-heading { + background-color: #ffffff; +} +.widget .widget-body .panel-default { + padding: 0; + margin: 0; + border-top: none; +} +.widget .widget-body .glyphicons:before { + color: #cccccc; +} +.alert { + margin: 0 0 10px; + padding: 8px 35px 8px 14px; + -webkit-box-shadow: 0 2px 2px rgba(0, 0, 0, 0.1) inset, 0 0 0 1px rgba(255, 255, 255, 0.7) inset, 0 1px 0 rgba(255, 255, 255, 0.9); + -moz-box-shadow: 0 2px 2px rgba(0, 0, 0, 0.1) inset, 0 0 0 1px rgba(255, 255, 255, 0.7) inset, 0 1px 0 rgba(255, 255, 255, 0.9); + box-shadow: 0 2px 2px rgba(0, 0, 0, 0.1) inset, 0 0 0 1px rgba(255, 255, 255, 0.7) inset, 0 1px 0 rgba(255, 255, 255, 0.9); +} +.alert h4 { + margin: 0 0 5px; +} +.alert a { + font-style: italic; +} +.alert.alert-dismissable { + border: 1px solid #dcdcdc; +} +.alert.alert-error { + background: #f9e5e5; + color: #DA4C4C; + border-color: #e9a5a5; +} +.alert.alert-error h4 { + color: #DA4C4C; +} +.alert.alert-info { + background: #dff3f8; + color: #7399b9; + border-color: #93b9d8; +} +.alert.alert-success { + border-color: rgba(96, 148, 80, 0.7); +} +.alert .close { + position: relative; + top: -2px; + right: -21px; + color: inherit; +} +.progress { + margin: 0 0 10px; + height: 16px; + border: 1px solid #dcdcdc; + -webkit-box-shadow: none; + box-shadow: none; +} +.progress-bar-default { + background-color: #9d9d9d; +} +.progress-bar-primary { + background-color: #468ccb; +} +.sliders-vertical span { + height: 120px; + float: left; + margin: 15px; +} +.ui-widget-header { + border-color: #468ccb; + background: #468ccb; + color: #fff; +} +.ui-state-default, +.ui-widget-content .ui-state-default, +.ui-widget-header .ui-state-default { + background: #fafafa; + border-color: #dddddd; + color: #797979; +} +.ui-state-active, +.ui-widget-content .ui-state-active, +.ui-widget-header .ui-state-active { + background: #468ccb; + color: #fff; +} +.ui-widget-content { + border: none; +} +.ui-datepicker-inline { + width: 100%; + padding: 0; +} +.ui-slider-wrap { + display: block; + padding: 5px; + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2) inset, 0 2px 2px rgba(0, 0, 0, 0.05) inset, 0 0 0 1px rgba(255, 255, 255, 0.9) inset, 0 1px 0 rgba(255, 255, 255, 0.3) inset; + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2) inset, 0 2px 2px rgba(0, 0, 0, 0.05) inset, 0 0 0 1px rgba(255, 255, 255, 0.9) inset, 0 1px 0 rgba(255, 255, 255, 0.3) inset; + -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2) inset, 0 2px 2px rgba(0, 0, 0, 0.05) inset, 0 0 0 1px rgba(255, 255, 255, 0.9) inset, 0 1px 0 rgba(255, 255, 255, 0.3) inset; + -webkit-border-radius: 10px 10px 10px 10px; + -moz-border-radius: 10px 10px 10px 10px; + border-radius: 10px 10px 10px 10px; +} +.ui-slider-wrap .ui-slider { + background: rgba(0, 0, 0, 0.1); + box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0.2), inset -1px -1px 1px rgba(0, 0, 0, 0.2); + -moz-box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0.2), inset -1px -1px 1px rgba(0, 0, 0, 0.2); + -webkit-box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0.2), inset -1px -1px 1px rgba(0, 0, 0, 0.2); + -webkit-border-radius: 10px 10px 10px 10px; + -moz-border-radius: 10px 10px 10px 10px; + border-radius: 10px 10px 10px 10px; +} +.ui-slider-wrap .ui-slider-horizontal { + height: 10px; +} +.ui-slider-wrap .ui-slider-horizontal .ui-slider-handle { + top: -2px; +} +.ui-slider-wrap .ui-slider-vertical .ui-slider-handle { + left: -1px; +} +.ui-slider-wrap .ui-slider-handle { + -webkit-border-radius: 50% 50% 50% 50%; + -moz-border-radius: 50% 50% 50% 50%; + border-radius: 50% 50% 50% 50%; + background: #fff; + border-width: 3px; + border-style: solid; + border-color: rgba(0, 0, 0, 0.3); + width: 13px; + height: 13px; + box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.3); + -webkit-box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.3); + -moz-box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.3); +} +.ui-slider-wrap .ui-slider-range { + -webkit-border-radius: 10px 10px 10px 10px; + -moz-border-radius: 10px 10px 10px 10px; + border-radius: 10px 10px 10px 10px; + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.5) inset, 0 2px 2px rgba(0, 0, 0, 0.05) inset; + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.5) inset, 0 2px 2px rgba(0, 0, 0, 0.05) inset; + -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.5) inset, 0 2px 2px rgba(0, 0, 0, 0.05) inset; + background: rgba(0, 0, 0, 0.2); +} +.ui-slider-wrap .slider-primary .ui-slider-handle { + border-color: #468ccb; +} +.ui-slider-wrap .slider-primary .ui-slider-range { + background: #468ccb; +} +.ui-slider-wrap .slider-warning .ui-slider-handle { + border-color: #FBB450; +} +.ui-slider-wrap .slider-warning .ui-slider-range { + background: #FBB450; +} +.ui-slider-wrap .slider-success .ui-slider-handle { + border-color: #609450; +} +.ui-slider-wrap .slider-success .ui-slider-range { + background: #609450; +} +.ui-slider-wrap .slider-inverse .ui-slider-handle { + border-color: #3F4246; +} +.ui-slider-wrap .slider-inverse .ui-slider-range { + background: #3F4246; +} +.ui-slider-wrap .slider-info .ui-slider-handle { + border-color: #93B9D8; +} +.ui-slider-wrap .slider-info .ui-slider-range { + background: #93B9D8; +} +.sliders-vertical { + position: relative; + margin: 0 auto; + display: inline-block; +} +.sliders-vertical .ui-slider-wrap { + margin: 0 5px; +} +.sliders-vertical .ui-slider { + margin: 0; +} +.vertical-range-slider .ui-slider-wrap { + display: inline-block; + margin: 0 auto; +} +.btn-block.count { + text-align: left; +} +.btn-block.count.glyphicons .btn-block.count:before { + text-align: center; +} +.btn-block.count span { + float: right; + font-size: 18px; +} +.btn-group .btn-primary { + margin-right: 2px; +} +.btn-block { + width: 100%; +} +.btn-group-vertical.block { + display: block; +} +.btn-group-vertical > .btn-block.glyphicons { + padding: 5px 7px 8px 40px; +} +.btn { + box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0), inset -1px -1px 1px rgba(0, 0, 0, 0); + -moz-box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0), inset -1px -1px 1px rgba(0, 0, 0, 0); + -webkit-box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0), inset -1px -1px 1px rgba(0, 0, 0, 0); + box-shadow: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; +} +.btn-default { + background: #f4f4f4; + border: 1px solid #dcdcdc; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.75); + color: rgba(0, 0, 0, 0.6); + text-shadow: 0 1px 0 #fff; +} +.btn-group.open .btn-default.dropdown-toggle, +.btn-default.disabled, +.btn-default[disabled], +.btn-default:hover { + background: #e8e8e8; +} +.btn-default .caret { + border-top-color: rgba(0, 0, 0, 0.5); +} +.btn { +} +.btn-small { + padding: 2px 10px 2px 10px; +} +.btn-warning { + background: #FBB450; + border: 1px solid #FBB450; + color: #ffffff; + text-shadow: 0 1px 0 rgba(0, 0, 0, 0.5); +} +.btn-warning.glyphicons:before { + color: rgba(255, 255, 255, 0.5); + text-shadow: none; +} +.btn-group.open .btn-warning.dropdown-toggle, +.btn-warning.disabled, +.btn-warning[disabled], +.btn-warning:hover { + background: #FBB450; + color: #fff; +} +.btn-warning .caret { + border-top-color: rgba(255, 255, 255, 0.7); + border-bottom-color: rgba(255, 255, 255, 0.7); +} +.btn-info { + background: #93B9D8; + border: 1px solid #93B9D8; + color: #ffffff; + text-shadow: 0 1px 0 rgba(0, 0, 0, 0.5); +} +.btn-info.glyphicons:before { + color: rgba(255, 255, 255, 0.5); + text-shadow: none; +} +.btn-group.open .btn-info.dropdown-toggle, +.btn-info.disabled, +.btn-info[disabled], +.btn-info:hover { + background: #93B9D8; + color: #fff; +} +.btn-info .caret { + border-top-color: rgba(255, 255, 255, 0.7); + border-bottom-color: rgba(255, 255, 255, 0.7); +} +.btn-danger { + color: #fff; +} +.btn-danger.glyphicons:before { + color: rgba(255, 255, 255, 0.4); + text-shadow: none; +} +.btn-primary { + background: #468ccb; + border: 1px solid #2a87a7; + color: #ffffff; + text-shadow: 0 1px 0 rgba(0, 0, 0, 0.5); +} +.btn-primary.glyphicons:before { + color: rgba(255, 255, 255, 0.4); + text-shadow: none; +} +.btn-group.open .btn-primary.dropdown-toggle, +.btn-primary.disabled, +.btn-primary[disabled], +.btn-primary:hover { + background: #468ccb; + color: #fff; +} +.btn-primary .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} +.btn-group.btn-block { + padding: 0; + position: relative; +} +.btn-group.btn-block .leadcontainer { + left: 0; + position: absolute; + right: 29px; +} +.btn-group.btn-block .leadcontainer > .btn:first-child { + -webkit-border-radius: 0 0 0 0; + -moz-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; + margin-left: 0; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-topleft: 4px; +} +.btn-group.btn-block .dropdown-lead { + box-sizing: border-box; + width: 100%; +} +.btn-group.btn-block .dropdown-toggle { + width: 30px; + float: right; + box-sizing: border-box; + text-align: center; + padding: 7px 0 7px 0; +} +.btn-inverse { + background: #3f4246; + border: 1px solid #292a2c; + color: #ffffff; + text-shadow: 0 1px 0 rgba(0, 0, 0, 0.5); +} +.btn-inverse.glyphicons:before { + color: #919293; + text-shadow: none; +} +.btn-group.open .btn-inverse.dropdown-toggle, +.btn-inverse.disabled, +.btn-inverse[disabled], +.btn-inverse:hover { + background: #3f4246; + color: #fff; +} +.btn-inverse .caret { + border-top-color: #fff; + border-bottom-color: #fff; +} +.btn-success { + background: #609450; + border: 1px solid #709f61; + color: #ffffff; + text-shadow: 0 1px 0 rgba(0, 0, 0, 0.5); +} +.btn-success.glyphicons:before { + color: #a2bc9b; + text-shadow: none; +} +.btn-group.open .btn-success.dropdown-toggle, +.btn-success.disabled, +.btn-success[disabled], +.btn-success:hover { + background: #609450; + color: #fff; +} +.btn-success .caret { + border-top-color: #a2bc9b; + border-bottom-color: #a2bc9b; +} +.btn-group > .btn, +.btn-group > .dropdown-menu { + font-size: 13px; +} +.btn-toggle-code { + position: absolute; + bottom: 0; + right: 0; + z-index: 1000; + -webkit-border-radius: 0 0 0 0; + -moz-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.btn-toggle-code.outside { + bottom: -24px; +} +.btn-icon-stacked { + text-align: left; + padding: 5px 5px 5px 45px; +} +.btn-icon-stacked.glyphicons:before { + left: auto; + top: auto; + position: relative; + text-align: center; + display: block; + width: 24px; + height: 24px; + position: absolute; + left: 10px; + top: 10px; +} +.btn-icon-stacked span { + display: block; + font-size: 13px; + line-height: normal; +} +.round-right { + -webkit-border-radius: 0px 3px 3px 0px; + -moz-border-radius: 0px 3px 3px 0px; + border-radius: 0px 3px 3px 0px; +} +.round-left { + -webkit-border-radius: 3px 0px 0px 3px; + -moz-border-radius: 3px 0px 0px 3px; + border-radius: 3px 0px 0px 3px; +} +.round-none { + -webkit-border-radius: 0 0 0 0; + -moz-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.round-top { + -webkit-border-radius: 3px 3px 0px 0px; + -moz-border-radius: 3px 3px 0px 0px; + border-radius: 3px 3px 0px 0px; +} +.round-bottom { + -webkit-border-radius: 0px 0px 3px 3px; + -moz-border-radius: 0px 0px 3px 3px; + border-radius: 0px 0px 3px 3px; +} +.modal-backdrop { + z-index: 10000; + background: #000000; + /*&, &.fade.in { + opacity: 0.9; + filter: alpha(opacity=90); + }*/ + +} +.modal { + z-index: 10001; + border-color: #e5e5e5; + -webkit-border-radius: 0 0 0 0; + -moz-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; + /*background: #fff;*/ + + box-shadow: none; + -moz-box-shadow: none; + -webkit-box-shadow: none; +} +.modal .modal-header { + /*padding: 0 10px; + height: 29px; + line-height: 29px;*/ + + border-color: #e5e5e5; +} +.modal .modal-header h3 { + font-size: 14px; +} +.modal .modal-header .close { + position: absolute; + /*top: 5px;*/ + + right: 15px; + padding: 0; + margin: 0; + opacity: 1; + filter: alpha(opacity=100); +} +.modal .modal-body { + padding: 10px; +} +.modal .modal-body p:last-child { + margin: 0; +} +.modal .modal-footer { + -webkit-border-radius: 0 0 0 0; + -moz-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; + box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0), inset -1px -1px 1px rgba(0, 0, 0, 0); + -moz-box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0), inset -1px -1px 1px rgba(0, 0, 0, 0); + -webkit-box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0), inset -1px -1px 1px rgba(0, 0, 0, 0); + border-color: #e5e5e5; + padding: 10px; + background: #ffffff url("../images/pattern1.png") repeat; +} +.wizard .wizard-head { + background: #fff; + border: 1px solid #e5e5e5; + border-bottom: none; +} +.wizard .widget-head.progress { + -webkit-border-radius: 0 0 0 0; + -moz-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; + box-shadow: none; +} +.wizard .widget-head.progress .progress-bar-none { + background: none; + box-shadow: none; + background: #468ccb; +} +.bwizard-steps .label { + position: relative; + top: -1px; + margin: 0 5px 0 0; + padding: 1px 5px 2px; +} +.bwizard-steps .active .label { + background-color: #333; +} +.bwizard-steps { + display: block; + margin: 0; + padding: 0; + height: 40px; + list-style: none; +} +.bwizard-steps li { + display: block; + float: left; + position: relative; + margin-right: 5px; + line-height: 40px; + height: 40px; + background: #fafafa; +} +.bwizard-steps li a { + display: block; + height: 40px; + line-height: 40px; + padding: 0 20px 0 40px; +} +.bwizard-steps li.active { + color: #fff; + background: #468ccb; +} +.bwizard-steps li.active:after { + border-left-color: #468ccb; +} +.bwizard-steps li.active a { + color: #fff; + cursor: default; +} +.bwizard-steps li:after { + position: absolute; + right: -20px; + top: 0; + height: 0; + width: 0; + border-bottom: 20px inset transparent; + border-left: 20px solid #fafafa; + border-top: 20px inset transparent; + content: ""; + z-index: 2; +} +.bwizard-steps li:before { + position: absolute; + left: 0; + top: 0; + height: 0; + width: 0; + border-bottom: 20px inset transparent; + border-left: 20px solid #fff; + border-top: 20px inset transparent; + content: ""; +} +.bwizard-steps li:last-child { + margin-right: 0; +} +.bwizard-steps li:first-child:before { + border: none; +} +.bwizard-steps li:first-child a { + padding-left: 20px; +} +.bwizard-steps a:hover { + text-decoration: none; +} +@media (max-width: 480px) { + /* badges only on small screens */ + .bwizard-steps li:after, + .bwizard-steps li:before { + border: none; + } + .bwizard-steps li, + .bwizard-steps li.active, + .bwizard-steps li:first-child, + .bwizard-steps li:last-child { + margin-right: 0; + padding: 0; + background-color: transparent; + } +} +#landing_1 { + margin-top: 0; +} +#landing_1 .mosaic-line { + height: 58px; + line-height: 58px; + border-bottom: 1px solid #e5e5e5; + background: #f9f9f9; +} +#landing_1 .mosaic-line.mosaic-line-2 { + line-height: 100px; + height: 100px; +} +#landing_1 .mosaic-line.mosaic-line-2 h2 { + line-height: 100px; + text-shadow: 0 1px 0 #fff; +} +#landing_1 .mosaic-line.mosaic-line-2 h2 span { + color: #ccc; +} +#landing_1 .banner-1 { + height: 223px; + margin-bottom: 30px; + background: #2e2d2b; +} +#landing_1 .banner-1 .item { + height: 223px; + overflow: hidden; +} +#landing_1 .banner-1 .item img { + min-height: 100%; +} +#landing_1 .banner-1 .carousel-indicators { + position: relative; + top: auto; + bottom: -20px; + right: 0; +} +#landing_1 .banner-1 .carousel-indicators li { + background: #89cae1; +} +#landing_1 .banner-1 .carousel-indicators li.active { + background: #468ccb; +} +#landing_1 .banner-1 .carousel-caption { + height: 223px; + top: 0; +} +#landing_1 .banner-1 .carousel-caption h4 { + font-size: 12pt; +} +#landing_1 .banner-1 .carousel-caption a { + text-decoration: underline; + color: #468ccb; +} +#landing_1 .banner { + background: #000; + height: 321px; +} +#landing_1 .banner .banner-wrapper { + height: 321px; + position: relative; + overflow: hidden; +} +#landing_1 .banner .banner-wrapper.banner-1 { + margin: 0; + padding: 0; + background: #000; +} +#landing_1 .banner .banner-wrapper.banner-1 h3 { + height: 46px; + line-height: 46px; + top: 65px; + right: 27px; + position: absolute; + background: #fff; + color: #468ccb; + font-size: 22pt; + font-weight: bold; + padding: 0 15px; +} +#landing_1 .banner .banner-wrapper.banner-1 p { + position: absolute; + top: 126px; + right: 27px; + background: #1f1e1e; + color: #fff; + line-height: 25px; + width: 370px; + text-align: right; + padding: 10px 15px; +} +#landing_1 .banner .banner-wrapper.banner-1 p a { + text-decoration: underline; + color: #468ccb; +} +#landing_1 .banner .banner-wrapper.banner-1 .btn { + position: absolute; + top: 232px; + right: 27px; +} +.container-960 { + width: 960px; + margin: 0 auto; +} +.separator-line { + width: 100%; + height: 1px; + background: #e5e5e5; + margin-bottom: 10px; +} +div.glyphicons { + padding: 0 0 0 35px; +} +div.glyphicons:before { + color: #cccccc; +} +div.glyphicons.glyphicon-large { + padding: 0 0 0 75px; +} +div.glyphicons.glyphicon-large:before { + font-size: 50px; + left: 0; +} +div.glyphicons.glyphicon-large.group-column { + padding: 0 0 0 85px; +} +div.glyphicons.glyphicon-large.group-column:before { + font-size: 45px; + left: 12px; +} +div.glyphicons.glyphicon-top { + text-align: center; +} +div.glyphicons.glyphicon-top:before { + display: block; + position: relative; + left: auto; + top: auto; +} +div.glyphicons.glyphicon-top.glyphicon-xlarge i { + padding: 0 0 5px; +} +div.glyphicons.glyphicon-top.glyphicon-xlarge:before { + font-size: 70px; +} +div.glyphicons.glyphicon-primary:before { + color: #468ccb; +} +.social-large a { + display: block; + height: 97px; + float: left; + padding: 10px 18px; + color: #d5d5d5; + background: #ffffff; + font-weight: bold; + text-align: center; + border-right: 1px solid #e5e5e5; + text-decoration: none; +} +.social-large a.glyphicons, +.social-large a.social, +.social-large a.filetypes { + display: inline-block; + position: relative; +} +.social-large a.glyphicons:before, +.social-large a.social:before, +.social-large a.filetypes:before { + padding: 0 0 8px; + display: block; + text-align: center; + top: auto; + left: auto; + position: relative; + font-size: 50px; + color: #d5d5d5; +} +.social-large a.active, +.social-large a:hover { + color: #fff; + background: #468ccb; +} +.social-large a.active:before, +.social-large a:hover:before { + color: #fff; +} +.social-large a:last-child { + border: none; +} +@media screen and (min-width: 768px) { + #landing_1 .banner-1 .carousel-caption { + right: 20%; + left: 20%; + } +} +#login { + padding: 70px 0; + background-color: #f5f5f5; +} +#login .form-signin { + max-width: 350px; + padding: 19px 29px 29px; + margin: 0 auto 20px; + background-color: #fff; + border: 1px solid #e5e5e5; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); +} +#login .form-signin .form-signin-heading, +#login .form-signin .checkbox { + margin-bottom: 10px; +} +#login .form-signin input[type="text"], +#login .form-signin input[type="password"] { + font-size: 16px; + height: auto; + margin-bottom: 10px; + padding: 7px 9px; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.05); + background: #fff; +} +#login .checkbox { + padding-left: 0px; + font-weight: normal; +} +.gallery ul { + margin: 0; + padding: 0; + list-style: none; +} +.gallery ul li { + line-height: 20px; + float: left; + /*&.span2:nth-child(6n+7) { margin-left: 0; } + &.span3:nth-child(4n+5) { margin-left: 0; }*/ + +} +.gallery ul li .thumb { + position: relative; + background: #468ccb; + -webkit-border-radius: 10px 10px 10px 10px; + -moz-border-radius: 10px 10px 10px 10px; + border-radius: 10px 10px 10px 10px; + box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0.2), inset -1px -1px 1px rgba(0, 0, 0, 0.2); + -moz-box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0.2), inset -1px -1px 1px rgba(0, 0, 0, 0.2); + -webkit-box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0.2), inset -1px -1px 1px rgba(0, 0, 0, 0.2); + /*display: block;*/ + + padding: 10px; + margin-bottom: 20px; + z-index: 1; +} +.gallery ul li.col-md-4 { + margin-left: 0; +} +.gallery ul li img { + height: auto; + max-width: 100%; + border: 0; +} +.thumb { + border: 1px solid rgba(0, 0, 0, 0.3); + display: inline-block; +} +.thumbnails { + margin: 0; +} +.thumbnails > li { + margin-bottom: 10px; +} +.thumbnails > li .thumbnail { + border-color: #e5e5e5; + background: #fff; + -webkit-border-radius: 0 0 0 0; + -moz-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; + box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0), inset -1px -1px 1px rgba(0, 0, 0, 0); + -moz-box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0), inset -1px -1px 1px rgba(0, 0, 0, 0); + -webkit-box-shadow: inset 1px 1px 1px rgba(255, 255, 255, 0), inset -1px -1px 1px rgba(0, 0, 0, 0); +} +.thumbnails > li .thumbnail .caption { + color: #444; +} +.thumbnails > li a.thumbnail:hover, +.thumbnails > li a.thumbnail:focus { + border-color: #468ccb; + -webkit-box-shadow: 0 1px 4px rgba(55, 166, 205, 0.25); + -moz-box-shadow: 0 1px 4px rgba(55, 166, 205, 0.25); + box-shadow: 0 1px 4px rgba(55, 166, 205, 0.25); + text-decoration: none; +} +.thumbnail { + border-color: #e5e5e5; +} +a.thumbnail .caption { + display: block; +} +a.thumbnail:hover, +a.thumbnail:focus { + border-color: #468ccb; + -webkit-box-shadow: 0 1px 4px rgba(55, 166, 205, 0.25); + -moz-box-shadow: 0 1px 4px rgba(55, 166, 205, 0.25); + box-shadow: 0 1px 4px rgba(55, 166, 205, 0.25); + text-decoration: none; +} +.carousel { + margin-bottom: 10px; +} +.carousel .carousel-control { + font-size: 45px; +} +.carousel .carousel-control.right { + text-align: center; +} +.carousel .item img { + min-width: 100%; +} +#themer { + position: fixed; + top: 40%; + left: 50%; + z-index: 1000; + width: 260px; + margin: -50px 0 0 -130px; + text-align: left; +} +#themer.in { + overflow: visible; +} +#themer .close2 { + position: absolute; + background: #DDD; + color: #222; + height: 20px; + top: 14px; + right: 10px; + line-height: 20px; + text-align: center; + font-size: 10pt; + padding: 0 10px; + cursor: pointer; +} +#themer .wrapper { + position: relative; + background: #292c2e; + border: 1px solid #2f3235; + padding: 15px; + color: #fafafa; +} +#themer .wrapper hr.separator { + margin: 10px 0; + border-top-color: #5e646b; + border-bottom-color: #2f3235; +} +#themer .wrapper h4 { + border-bottom: 1px solid #5e6060; + padding: 0 0 10px; + margin: 0 0 10px; + color: #fff; +} +#themer .wrapper h4 span { + color: #5e6060; + font-weight: normal; + font-size: 10pt; +} +#themer .wrapper .btn { + margin: 0; +} +#themer .wrapper #themer-getcode-less { + margin: 0 0 0 5px; +} +#themer .wrapper ul { + margin: 0; + list-style: none; +} +#themer .wrapper ul li { + height: 25px; + line-height: 25px; + position: relative; +} +#themer .wrapper ul li .minicolors { + line-height: normal; + border: none; + top: 2px; + right: 0; + position: absolute; +} +#themer .wrapper ul li .minicolors input { + border: none; + height: 20px; + width: 69px; + background: #414649; + color: #fff; + font-size: 9pt; + padding: 0 5px; + margin: 0 0 1px; +} +#themer .wrapper ul li .minicolors-swatch { + cursor: pointer; + width: 18px; + height: 18px; +} +#themer .wrapper ul li .minicolors-panel { + z-index: 10000; + top: 24px; +} +#themer .wrapper ul li .minicolors-position-left .minicolors-panel { + left: -152px; +} +#themer .wrapper ul li select { + position: absolute; + top: 3px; + right: 0; + width: 100px; + height: 20px; + line-height: normal; + padding: 0; + margin: 0; + font-size: 9pt; + background: #414649; + border: 1px solid #2F3235; + color: #fff; +} +#themer .wrapper ul li .link { + text-decoration: underline; + cursor: pointer; +} +#themer .wrapper ul li label { + margin: 0; + line-height: 25px; + font-size: 9pt; +} +#themer .wrapper ul li label input { + margin: 0 0 1px; +} +#themer .wrapper ul li.advanced { + display: none; +} +#themer.themer-advanced .wrapper ul li.advanced { + display: block; +} +.documentation .widget > .widget-body.list.list-2 ul li a:before { + height: 24px; + width: 24px; +} +.documentation ul ul { + margin-bottom: 10px; +} +.documentation .col-md-3 .menu.affix { + position: fixed; + top: 20px; + width: 220px; +} +.documentation .show-grid { + margin-top: 10px; + margin-bottom: 20px; +} +.documentation .show-grid [class*="col-md-"] { + background-color: #535a5e; + text-align: center; + -webkit-border-radius: 3px 3px 3px 3px; + -moz-border-radius: 3px 3px 3px 3px; + border-radius: 3px 3px 3px 3px; + min-height: 40px; + line-height: 40px; + color: #fff; +} +.documentation .show-grid .show-grid { + margin-top: 0; + margin-bottom: 0; +} +.documentation .show-grid .show-grid [class*="col-md-"] { + background-color: #848d93; +} +.lt-ie9 .widget .widget-body.list ul li { + border-bottom: 1px solid #efefef; +} +.lt-ie9 .navbar.main .btn-navbar { + float: left; +} +.lt-ie9 .navbar.main .topnav { + position: absolute; + top: 0; + right: 0; + height: 42px; +} +.lt-ie9 .navbar.main .topnav .dropdown > a .caret { + margin-top: 0; + top: 8px; + left: 5px; +} +.lt-ie9 .heading-buttons h1.glyphicons, +.lt-ie9 .heading-buttons h2.glyphicons, +.lt-ie9 .heading-buttons h3.glyphicons, +.lt-ie9 .heading-buttons h4.glyphicons, +.lt-ie9 .heading-buttons h5.glyphicons, +.lt-ie9 .heading-buttons h6.glyphicons { + float: left; +} +.lt-ie9 #menu #search .glyphicons i { + width: 34px; + height: 30px; + display: block; +} +.lt-ie9 #menu #search .glyphicons i:before { + display: block; +} +.lt-ie9 .navbar.main .topnav .dropdown > a .caret { + position: relative; + vertical-align: middle; + top: 0; +} +.navbar.main .topnav > li > a.glyphicons .lt-ie9:before, +.navbar.main .topnav > li .notif li > a.glyphicons .lt-ie9:before { + vertical-align: middle; +} +#notyfy_container_bottomLeft { + bottom: 35px; + left: 20px; +} +.notyfy_wrapper h4 { + margin: 0 0 5px; +} +.notyfy_wrapper p { + margin: 0; +} +.notyfy_wrapper.notyfy_primary { + background-color: #468ccb; + border: none; +} +.notyfy_wrapper.notyfy_primary, +.notyfy_wrapper.notyfy_primary * { + color: #fff; +} +.gritter-item-wrapper .gritter-item p { + margin: 0 0 10px; +} +.gritter-item-wrapper .gritter-item p:last-child { + margin: 0; +} +.gritter-item-wrapper.gritter-primary .gritter-top { + display: none; +} +.gritter-item-wrapper.gritter-primary .gritter-bottom { + display: none; +} +.gritter-item-wrapper.gritter-primary .gritter-item { + background: rgba(55, 166, 205, 0.9); + padding: 10px 10px 15px; + -webkit-border-radius: 10px 10px 10px 10px; + -moz-border-radius: 10px 10px 10px 10px; + border-radius: 10px 10px 10px 10px; + color: #fff; +} +.gritter-item-wrapper.gritter-primary .gritter-item a { + color: #fff; + text-decoration: underline; +} +.notyfy_wrapper { + border: none; + -webkit-border-radius: 0 0 0 0; + -moz-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.notyfy_wrapper.notyfy_alert { + background: #ffffff; +} +.notyfy_wrapper.notyfy_error { + background: #bd362f; + color: #fff; +} +.notyfy_wrapper.notyfy_success { + background: #51a351; + color: #fff; +} +.notyfy_wrapper.notyfy_warning { + background: #74614f; + color: #fff; +} +.notyfy_wrapper.notyfy_information { + background: #57B7E2; + color: #fff; +} +.notyfy_wrapper.notyfy_confirm { + background: #ffffff; +} +.notyfy_wrapper.notyfy_primary { + background: #468ccb; + border: none; +} +.notyfy_wrapper.notyfy_primary, +.notyfy_wrapper.notyfy_primary * { + color: #fff; +} +.notyfy_wrapper.notyfy_default { + background: #fafafa; +} +.notyfy_wrapper.notyfy_dark { + background: #4a4846; +} +.notyfy_wrapper.notyfy_dark, +.notyfy_wrapper.notyfy_dark * { + color: #fff; +} +#notyfy_container_top { + top: 0; + left: 0; + width: 100%; +} +#notyfy_container_top .notyfy_wrapper { + -webkit-border-radius: 0 0 0 0; + -moz-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +@media (min-width: 980px) { + +} +@media (max-width: 767px) { + body { + padding: 0; + } + .fixed { + margin: 0; + border: none; + } + .nav-tabs > li > a { + font-size: 10pt; + } + .nav-tabs > li > a, + .nav-pills > li > a { + padding-left: 5px; + padding-right: 5px; + } + .documentation .span3 .menu.affix { + position: relative; + top: 0; + width: auto; + } + .phone-margin.bottom { + margin: 0 0 10px; + } + .well { + padding: 5px; + } + .widget .widget-body { + padding: 10px 5px; + } + .widget.margin-bottom-none { + margin-bottom: 20px; + } + .widget.widget-tabs-2 .widget-head { + height: auto; + } + .widget.widget-tabs-2 .widget-head ul { + display: block; + height: auto; + } + .widget.widget-tabs-2 .widget-head ul li { + float: none; + display: block; + width: 100%; + } + .widget-stats { + margin: 0 0 10px; + } + .right-menu #menu { + left: 0; + right: auto; + border-left: none; + border-right: 1px solid #dddddd; + } + .right-menu #menu ul li.active:after { + display: inline-block; + width: 9px; + position: absolute; + top: 0; + bottom: 0; + right: -10px; + content: ""; + background: #468ccb; + } + .right-menu #menu #menuInner { + box-shadow: -2px 0 5px rgba(0, 0, 0, 0.1) inset; + -moz-box-shadow: -2px 0 5px rgba(0, 0, 0, 0.1) inset; + -wekbit-box-shadow: -2px 0 5px rgba(0, 0, 0, 0.1) inset; + float: left; + border-left: none; + border-right: 1px solid #d0d0d0; + } + .right-menu #content { + margin: 0 0 0 234px; + } + .menu-hidden #content { + margin: 0; + } + .container-960 { + width: auto; + } + #landing_1 [class*="span"] { + padding: 0 5px; + } + #landing_1 .banner-1 { + height: auto; + } + #landing_1 .banner-1 .item { + height: auto; + } + #landing_1 .banner-1 .item img { + min-height: 0; + height: auto; + } + #landing_1 .banner-1 .carousel-caption { + height: auto; + } + #landing_1 .banner { + height: auto; + } + #landing_1 .banner .banner-wrapper { + height: auto; + } + #landing_1 .banner .banner-wrapper.banner-1 h3, + #landing_1 .banner .banner-wrapper.banner-1 p, + #landing_1 .banner .banner-wrapper.banner-1 .btn { + position: relative; + top: auto; + right: auto; + } + #landing_1 .banner .banner-wrapper.banner-1 .btn { + display: block; + -webkit-border-radius: 0 0 0 0; + -moz-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; + } + #landing_1 .banner .banner-wrapper.banner-1 p { + margin: 0 0 5px; + text-align: center; + } + #landing_1 .banner .banner-wrapper.banner-1 h3 { + font-size: 12pt; + line-height: 46px; + text-align: center; + } + .social-large { + height: auto; + } + .social-large a { + float: none; + display: block; + border: none; + border-bottom: 1px solid #e5e5e5; + } + .social-large a:last-child { + border: none; + } +} +@media (max-width: 480px) { + h1, + h2, + h3 { + line-height: 30px; + font-size: 18pt; + } + .fixed { + margin: 0; + border: none; + } + h3.glyphicons i:before, + h2.glyphicons i:before { + font-size: 24px; + top: 3px; + left: 5px; + } + .heading-buttons .buttons { + margin-top: -1px; + } + .separator { + margin: 10px 0; + } + .table-condensed th, + .table-condensed td { + padding: 4px 5px; + } + p.glyphicons { + padding: 5px 0 10px 55px; + } + p.glyphicons i:before { + color: #D67170; + font-size: 35pt; + top: 0; + } + p.glyphicons.right { + padding: 0 55px 0 0; + } +} +@media (max-width: 320px) { + .nav-tabs > li, + .nav-tabs > li > a, + .nav-tabs > li > a:hover { + display: block; + float: none; + margin: 0 0 -1px; + border-color: #468ccb; + } + .nav-tabs > li:hover { + border-color: #468ccb; + } + .nav-tabs > li, + .nav-tabs > li > a { + border-color: #E0D5C6; + background: #F5EADB; + -webkit-border-radius: 0 0 0 0; + -moz-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; + } +} +@media (max-width: 240px) { + +} +@media (max-width: 979px) and (min-width: 768px) { + .fixed { + margin: 0; + border: none; + } + .widget-stats { + padding: 10px; + } + .widget-stats .glyphicons { + padding: 0 10px 0 0; + } + .widget-stats .glyphicons i:before { + font-size: 20px; + top: -5px; + } +} +@media (max-width: 979px) and (min-width: 480px) { + +} +/* High-Res / Retina */ +@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 3/2), only screen and (min--moz-device-pixel-ratio: 1.5), only screen and (min-device-pixel-ratio: 1.5) { + +} +/* Responsive Tables */ +@media only screen and (max-width: 979px) { + .fixed { + margin: 0; + border: none; + } + .table-responsive.swipe-horizontal { + border-collapse: collapse; + border-spacing: 0; + display: block; + position: relative; + width: 100%; + border-left: 1px solid #DDD; + } + .table-responsive.swipe-horizontal th, + .table-responsive.swipe-horizontal td { + display: block; + margin: 0; + vertical-align: top; + } + .table-responsive.swipe-horizontal th { + text-align: right; + border-bottom: 0; + border-left: 0; + } + .table-responsive.swipe-horizontal td { + min-height: 1.25em; + text-align: left; + border-left: 0; + border-right: 0; + border-bottom: 0; + border-top: 0; + } + .table-responsive.swipe-horizontal thead { + display: block; + float: left; + } + .table-responsive.swipe-horizontal thead tr { + display: block; + } + .table-responsive.swipe-horizontal tbody { + display: block; + width: auto; + position: relative; + overflow-x: auto; + white-space: nowrap; + word-spacing: 0; + letter-spacing: 0; + font-size: 0; + } + .table-responsive.swipe-horizontal tbody tr { + display: inline-block; + vertical-align: top; + border-left: 1px solid #d7d8da; + } + .table-responsive.block { + /* Force table to not be like tables anymore */ + + /* Hide table headers (but not display: none;, for accessibility) */ + + /* + Label the data + */ + + } + .table-responsive.block table, + .table-responsive.block thead, + .table-responsive.block tbody, + .table-responsive.block th, + .table-responsive.block td, + .table-responsive.block tr { + display: block; + } + .table-responsive.block thead tr { + position: absolute; + top: -9999px; + left: -9999px; + } + .table-responsive.block tr { + border: 1px solid #d7d8da; + } + .table-responsive.block td { + /* Behave like a "row" */ + + border: none; + border-bottom: 1px solid #d7d8da; + position: relative; + padding-left: 50%; + white-space: normal; + text-align: left; + } + .table-responsive.block td:before { + /* Now like a table header */ + + position: absolute; + /* Top/left values mimic padding */ + + vertical-align: middle; + left: 6px; + width: 45%; + padding-right: 10px; + white-space: nowrap; + text-align: right; + font-weight: bold; + } + .table-responsive.block td:before { + content: attr(data-title); + } +} +@media (max-width: 767px) { + .fixed { + margin: 0; + border: none; + } + body.choose ul li { + height: auto; + text-align: center; + line-height: normal; + } + body.choose ul li span { + width: 100%; + display: block; + text-align: center; + padding: 0 0 5px; + } + body.choose #choose-preview { + background: none; + width: 357px; + height: 222px; + } + body.choose #choose-preview > span { + left: 0; + top: 0; + } +} +.filter-bar { + background: #f5f5f5; + border: 1px solid #d8d9da; + border-left: none; + border-right: none; + margin: 0 auto 15px; + padding: 5px 10px; + line-height: 30px; + /* Desktops */ + +} +.filter-bar .input-group-addon { + color: #ccc; + -webkit-border-radius: 0 0 0 0; + -moz-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.filter-bar label { + font-weight: normal; +} +.filter-bar.dark { + background: #64625f; + color: #fff; +} +@media (min-width: 992px) { + .filter-bar label { + float: left; + margin-right: 5px; + margin-left: 5px; + } + .filter-bar .form-group:first-of-type label { + margin-left: 0; + } +} +.bootstrap-select:not([class*="col"]) { + width: 220px; +} +.bootstrap-select:not([class*="col"]) .btn { + width: 220px; +} +.bootstrap-select[class*="col"] .btn { + width: 100%; +} +.widget.boxed { + border: 1px solid #efefef; +} +.widget .widget-body hr { + border: 1px solid #efefef; +} +.widget .widget-post p { + padding: 5px; +} +.widget .widget-post img { + margin: 5px; +} +img.rounded-img { + -webkit-border-radius: 2px 0 0 0; + -moz-border-radius: 2px 0 0 0; + border-radius: 2px 0 0 0; +} +.bottom-social { + line-height: 28px; + font-style: italic; +} +.bottom-social a { + color: #468ccb; + margin-right: 7px; +} +.bottom-social .glyphicons, +.bottom-social .social { + font-size: 12px; + padding: 0 0 0 25px; +} +.bottom-social .glyphicons.conversation .bottom-social .glyphicons:before, +.bottom-social .glyphicons.conversation .bottom-social .social:before, +.bottom-social .social.conversation .bottom-social .glyphicons:before, +.bottom-social .social.conversation .bottom-social .social:before { + color: #468ccb; +} +.bottom-social .glyphicons:before, +.bottom-social .social:before { + color: #ccc; + font-size: 17px; + left: 0; + top: 4px; +} +ul.social-comments { + list-style: none; + padding: 0 10px 10px 10px; +} +ul.social-comments li { + margin-bottom: 5px; +} +ul.social-comments li .user-info { + position: relative; + display: block; + margin: 0; + border-bottom: 1px solid #efefef; + padding-top: 0px; + padding-bottom: 3px; +} +ul.social-comments li .user-info abbr { + position: relative; + display: block; + clear: both; + font-size: 11px; + font-style: italic; + color: #797979; +} +.activity-line p { + margin-top: 8px; +} +.activity-line .border-top { + border-top: 1px solid #efefef; +} +.activity-line .icon .glyphicons { + height: 40px; +} +.activity-line .icon .glyphicons:before { + line-height: 40px; +} +.activity-line .icons .glyphicons { + padding-left: 25px; + line-height: 25px; +} +.activity-line .icons .glyphicons:before { + padding: 0 3px; + font-size: 18px; + color: #ccc; +} +.activity-line.medium .icon .glyphicons { + height: 80px; +} +.activity-line.medium .icon .glyphicons:before { + line-height: 80px; +} +.activity-line.large .icon .glyphicons { + height: 120px; +} +.activity-line.large .icon .glyphicons:before { + line-height: 120px; +} +.activity-line .color-widget .activity-action.glyphicons:before { + color: rgba(255, 255, 255, 0.3); +} +.activity-line .color-widget .activity-action.glyphicons:hover:before { + color: #fff; +} +.activity-line a.activity-action { + padding: 0; +} +.activity-line a.activity-action.glyphicons { + margin-right: 30px; +} +.activity-line a.activity-action.glyphicons:before { + font-size: 17px; + line-height: 40px; + color: #d9d9d9; +} +.activity-line a.activity-action.glyphicons:hover:before { + color: #808080; +} +.activity-line .primary { + background-color: #468ccb; +} +.activity-line .color-widget { + color: #fff; +} +.activity-line .color-widget .social { + height: 120px; + padding: 36px; + margin: 0; +} +.activity-line .color-widget .social.social-big:before { + color: rgba(255, 255, 255, 0.3); + font-size: 70px; + line-height: 120px; +} +.activity-line .color-widget.primary { + background-color: #468ccb; +} +.activity-line .color-widget.primary .darken { + background-color: #2a87a7; +} +.activity-line .color-widget.primary .darken .glyphicons:before { + color: #000000; +} +.activity-line .color-widget.danger { + background-color: #d9534f; +} +.activity-line .color-widget.danger .darken { + background-color: #c9302c; +} +.activity-line .color-widget.danger .darken .glyphicons:before { + color: rgba(255, 255, 255, 0.5); +} +.activity-line .color-widget.success { + background-color: #609450; +} +.activity-line .color-widget.success .darken { + background-color: #4b733e; +} +.activity-line .color-widget.warning { + background-color: #fbb450; +} +.activity-line .color-widget.warning .darken { + background-color: #fa9f1e; +} +.activity-line .color-widget.inverse { + background-color: #333333; +} +.activity-line .color-widget.inverse .darken { + background-color: #1a1a1a; +} +.activity-line .color-widget.dribble { + background-color: #fce7ef; +} +.activity-line .color-widget.dribble .social.social-big:before { + color: #ea4c89; +} +.activity-line .color-widget.dribble .darken { + background-color: #e51e6b; +} +.activity-line .color-widget a { + color: #fff; + font-weight: bold; +} +.activity-line.inverse { + background-color: #333333; +} +.activity-line .icon { + position: relative; + display: inline-block; + -webkit-border-radius: 3px 0 0 3px; + -moz-border-radius: 3px 0 0 3px; + border-radius: 3px 0 0 3px; +} +.activity-line .icon .glyphicons { + padding-left: 30px; + padding-right: 10px; +} +.activity-line .icon .glyphicons:before { + padding-left: 10px; + color: #fff; + font-size: 18px; +} +.activity-line .icon.primary { + background-color: #468ccb; +} +.activity-line .icon.danger { + background-color: #d9534f; +} +.activity-line .icon.success { + background-color: #609450; +} +.activity-line .icon.inverse { + background-color: #333333; +} +.activity-line .icon.warning { + background-color: #fbb450; +} +.activity-line span { + padding-left: 10px; +} +.activity-line .activity-author { + float: left; + margin: 0 10px 10px 10px; +} +.activity-line .activity-status { + font-size: 14px; + margin-left: -15px; + margin-top: 15px; + position: relative; +} +.activity-line .activity-status span { + position: relative; + float: left; + width: 80%; + margin-top: 3px; + padding-left: 20px; + font-size: 12px; +} +.activity-line .activity-status span.glyphicons:before { + padding: 0; + font-size: 16px; + color: #ccc; +} +.activity-line .activity-content { + background: #efefef; + clear: both; + padding: 10px; +} +.activity-line .activity-comments { + margin-top: -8px; +} +.activity-line .activity-comments p.comment { + font-size: 13px; + border: 1px solid #efefef; + background: #f7f7f7; + padding: 5px 10px 5px 40px; + color: #797979; +} +.activity-line .activity-comments p.comment.glyphicons:before { + font-size: 24px; + color: #e2e2e2; + padding: 8px; +} +.activity-line .activity-comments abbr { + font-size: 11px; + font-style: italic; + color: #797979; + display: block; +} +.share { + margin: 5px; +} +.share .form-control { + -webkit-border-radius: 0px 0px 3px 3px; + -moz-border-radius: 0px 0px 3px 3px; + border-radius: 0px 0px 3px 3px; + width: 100%; + border: none; + box-shadow: none; + border-bottom: 1px solid #efefef; +} +.share .share-buttons { + position: relative; + display: inline; + height: 38px; + margin: 0; + padding: 0; +} +.share .share-buttons .glyphicons, +.share .share-buttons .glyphicons-social { + height: 38px; + width: 40px; + padding: 13px; + margin: 0; +} +.share .share-buttons .glyphicons:before, +.share .share-buttons .glyphicons-social:before { + font-size: 18px; + line-height: 40px; + color: #ccc; + padding-left: 10px; + margin: 0; +} +.share .share-buttons .glyphicons:hover:before, +.share .share-buttons .glyphicons-social:hover:before { + color: #468ccb; +} +.share .btn-primary { + margin: 8px 3px; +} +.padding-none-left { + padding-left: 0; +} +.padding-none-right { + padding-right: 0; +} diff --git a/public/css/blueimp-gallery.min.css b/public/css/blueimp-gallery.min.css new file mode 100644 index 0000000..c65eaa0 --- /dev/null +++ b/public/css/blueimp-gallery.min.css @@ -0,0 +1 @@ +@charset "UTF-8";.blueimp-gallery,.blueimp-gallery>.slides>.slide>.slide-content{position:absolute;top:0;right:0;bottom:0;left:0;-moz-backface-visibility:hidden}.blueimp-gallery>.slides>.slide>.slide-content{margin:auto;width:auto;height:auto;max-width:100%;max-height:100%;opacity:1}.blueimp-gallery{position:fixed;z-index:999999;overflow:hidden;background:#000;background:rgba(0,0,0,.9);opacity:0;display:none;direction:ltr;-ms-touch-action:none;touch-action:none}.blueimp-gallery-carousel{position:relative;z-index:auto;margin:1em auto;padding-bottom:56.25%;box-shadow:0 0 10px #000;-ms-touch-action:pan-y;touch-action:pan-y}.blueimp-gallery-display{display:block;opacity:1}.blueimp-gallery>.slides{position:relative;height:100%;overflow:hidden}.blueimp-gallery-carousel>.slides{position:absolute}.blueimp-gallery>.slides>.slide{position:relative;float:left;height:100%;text-align:center;-webkit-transition-timing-function:cubic-bezier(0.645,.045,.355,1);-moz-transition-timing-function:cubic-bezier(0.645,.045,.355,1);-ms-transition-timing-function:cubic-bezier(0.645,.045,.355,1);-o-transition-timing-function:cubic-bezier(0.645,.045,.355,1);transition-timing-function:cubic-bezier(0.645,.045,.355,1)}.blueimp-gallery,.blueimp-gallery>.slides>.slide>.slide-content{-webkit-transition:opacity .5s linear;-moz-transition:opacity .5s linear;-ms-transition:opacity .5s linear;-o-transition:opacity .5s linear;transition:opacity .5s linear}.blueimp-gallery>.slides>.slide-loading{background:url(../img/loading.gif) center no-repeat;background-size:64px 64px}.blueimp-gallery>.slides>.slide-loading>.slide-content{opacity:0}.blueimp-gallery>.slides>.slide-error{background:url(../img/error.png) center no-repeat}.blueimp-gallery>.slides>.slide-error>.slide-content{display:none}.blueimp-gallery>.prev,.blueimp-gallery>.next{position:absolute;top:50%;left:15px;width:40px;height:40px;margin-top:-23px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:60px;font-weight:100;line-height:30px;color:#fff;text-decoration:none;text-shadow:0 0 2px #000;text-align:center;background:#222;background:rgba(0,0,0,.5);-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;border:3px solid #fff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:.5;cursor:pointer;display:none}.blueimp-gallery>.next{left:auto;right:15px}.blueimp-gallery>.close,.blueimp-gallery>.title{position:absolute;top:15px;left:15px;margin:0 40px 0 0;font-size:20px;line-height:30px;color:#fff;text-shadow:0 0 2px #000;opacity:.8;display:none}.blueimp-gallery>.close{padding:15px;right:15px;left:auto;margin:-15px;font-size:30px;text-decoration:none;cursor:pointer}.blueimp-gallery>.play-pause{position:absolute;right:15px;bottom:15px;width:15px;height:15px;background:url(../img/play-pause.png) 0 0 no-repeat;cursor:pointer;opacity:.5;display:none}.blueimp-gallery-playing>.play-pause{background-position:-15px 0}.blueimp-gallery>.prev:hover,.blueimp-gallery>.next:hover,.blueimp-gallery>.close:hover,.blueimp-gallery>.title:hover,.blueimp-gallery>.play-pause:hover{color:#fff;opacity:1}.blueimp-gallery-controls>.prev,.blueimp-gallery-controls>.next,.blueimp-gallery-controls>.close,.blueimp-gallery-controls>.title,.blueimp-gallery-controls>.play-pause{display:block;-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);-o-transform:translateZ(0);transform:translateZ(0)}.blueimp-gallery-single>.prev,.blueimp-gallery-left>.prev,.blueimp-gallery-single>.next,.blueimp-gallery-right>.next,.blueimp-gallery-single>.play-pause{display:none}.blueimp-gallery>.slides>.slide>.slide-content,.blueimp-gallery>.prev,.blueimp-gallery>.next,.blueimp-gallery>.close,.blueimp-gallery>.play-pause{-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}body:last-child .blueimp-gallery>.slides>.slide-error{background-image:url(../img/error.svg)}body:last-child .blueimp-gallery>.play-pause{width:20px;height:20px;background-size:40px 20px;background-image:url(../img/play-pause.svg)}body:last-child .blueimp-gallery-playing>.play-pause{background-position:-20px 0}*+html .blueimp-gallery>.slides>.slide{min-height:300px}*+html .blueimp-gallery>.slides>.slide>.slide-content{position:relative}@charset "UTF-8";.blueimp-gallery>.indicator{position:absolute;top:auto;right:15px;bottom:15px;left:15px;margin:0 40px;padding:0;list-style:none;text-align:center;line-height:10px;display:none}.blueimp-gallery>.indicator>li{display:inline-block;width:9px;height:9px;margin:6px 3px 0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;border:1px solid transparent;background:#ccc;background:rgba(255,255,255,.25)center no-repeat;border-radius:5px;box-shadow:0 0 2px #000;opacity:.5;cursor:pointer}.blueimp-gallery>.indicator>li:hover,.blueimp-gallery>.indicator>.active{background-color:#fff;border-color:#fff;opacity:1}.blueimp-gallery-controls>.indicator{display:block;-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);-o-transform:translateZ(0);transform:translateZ(0)}.blueimp-gallery-single>.indicator{display:none}.blueimp-gallery>.indicator{-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}*+html .blueimp-gallery>.indicator>li{display:inline}@charset "UTF-8";.blueimp-gallery>.slides>.slide>.video-content>img{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:auto;height:auto;max-width:100%;max-height:100%;-moz-backface-visibility:hidden}.blueimp-gallery>.slides>.slide>.video-content>video{position:absolute;top:0;left:0;width:100%;height:100%}.blueimp-gallery>.slides>.slide>.video-content>iframe{position:absolute;top:100%;left:0;width:100%;height:100%;border:none}.blueimp-gallery>.slides>.slide>.video-playing>iframe{top:0}.blueimp-gallery>.slides>.slide>.video-content>a{position:absolute;top:50%;right:0;left:0;margin:-64px auto 0;width:128px;height:128px;background:url(../img/video-play.png) center no-repeat;opacity:.8;cursor:pointer}.blueimp-gallery>.slides>.slide>.video-content>a:hover{opacity:1}.blueimp-gallery>.slides>.slide>.video-playing>a,.blueimp-gallery>.slides>.slide>.video-playing>img{display:none}.blueimp-gallery>.slides>.slide>.video-content>video{display:none}.blueimp-gallery>.slides>.slide>.video-playing>video{display:block}.blueimp-gallery>.slides>.slide>.video-loading>a{background:url(../img/loading.gif) center no-repeat;background-size:64px 64px}body:last-child .blueimp-gallery>.slides>.slide>.video-content:not(.video-loading)>a{background-image:url(../img/video-play.svg)}*+html .blueimp-gallery>.slides>.slide>.video-content{height:100%}*+html .blueimp-gallery>.slides>.slide>.video-content>a{left:50%;margin-left:-64px} \ No newline at end of file diff --git a/public/css/bootstrap-image-gallery.css b/public/css/bootstrap-image-gallery.css new file mode 100644 index 0000000..1ec2914 --- /dev/null +++ b/public/css/bootstrap-image-gallery.css @@ -0,0 +1,87 @@ +@charset "UTF-8"; +/* + * Bootstrap Image Gallery CSS 3.0.0 + * https://github.com/blueimp/Bootstrap-Image-Gallery + * + * Copyright 2013, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/MIT + */ + +.blueimp-gallery .modal-body { + position: relative; + text-align: center; + padding: 0 0 56.25% 0; + overflow: hidden; + cursor: pointer; +} +.blueimp-gallery .modal-footer { + margin: 0; +} +.blueimp-gallery .modal-body img, +.blueimp-gallery .modal-body .video-content video, +.blueimp-gallery .modal-body .video-content iframe, +.blueimp-gallery .modal-body .video-content a { + max-width: 100%; + max-height: 100%; + margin: auto; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; +} +.blueimp-gallery .modal-body .video-content video { + display: none; +} +.blueimp-gallery .modal-body .video-playing video { + display: block; +} +.blueimp-gallery .modal-body .video-content iframe { + width: 100%; + height: 100%; + border: none; + left: 100%; +} +.blueimp-gallery .modal-body .video-playing iframe { + left: 0; +} +.blueimp-gallery .modal-body .video-playing img, +.blueimp-gallery .modal-body .video-playing a { + display: none; +} +.blueimp-gallery .modal-body .video-content a { + cursor: pointer; +} +.blueimp-gallery .modal-body .video-content a:after { + font-family: "Glyphicons Halflings"; + -webkit-font-smoothing: antialiased; + content: "\e029"; + font-size: 64px; + line-height: 64px; + width: 64px; + height: 64px; + position: absolute; + top: 50%; + margin: -32px 0 0 -32px; +} +.blueimp-gallery .modal-body .video-loading a { + background: url(../img/loading.gif) center no-repeat; + background-size: 64px 64px; +} +.blueimp-gallery .modal-body .video-loading a:after { + content: none; +} + +@media screen and (min-width: 768px) { + .blueimp-gallery .modal-dialog { + right: auto; + left: auto; + width: auto; + max-width: 900px; + padding-left: 5%; + padding-right: 5%; + } +} diff --git a/public/css/bootstrap-image-gallery.min.css b/public/css/bootstrap-image-gallery.min.css new file mode 100644 index 0000000..86dfa0b --- /dev/null +++ b/public/css/bootstrap-image-gallery.min.css @@ -0,0 +1 @@ +@charset "UTF-8";.blueimp-gallery .modal-body{position:relative;text-align:center;padding:0 0 56.25%;overflow:hidden;cursor:pointer}.blueimp-gallery .modal-footer{margin:0}.blueimp-gallery .modal-body img,.blueimp-gallery .modal-body .video-content video,.blueimp-gallery .modal-body .video-content iframe,.blueimp-gallery .modal-body .video-content a{max-width:100%;max-height:100%;margin:auto;position:absolute;top:0;right:0;bottom:0;left:0}.blueimp-gallery .modal-body .video-content video{display:none}.blueimp-gallery .modal-body .video-playing video{display:block}.blueimp-gallery .modal-body .video-content iframe{width:100%;height:100%;border:none;left:100%}.blueimp-gallery .modal-body .video-playing iframe{left:0}.blueimp-gallery .modal-body .video-playing img,.blueimp-gallery .modal-body .video-playing a{display:none}.blueimp-gallery .modal-body .video-content a{cursor:pointer}.blueimp-gallery .modal-body .video-content a:after{font-family:"Glyphicons Halflings";-webkit-font-smoothing:antialiased;content:"\e029";font-size:64px;line-height:64px;width:64px;height:64px;position:absolute;top:50%;margin:-32px 0 0 -32px}.blueimp-gallery .modal-body .video-loading a{background:url(../img/loading.gif) center no-repeat;background-size:64px 64px}.blueimp-gallery .modal-body .video-loading a:after{content:none}@media screen and (min-width:768px){.blueimp-gallery .modal-dialog{right:auto;left:auto;width:auto;max-width:900px;padding-left:5%;padding-right:5%}} \ No newline at end of file diff --git a/public/css/bootstrap-theme.css b/public/css/bootstrap-theme.css new file mode 100644 index 0000000..c19cd5c --- /dev/null +++ b/public/css/bootstrap-theme.css @@ -0,0 +1,587 @@ +/*! + * Bootstrap v3.3.5 (http://getbootstrap.com) + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ +.btn-default, +.btn-primary, +.btn-success, +.btn-info, +.btn-warning, +.btn-danger { + text-shadow: 0 -1px 0 rgba(0, 0, 0, .2); + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075); +} +.btn-default:active, +.btn-primary:active, +.btn-success:active, +.btn-info:active, +.btn-warning:active, +.btn-danger:active, +.btn-default.active, +.btn-primary.active, +.btn-success.active, +.btn-info.active, +.btn-warning.active, +.btn-danger.active { + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); +} +.btn-default.disabled, +.btn-primary.disabled, +.btn-success.disabled, +.btn-info.disabled, +.btn-warning.disabled, +.btn-danger.disabled, +.btn-default[disabled], +.btn-primary[disabled], +.btn-success[disabled], +.btn-info[disabled], +.btn-warning[disabled], +.btn-danger[disabled], +fieldset[disabled] .btn-default, +fieldset[disabled] .btn-primary, +fieldset[disabled] .btn-success, +fieldset[disabled] .btn-info, +fieldset[disabled] .btn-warning, +fieldset[disabled] .btn-danger { + -webkit-box-shadow: none; + box-shadow: none; +} +.btn-default .badge, +.btn-primary .badge, +.btn-success .badge, +.btn-info .badge, +.btn-warning .badge, +.btn-danger .badge { + text-shadow: none; +} +.btn:active, +.btn.active { + background-image: none; +} +.btn-default { + text-shadow: 0 1px 0 #fff; + background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%); + background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e0e0e0)); + background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + background-repeat: repeat-x; + border-color: #dbdbdb; + border-color: #ccc; +} +.btn-default:hover, +.btn-default:focus { + background-color: #e0e0e0; + background-position: 0 -15px; +} +.btn-default:active, +.btn-default.active { + background-color: #e0e0e0; + border-color: #dbdbdb; +} +.btn-default.disabled, +.btn-default[disabled], +fieldset[disabled] .btn-default, +.btn-default.disabled:hover, +.btn-default[disabled]:hover, +fieldset[disabled] .btn-default:hover, +.btn-default.disabled:focus, +.btn-default[disabled]:focus, +fieldset[disabled] .btn-default:focus, +.btn-default.disabled.focus, +.btn-default[disabled].focus, +fieldset[disabled] .btn-default.focus, +.btn-default.disabled:active, +.btn-default[disabled]:active, +fieldset[disabled] .btn-default:active, +.btn-default.disabled.active, +.btn-default[disabled].active, +fieldset[disabled] .btn-default.active { + background-color: #e0e0e0; + background-image: none; +} +.btn-primary { + background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%); + background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#265a88)); + background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + background-repeat: repeat-x; + border-color: #245580; +} +.btn-primary:hover, +.btn-primary:focus { + background-color: #265a88; + background-position: 0 -15px; +} +.btn-primary:active, +.btn-primary.active { + background-color: #265a88; + border-color: #245580; +} +.btn-primary.disabled, +.btn-primary[disabled], +fieldset[disabled] .btn-primary, +.btn-primary.disabled:hover, +.btn-primary[disabled]:hover, +fieldset[disabled] .btn-primary:hover, +.btn-primary.disabled:focus, +.btn-primary[disabled]:focus, +fieldset[disabled] .btn-primary:focus, +.btn-primary.disabled.focus, +.btn-primary[disabled].focus, +fieldset[disabled] .btn-primary.focus, +.btn-primary.disabled:active, +.btn-primary[disabled]:active, +fieldset[disabled] .btn-primary:active, +.btn-primary.disabled.active, +.btn-primary[disabled].active, +fieldset[disabled] .btn-primary.active { + background-color: #265a88; + background-image: none; +} +.btn-success { + background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%); + background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#419641)); + background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + background-repeat: repeat-x; + border-color: #3e8f3e; +} +.btn-success:hover, +.btn-success:focus { + background-color: #419641; + background-position: 0 -15px; +} +.btn-success:active, +.btn-success.active { + background-color: #419641; + border-color: #3e8f3e; +} +.btn-success.disabled, +.btn-success[disabled], +fieldset[disabled] .btn-success, +.btn-success.disabled:hover, +.btn-success[disabled]:hover, +fieldset[disabled] .btn-success:hover, +.btn-success.disabled:focus, +.btn-success[disabled]:focus, +fieldset[disabled] .btn-success:focus, +.btn-success.disabled.focus, +.btn-success[disabled].focus, +fieldset[disabled] .btn-success.focus, +.btn-success.disabled:active, +.btn-success[disabled]:active, +fieldset[disabled] .btn-success:active, +.btn-success.disabled.active, +.btn-success[disabled].active, +fieldset[disabled] .btn-success.active { + background-color: #419641; + background-image: none; +} +.btn-info { + background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%); + background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#2aabd2)); + background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + background-repeat: repeat-x; + border-color: #28a4c9; +} +.btn-info:hover, +.btn-info:focus { + background-color: #2aabd2; + background-position: 0 -15px; +} +.btn-info:active, +.btn-info.active { + background-color: #2aabd2; + border-color: #28a4c9; +} +.btn-info.disabled, +.btn-info[disabled], +fieldset[disabled] .btn-info, +.btn-info.disabled:hover, +.btn-info[disabled]:hover, +fieldset[disabled] .btn-info:hover, +.btn-info.disabled:focus, +.btn-info[disabled]:focus, +fieldset[disabled] .btn-info:focus, +.btn-info.disabled.focus, +.btn-info[disabled].focus, +fieldset[disabled] .btn-info.focus, +.btn-info.disabled:active, +.btn-info[disabled]:active, +fieldset[disabled] .btn-info:active, +.btn-info.disabled.active, +.btn-info[disabled].active, +fieldset[disabled] .btn-info.active { + background-color: #2aabd2; + background-image: none; +} +.btn-warning { + background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%); + background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#eb9316)); + background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + background-repeat: repeat-x; + border-color: #e38d13; +} +.btn-warning:hover, +.btn-warning:focus { + background-color: #eb9316; + background-position: 0 -15px; +} +.btn-warning:active, +.btn-warning.active { + background-color: #eb9316; + border-color: #e38d13; +} +.btn-warning.disabled, +.btn-warning[disabled], +fieldset[disabled] .btn-warning, +.btn-warning.disabled:hover, +.btn-warning[disabled]:hover, +fieldset[disabled] .btn-warning:hover, +.btn-warning.disabled:focus, +.btn-warning[disabled]:focus, +fieldset[disabled] .btn-warning:focus, +.btn-warning.disabled.focus, +.btn-warning[disabled].focus, +fieldset[disabled] .btn-warning.focus, +.btn-warning.disabled:active, +.btn-warning[disabled]:active, +fieldset[disabled] .btn-warning:active, +.btn-warning.disabled.active, +.btn-warning[disabled].active, +fieldset[disabled] .btn-warning.active { + background-color: #eb9316; + background-image: none; +} +.btn-danger { + background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%); + background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c12e2a)); + background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + background-repeat: repeat-x; + border-color: #b92c28; +} +.btn-danger:hover, +.btn-danger:focus { + background-color: #c12e2a; + background-position: 0 -15px; +} +.btn-danger:active, +.btn-danger.active { + background-color: #c12e2a; + border-color: #b92c28; +} +.btn-danger.disabled, +.btn-danger[disabled], +fieldset[disabled] .btn-danger, +.btn-danger.disabled:hover, +.btn-danger[disabled]:hover, +fieldset[disabled] .btn-danger:hover, +.btn-danger.disabled:focus, +.btn-danger[disabled]:focus, +fieldset[disabled] .btn-danger:focus, +.btn-danger.disabled.focus, +.btn-danger[disabled].focus, +fieldset[disabled] .btn-danger.focus, +.btn-danger.disabled:active, +.btn-danger[disabled]:active, +fieldset[disabled] .btn-danger:active, +.btn-danger.disabled.active, +.btn-danger[disabled].active, +fieldset[disabled] .btn-danger.active { + background-color: #c12e2a; + background-image: none; +} +.thumbnail, +.img-thumbnail { + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075); + box-shadow: 0 1px 2px rgba(0, 0, 0, .075); +} +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus { + background-color: #e8e8e8; + background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); + background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8)); + background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0); + background-repeat: repeat-x; +} +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + background-color: #2e6da4; + background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%); + background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4)); + background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0); + background-repeat: repeat-x; +} +.navbar-default { + background-image: -webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%); + background-image: -o-linear-gradient(top, #fff 0%, #f8f8f8 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#f8f8f8)); + background-image: linear-gradient(to bottom, #fff 0%, #f8f8f8 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + background-repeat: repeat-x; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075); +} +.navbar-default .navbar-nav > .open > a, +.navbar-default .navbar-nav > .active > a { + background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%); + background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#dbdbdb), to(#e2e2e2)); + background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0); + background-repeat: repeat-x; + -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075); + box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075); +} +.navbar-brand, +.navbar-nav > li > a { + text-shadow: 0 1px 0 rgba(255, 255, 255, .25); +} +.navbar-inverse { + background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%); + background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#3c3c3c), to(#222)); + background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + background-repeat: repeat-x; + border-radius: 4px; +} +.navbar-inverse .navbar-nav > .open > a, +.navbar-inverse .navbar-nav > .active > a { + background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%); + background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#080808), to(#0f0f0f)); + background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0); + background-repeat: repeat-x; + -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25); + box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25); +} +.navbar-inverse .navbar-brand, +.navbar-inverse .navbar-nav > li > a { + text-shadow: 0 -1px 0 rgba(0, 0, 0, .25); +} +.navbar-static-top, +.navbar-fixed-top, +.navbar-fixed-bottom { + border-radius: 0; +} +@media (max-width: 767px) { + .navbar .navbar-nav .open .dropdown-menu > .active > a, + .navbar .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #fff; + background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%); + background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4)); + background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0); + background-repeat: repeat-x; + } +} +.alert { + text-shadow: 0 1px 0 rgba(255, 255, 255, .2); + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05); +} +.alert-success { + background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%); + background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#c8e5bc)); + background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0); + background-repeat: repeat-x; + border-color: #b2dba1; +} +.alert-info { + background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%); + background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#b9def0)); + background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0); + background-repeat: repeat-x; + border-color: #9acfea; +} +.alert-warning { + background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%); + background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#f8efc0)); + background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0); + background-repeat: repeat-x; + border-color: #f5e79e; +} +.alert-danger { + background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%); + background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#e7c3c3)); + background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0); + background-repeat: repeat-x; + border-color: #dca7a7; +} +.progress { + background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%); + background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f5f5f5)); + background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0); + background-repeat: repeat-x; +} +.progress-bar { + background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%); + background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#286090)); + background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0); + background-repeat: repeat-x; +} +.progress-bar-success { + background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%); + background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#449d44)); + background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0); + background-repeat: repeat-x; +} +.progress-bar-info { + background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%); + background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#31b0d5)); + background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0); + background-repeat: repeat-x; +} +.progress-bar-warning { + background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%); + background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#ec971f)); + background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0); + background-repeat: repeat-x; +} +.progress-bar-danger { + background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%); + background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c9302c)); + background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0); + background-repeat: repeat-x; +} +.progress-bar-striped { + 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); +} +.list-group { + border-radius: 4px; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075); + box-shadow: 0 1px 2px rgba(0, 0, 0, .075); +} +.list-group-item.active, +.list-group-item.active:hover, +.list-group-item.active:focus { + text-shadow: 0 -1px 0 #286090; + background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%); + background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2b669a)); + background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0); + background-repeat: repeat-x; + border-color: #2b669a; +} +.list-group-item.active .badge, +.list-group-item.active:hover .badge, +.list-group-item.active:focus .badge { + text-shadow: none; +} +.panel { + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .05); + box-shadow: 0 1px 2px rgba(0, 0, 0, .05); +} +.panel-default > .panel-heading { + background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); + background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8)); + background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0); + background-repeat: repeat-x; +} +.panel-primary > .panel-heading { + background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%); + background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4)); + background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0); + background-repeat: repeat-x; +} +.panel-success > .panel-heading { + background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%); + background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#d0e9c6)); + background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0); + background-repeat: repeat-x; +} +.panel-info > .panel-heading { + background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%); + background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#c4e3f3)); + background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0); + background-repeat: repeat-x; +} +.panel-warning > .panel-heading { + background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%); + background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#faf2cc)); + background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0); + background-repeat: repeat-x; +} +.panel-danger > .panel-heading { + background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%); + background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#ebcccc)); + background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0); + background-repeat: repeat-x; +} +.well { + background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%); + background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#f5f5f5)); + background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0); + background-repeat: repeat-x; + border-color: #dcdcdc; + -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1); + box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1); +} +/*# sourceMappingURL=bootstrap-theme.css.map */ diff --git a/public/css/bootstrap-theme.css.map b/public/css/bootstrap-theme.css.map new file mode 100644 index 0000000..7535311 --- /dev/null +++ b/public/css/bootstrap-theme.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["bootstrap-theme.css","less/theme.less","less/mixins/vendor-prefixes.less","less/mixins/gradients.less","less/mixins/reset-filter.less"],"names":[],"mappings":"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","file":"bootstrap-theme.css","sourcesContent":["/*!\n * Bootstrap v3.3.5 (http://getbootstrap.com)\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.btn-default:active,\n.btn-primary:active,\n.btn-success:active,\n.btn-info:active,\n.btn-warning:active,\n.btn-danger:active,\n.btn-default.active,\n.btn-primary.active,\n.btn-success.active,\n.btn-info.active,\n.btn-warning.active,\n.btn-danger.active {\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn-default.disabled,\n.btn-primary.disabled,\n.btn-success.disabled,\n.btn-info.disabled,\n.btn-warning.disabled,\n.btn-danger.disabled,\n.btn-default[disabled],\n.btn-primary[disabled],\n.btn-success[disabled],\n.btn-info[disabled],\n.btn-warning[disabled],\n.btn-danger[disabled],\nfieldset[disabled] .btn-default,\nfieldset[disabled] .btn-primary,\nfieldset[disabled] .btn-success,\nfieldset[disabled] .btn-info,\nfieldset[disabled] .btn-warning,\nfieldset[disabled] .btn-danger {\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn-default .badge,\n.btn-primary .badge,\n.btn-success .badge,\n.btn-info .badge,\n.btn-warning .badge,\n.btn-danger .badge {\n text-shadow: none;\n}\n.btn:active,\n.btn.active {\n background-image: none;\n}\n.btn-default {\n background-image: -webkit-linear-gradient(top, #ffffff 0%, #e0e0e0 100%);\n background-image: -o-linear-gradient(top, #ffffff 0%, #e0e0e0 100%);\n background-image: linear-gradient(to bottom, #ffffff 0%, #e0e0e0 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #dbdbdb;\n text-shadow: 0 1px 0 #fff;\n border-color: #ccc;\n}\n.btn-default:hover,\n.btn-default:focus {\n background-color: #e0e0e0;\n background-position: 0 -15px;\n}\n.btn-default:active,\n.btn-default.active {\n background-color: #e0e0e0;\n border-color: #dbdbdb;\n}\n.btn-default.disabled,\n.btn-default[disabled],\nfieldset[disabled] .btn-default,\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled.focus,\n.btn-default[disabled].focus,\nfieldset[disabled] .btn-default.focus,\n.btn-default.disabled:active,\n.btn-default[disabled]:active,\nfieldset[disabled] .btn-default:active,\n.btn-default.disabled.active,\n.btn-default[disabled].active,\nfieldset[disabled] .btn-default.active {\n background-color: #e0e0e0;\n background-image: none;\n}\n.btn-primary {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #245580;\n}\n.btn-primary:hover,\n.btn-primary:focus {\n background-color: #265a88;\n background-position: 0 -15px;\n}\n.btn-primary:active,\n.btn-primary.active {\n background-color: #265a88;\n border-color: #245580;\n}\n.btn-primary.disabled,\n.btn-primary[disabled],\nfieldset[disabled] .btn-primary,\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled.focus,\n.btn-primary[disabled].focus,\nfieldset[disabled] .btn-primary.focus,\n.btn-primary.disabled:active,\n.btn-primary[disabled]:active,\nfieldset[disabled] .btn-primary:active,\n.btn-primary.disabled.active,\n.btn-primary[disabled].active,\nfieldset[disabled] .btn-primary.active {\n background-color: #265a88;\n background-image: none;\n}\n.btn-success {\n background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);\n background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%);\n background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #3e8f3e;\n}\n.btn-success:hover,\n.btn-success:focus {\n background-color: #419641;\n background-position: 0 -15px;\n}\n.btn-success:active,\n.btn-success.active {\n background-color: #419641;\n border-color: #3e8f3e;\n}\n.btn-success.disabled,\n.btn-success[disabled],\nfieldset[disabled] .btn-success,\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled.focus,\n.btn-success[disabled].focus,\nfieldset[disabled] .btn-success.focus,\n.btn-success.disabled:active,\n.btn-success[disabled]:active,\nfieldset[disabled] .btn-success:active,\n.btn-success.disabled.active,\n.btn-success[disabled].active,\nfieldset[disabled] .btn-success.active {\n background-color: #419641;\n background-image: none;\n}\n.btn-info {\n background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);\n background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);\n background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #28a4c9;\n}\n.btn-info:hover,\n.btn-info:focus {\n background-color: #2aabd2;\n background-position: 0 -15px;\n}\n.btn-info:active,\n.btn-info.active {\n background-color: #2aabd2;\n border-color: #28a4c9;\n}\n.btn-info.disabled,\n.btn-info[disabled],\nfieldset[disabled] .btn-info,\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled.focus,\n.btn-info[disabled].focus,\nfieldset[disabled] .btn-info.focus,\n.btn-info.disabled:active,\n.btn-info[disabled]:active,\nfieldset[disabled] .btn-info:active,\n.btn-info.disabled.active,\n.btn-info[disabled].active,\nfieldset[disabled] .btn-info.active {\n background-color: #2aabd2;\n background-image: none;\n}\n.btn-warning {\n background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);\n background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);\n background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #e38d13;\n}\n.btn-warning:hover,\n.btn-warning:focus {\n background-color: #eb9316;\n background-position: 0 -15px;\n}\n.btn-warning:active,\n.btn-warning.active {\n background-color: #eb9316;\n border-color: #e38d13;\n}\n.btn-warning.disabled,\n.btn-warning[disabled],\nfieldset[disabled] .btn-warning,\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled.focus,\n.btn-warning[disabled].focus,\nfieldset[disabled] .btn-warning.focus,\n.btn-warning.disabled:active,\n.btn-warning[disabled]:active,\nfieldset[disabled] .btn-warning:active,\n.btn-warning.disabled.active,\n.btn-warning[disabled].active,\nfieldset[disabled] .btn-warning.active {\n background-color: #eb9316;\n background-image: none;\n}\n.btn-danger {\n background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);\n background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);\n background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n background-repeat: repeat-x;\n border-color: #b92c28;\n}\n.btn-danger:hover,\n.btn-danger:focus {\n background-color: #c12e2a;\n background-position: 0 -15px;\n}\n.btn-danger:active,\n.btn-danger.active {\n background-color: #c12e2a;\n border-color: #b92c28;\n}\n.btn-danger.disabled,\n.btn-danger[disabled],\nfieldset[disabled] .btn-danger,\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled.focus,\n.btn-danger[disabled].focus,\nfieldset[disabled] .btn-danger.focus,\n.btn-danger.disabled:active,\n.btn-danger[disabled]:active,\nfieldset[disabled] .btn-danger:active,\n.btn-danger.disabled.active,\n.btn-danger[disabled].active,\nfieldset[disabled] .btn-danger.active {\n background-color: #c12e2a;\n background-image: none;\n}\n.thumbnail,\n.img-thumbnail {\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);\n background-color: #e8e8e8;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n background-color: #2e6da4;\n}\n.navbar-default {\n background-image: -webkit-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);\n background-image: -o-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);\n background-image: linear-gradient(to bottom, #ffffff 0%, #f8f8f8 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);\n}\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .active > a {\n background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);\n background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);\n background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);\n -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);\n}\n.navbar-brand,\n.navbar-nav > li > a {\n text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25);\n}\n.navbar-inverse {\n background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222222 100%);\n background-image: -o-linear-gradient(top, #3c3c3c 0%, #222222 100%);\n background-image: linear-gradient(to bottom, #3c3c3c 0%, #222222 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n border-radius: 4px;\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .active > a {\n background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%);\n background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%);\n background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);\n -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);\n box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);\n}\n.navbar-inverse .navbar-brand,\n.navbar-inverse .navbar-nav > li > a {\n text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n border-radius: 0;\n}\n@media (max-width: 767px) {\n .navbar .navbar-nav .open .dropdown-menu > .active > a,\n .navbar .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #fff;\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n }\n}\n.alert {\n text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2);\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n.alert-success {\n background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);\n background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);\n background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);\n border-color: #b2dba1;\n}\n.alert-info {\n background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);\n background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);\n background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);\n border-color: #9acfea;\n}\n.alert-warning {\n background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);\n background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);\n background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);\n border-color: #f5e79e;\n}\n.alert-danger {\n background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);\n background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);\n background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);\n border-color: #dca7a7;\n}\n.progress {\n background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);\n background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);\n background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);\n}\n.progress-bar {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);\n}\n.progress-bar-success {\n background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);\n background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%);\n background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);\n}\n.progress-bar-info {\n background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);\n background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);\n background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);\n}\n.progress-bar-warning {\n background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);\n background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);\n background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);\n}\n.progress-bar-danger {\n background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);\n background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%);\n background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);\n}\n.progress-bar-striped {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.list-group {\n border-radius: 4px;\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n text-shadow: 0 -1px 0 #286090;\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);\n border-color: #2b669a;\n}\n.list-group-item.active .badge,\n.list-group-item.active:hover .badge,\n.list-group-item.active:focus .badge {\n text-shadow: none;\n}\n.panel {\n -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);\n}\n.panel-default > .panel-heading {\n background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);\n background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);\n}\n.panel-primary > .panel-heading {\n background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);\n background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);\n}\n.panel-success > .panel-heading {\n background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);\n background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);\n background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);\n}\n.panel-info > .panel-heading {\n background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);\n background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);\n background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);\n}\n.panel-warning > .panel-heading {\n background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);\n background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);\n background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);\n}\n.panel-danger > .panel-heading {\n background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);\n background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%);\n background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);\n}\n.well {\n background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);\n background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);\n background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);\n border-color: #dcdcdc;\n -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);\n box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);\n}\n/*# sourceMappingURL=bootstrap-theme.css.map */","/*!\n * Bootstrap v3.3.5 (http://getbootstrap.com)\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n//\n// Load core variables and mixins\n// --------------------------------------------------\n\n@import \"variables.less\";\n@import \"mixins.less\";\n\n\n//\n// Buttons\n// --------------------------------------------------\n\n// Common styles\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n text-shadow: 0 -1px 0 rgba(0,0,0,.2);\n @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075);\n .box-shadow(@shadow);\n\n // Reset the shadow\n &:active,\n &.active {\n .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n .box-shadow(none);\n }\n\n .badge {\n text-shadow: none;\n }\n}\n\n// Mixin for generating new styles\n.btn-styles(@btn-color: #555) {\n #gradient > .vertical(@start-color: @btn-color; @end-color: darken(@btn-color, 12%));\n .reset-filter(); // Disable gradients for IE9 because filter bleeds through rounded corners; see https://github.com/twbs/bootstrap/issues/10620\n background-repeat: repeat-x;\n border-color: darken(@btn-color, 14%);\n\n &:hover,\n &:focus {\n background-color: darken(@btn-color, 12%);\n background-position: 0 -15px;\n }\n\n &:active,\n &.active {\n background-color: darken(@btn-color, 12%);\n border-color: darken(@btn-color, 14%);\n }\n\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n &,\n &:hover,\n &:focus,\n &.focus,\n &:active,\n &.active {\n background-color: darken(@btn-color, 12%);\n background-image: none;\n }\n }\n}\n\n// Common styles\n.btn {\n // Remove the gradient for the pressed/active state\n &:active,\n &.active {\n background-image: none;\n }\n}\n\n// Apply the mixin to the buttons\n.btn-default { .btn-styles(@btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; }\n.btn-primary { .btn-styles(@btn-primary-bg); }\n.btn-success { .btn-styles(@btn-success-bg); }\n.btn-info { .btn-styles(@btn-info-bg); }\n.btn-warning { .btn-styles(@btn-warning-bg); }\n.btn-danger { .btn-styles(@btn-danger-bg); }\n\n\n//\n// Images\n// --------------------------------------------------\n\n.thumbnail,\n.img-thumbnail {\n .box-shadow(0 1px 2px rgba(0,0,0,.075));\n}\n\n\n//\n// Dropdowns\n// --------------------------------------------------\n\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-hover-bg; @end-color: darken(@dropdown-link-hover-bg, 5%));\n background-color: darken(@dropdown-link-hover-bg, 5%);\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n background-color: darken(@dropdown-link-active-bg, 5%);\n}\n\n\n//\n// Navbar\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n #gradient > .vertical(@start-color: lighten(@navbar-default-bg, 10%); @end-color: @navbar-default-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered\n border-radius: @navbar-border-radius;\n @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 5px rgba(0,0,0,.075);\n .box-shadow(@shadow);\n\n .navbar-nav > .open > a,\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: darken(@navbar-default-link-active-bg, 5%); @end-color: darken(@navbar-default-link-active-bg, 2%));\n .box-shadow(inset 0 3px 9px rgba(0,0,0,.075));\n }\n}\n.navbar-brand,\n.navbar-nav > li > a {\n text-shadow: 0 1px 0 rgba(255,255,255,.25);\n}\n\n// Inverted navbar\n.navbar-inverse {\n #gradient > .vertical(@start-color: lighten(@navbar-inverse-bg, 10%); @end-color: @navbar-inverse-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered; see https://github.com/twbs/bootstrap/issues/10257\n border-radius: @navbar-border-radius;\n .navbar-nav > .open > a,\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: @navbar-inverse-link-active-bg; @end-color: lighten(@navbar-inverse-link-active-bg, 2.5%));\n .box-shadow(inset 0 3px 9px rgba(0,0,0,.25));\n }\n\n .navbar-brand,\n .navbar-nav > li > a {\n text-shadow: 0 -1px 0 rgba(0,0,0,.25);\n }\n}\n\n// Undo rounded corners in static and fixed navbars\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n border-radius: 0;\n}\n\n// Fix active state of dropdown items in collapsed mode\n@media (max-width: @grid-float-breakpoint-max) {\n .navbar .navbar-nav .open .dropdown-menu > .active > a {\n &,\n &:hover,\n &:focus {\n color: #fff;\n #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n }\n }\n}\n\n\n//\n// Alerts\n// --------------------------------------------------\n\n// Common styles\n.alert {\n text-shadow: 0 1px 0 rgba(255,255,255,.2);\n @shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.05);\n .box-shadow(@shadow);\n}\n\n// Mixin for generating new styles\n.alert-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 7.5%));\n border-color: darken(@color, 15%);\n}\n\n// Apply the mixin to the alerts\n.alert-success { .alert-styles(@alert-success-bg); }\n.alert-info { .alert-styles(@alert-info-bg); }\n.alert-warning { .alert-styles(@alert-warning-bg); }\n.alert-danger { .alert-styles(@alert-danger-bg); }\n\n\n//\n// Progress bars\n// --------------------------------------------------\n\n// Give the progress background some depth\n.progress {\n #gradient > .vertical(@start-color: darken(@progress-bg, 4%); @end-color: @progress-bg)\n}\n\n// Mixin for generating new styles\n.progress-bar-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 10%));\n}\n\n// Apply the mixin to the progress bars\n.progress-bar { .progress-bar-styles(@progress-bar-bg); }\n.progress-bar-success { .progress-bar-styles(@progress-bar-success-bg); }\n.progress-bar-info { .progress-bar-styles(@progress-bar-info-bg); }\n.progress-bar-warning { .progress-bar-styles(@progress-bar-warning-bg); }\n.progress-bar-danger { .progress-bar-styles(@progress-bar-danger-bg); }\n\n// Reset the striped class because our mixins don't do multiple gradients and\n// the above custom styles override the new `.progress-bar-striped` in v3.2.0.\n.progress-bar-striped {\n #gradient > .striped();\n}\n\n\n//\n// List groups\n// --------------------------------------------------\n\n.list-group {\n border-radius: @border-radius-base;\n .box-shadow(0 1px 2px rgba(0,0,0,.075));\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n text-shadow: 0 -1px 0 darken(@list-group-active-bg, 10%);\n #gradient > .vertical(@start-color: @list-group-active-bg; @end-color: darken(@list-group-active-bg, 7.5%));\n border-color: darken(@list-group-active-border, 7.5%);\n\n .badge {\n text-shadow: none;\n }\n}\n\n\n//\n// Panels\n// --------------------------------------------------\n\n// Common styles\n.panel {\n .box-shadow(0 1px 2px rgba(0,0,0,.05));\n}\n\n// Mixin for generating new styles\n.panel-heading-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 5%));\n}\n\n// Apply the mixin to the panel headings only\n.panel-default > .panel-heading { .panel-heading-styles(@panel-default-heading-bg); }\n.panel-primary > .panel-heading { .panel-heading-styles(@panel-primary-heading-bg); }\n.panel-success > .panel-heading { .panel-heading-styles(@panel-success-heading-bg); }\n.panel-info > .panel-heading { .panel-heading-styles(@panel-info-heading-bg); }\n.panel-warning > .panel-heading { .panel-heading-styles(@panel-warning-heading-bg); }\n.panel-danger > .panel-heading { .panel-heading-styles(@panel-danger-heading-bg); }\n\n\n//\n// Wells\n// --------------------------------------------------\n\n.well {\n #gradient > .vertical(@start-color: darken(@well-bg, 5%); @end-color: @well-bg);\n border-color: darken(@well-bg, 10%);\n @shadow: inset 0 1px 3px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1);\n .box-shadow(@shadow);\n}\n","// Vendor Prefixes\n//\n// All vendor mixins are deprecated as of v3.2.0 due to the introduction of\n// Autoprefixer in our Gruntfile. They will be removed in v4.\n\n// - Animations\n// - Backface visibility\n// - Box shadow\n// - Box sizing\n// - Content columns\n// - Hyphens\n// - Placeholder text\n// - Transformations\n// - Transitions\n// - User Select\n\n\n// Animations\n.animation(@animation) {\n -webkit-animation: @animation;\n -o-animation: @animation;\n animation: @animation;\n}\n.animation-name(@name) {\n -webkit-animation-name: @name;\n animation-name: @name;\n}\n.animation-duration(@duration) {\n -webkit-animation-duration: @duration;\n animation-duration: @duration;\n}\n.animation-timing-function(@timing-function) {\n -webkit-animation-timing-function: @timing-function;\n animation-timing-function: @timing-function;\n}\n.animation-delay(@delay) {\n -webkit-animation-delay: @delay;\n animation-delay: @delay;\n}\n.animation-iteration-count(@iteration-count) {\n -webkit-animation-iteration-count: @iteration-count;\n animation-iteration-count: @iteration-count;\n}\n.animation-direction(@direction) {\n -webkit-animation-direction: @direction;\n animation-direction: @direction;\n}\n.animation-fill-mode(@fill-mode) {\n -webkit-animation-fill-mode: @fill-mode;\n animation-fill-mode: @fill-mode;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n\n.backface-visibility(@visibility){\n -webkit-backface-visibility: @visibility;\n -moz-backface-visibility: @visibility;\n backface-visibility: @visibility;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support it.\n\n.box-shadow(@shadow) {\n -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1\n box-shadow: @shadow;\n}\n\n// Box sizing\n.box-sizing(@boxmodel) {\n -webkit-box-sizing: @boxmodel;\n -moz-box-sizing: @boxmodel;\n box-sizing: @boxmodel;\n}\n\n// CSS3 Content Columns\n.content-columns(@column-count; @column-gap: @grid-gutter-width) {\n -webkit-column-count: @column-count;\n -moz-column-count: @column-count;\n column-count: @column-count;\n -webkit-column-gap: @column-gap;\n -moz-column-gap: @column-gap;\n column-gap: @column-gap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n word-wrap: break-word;\n -webkit-hyphens: @mode;\n -moz-hyphens: @mode;\n -ms-hyphens: @mode; // IE10+\n -o-hyphens: @mode;\n hyphens: @mode;\n}\n\n// Placeholder text\n.placeholder(@color: @input-color-placeholder) {\n // Firefox\n &::-moz-placeholder {\n color: @color;\n opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526\n }\n &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+\n &::-webkit-input-placeholder { color: @color; } // Safari and Chrome\n}\n\n// Transformations\n.scale(@ratio) {\n -webkit-transform: scale(@ratio);\n -ms-transform: scale(@ratio); // IE9 only\n -o-transform: scale(@ratio);\n transform: scale(@ratio);\n}\n.scale(@ratioX; @ratioY) {\n -webkit-transform: scale(@ratioX, @ratioY);\n -ms-transform: scale(@ratioX, @ratioY); // IE9 only\n -o-transform: scale(@ratioX, @ratioY);\n transform: scale(@ratioX, @ratioY);\n}\n.scaleX(@ratio) {\n -webkit-transform: scaleX(@ratio);\n -ms-transform: scaleX(@ratio); // IE9 only\n -o-transform: scaleX(@ratio);\n transform: scaleX(@ratio);\n}\n.scaleY(@ratio) {\n -webkit-transform: scaleY(@ratio);\n -ms-transform: scaleY(@ratio); // IE9 only\n -o-transform: scaleY(@ratio);\n transform: scaleY(@ratio);\n}\n.skew(@x; @y) {\n -webkit-transform: skewX(@x) skewY(@y);\n -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n -o-transform: skewX(@x) skewY(@y);\n transform: skewX(@x) skewY(@y);\n}\n.translate(@x; @y) {\n -webkit-transform: translate(@x, @y);\n -ms-transform: translate(@x, @y); // IE9 only\n -o-transform: translate(@x, @y);\n transform: translate(@x, @y);\n}\n.translate3d(@x; @y; @z) {\n -webkit-transform: translate3d(@x, @y, @z);\n transform: translate3d(@x, @y, @z);\n}\n.rotate(@degrees) {\n -webkit-transform: rotate(@degrees);\n -ms-transform: rotate(@degrees); // IE9 only\n -o-transform: rotate(@degrees);\n transform: rotate(@degrees);\n}\n.rotateX(@degrees) {\n -webkit-transform: rotateX(@degrees);\n -ms-transform: rotateX(@degrees); // IE9 only\n -o-transform: rotateX(@degrees);\n transform: rotateX(@degrees);\n}\n.rotateY(@degrees) {\n -webkit-transform: rotateY(@degrees);\n -ms-transform: rotateY(@degrees); // IE9 only\n -o-transform: rotateY(@degrees);\n transform: rotateY(@degrees);\n}\n.perspective(@perspective) {\n -webkit-perspective: @perspective;\n -moz-perspective: @perspective;\n perspective: @perspective;\n}\n.perspective-origin(@perspective) {\n -webkit-perspective-origin: @perspective;\n -moz-perspective-origin: @perspective;\n perspective-origin: @perspective;\n}\n.transform-origin(@origin) {\n -webkit-transform-origin: @origin;\n -moz-transform-origin: @origin;\n -ms-transform-origin: @origin; // IE9 only\n transform-origin: @origin;\n}\n\n\n// Transitions\n\n.transition(@transition) {\n -webkit-transition: @transition;\n -o-transition: @transition;\n transition: @transition;\n}\n.transition-property(@transition-property) {\n -webkit-transition-property: @transition-property;\n transition-property: @transition-property;\n}\n.transition-delay(@transition-delay) {\n -webkit-transition-delay: @transition-delay;\n transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n -webkit-transition-duration: @transition-duration;\n transition-duration: @transition-duration;\n}\n.transition-timing-function(@timing-function) {\n -webkit-transition-timing-function: @timing-function;\n transition-timing-function: @timing-function;\n}\n.transition-transform(@transition) {\n -webkit-transition: -webkit-transform @transition;\n -moz-transition: -moz-transform @transition;\n -o-transition: -o-transform @transition;\n transition: transform @transition;\n}\n\n\n// User select\n// For selecting text on the page\n\n.user-select(@select) {\n -webkit-user-select: @select;\n -moz-user-select: @select;\n -ms-user-select: @select; // IE10+\n user-select: @select;\n}\n","// Gradients\n\n#gradient {\n\n // Horizontal gradient, from left to right\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n // Vertical gradient, from top to bottom\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Opera 12\n background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {\n background-repeat: repeat-x;\n background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+\n background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12\n background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n }\n .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .radial(@inner-color: #555; @outer-color: #333) {\n background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);\n background-image: radial-gradient(circle, @inner-color, @outer-color);\n background-repeat: no-repeat;\n }\n .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {\n background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n }\n}\n","// Reset filters for IE\n//\n// When you need to remove a gradient background, do not forget to use this to reset\n// the IE filter for IE9 and below.\n\n.reset-filter() {\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\"));\n}\n"]} \ No newline at end of file diff --git a/public/css/bootstrap-theme.min.css b/public/css/bootstrap-theme.min.css new file mode 100644 index 0000000..61358b1 --- /dev/null +++ b/public/css/bootstrap-theme.min.css @@ -0,0 +1,5 @@ +/*! + * Bootstrap v3.3.5 (http://getbootstrap.com) + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */.btn-danger,.btn-default,.btn-info,.btn-primary,.btn-success,.btn-warning{text-shadow:0 -1px 0 rgba(0,0,0,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-danger.active,.btn-danger:active,.btn-default.active,.btn-default:active,.btn-info.active,.btn-info:active,.btn-primary.active,.btn-primary:active,.btn-success.active,.btn-success:active,.btn-warning.active,.btn-warning:active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-danger.disabled,.btn-danger[disabled],.btn-default.disabled,.btn-default[disabled],.btn-info.disabled,.btn-info[disabled],.btn-primary.disabled,.btn-primary[disabled],.btn-success.disabled,.btn-success[disabled],.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-danger,fieldset[disabled] .btn-default,fieldset[disabled] .btn-info,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-success,fieldset[disabled] .btn-warning{-webkit-box-shadow:none;box-shadow:none}.btn-danger .badge,.btn-default .badge,.btn-info .badge,.btn-primary .badge,.btn-success .badge,.btn-warning .badge{text-shadow:none}.btn.active,.btn:active{background-image:none}.btn-default{text-shadow:0 1px 0 #fff;background-image:-webkit-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-o-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e0e0e0));background-image:linear-gradient(to bottom,#fff 0,#e0e0e0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#dbdbdb;border-color:#ccc}.btn-default:focus,.btn-default:hover{background-color:#e0e0e0;background-position:0 -15px}.btn-default.active,.btn-default:active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#e0e0e0;background-image:none}.btn-primary{background-image:-webkit-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-o-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#265a88));background-image:linear-gradient(to bottom,#337ab7 0,#265a88 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#245580}.btn-primary:focus,.btn-primary:hover{background-color:#265a88;background-position:0 -15px}.btn-primary.active,.btn-primary:active{background-color:#265a88;border-color:#245580}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#265a88;background-image:none}.btn-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#419641));background-image:linear-gradient(to bottom,#5cb85c 0,#419641 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#3e8f3e}.btn-success:focus,.btn-success:hover{background-color:#419641;background-position:0 -15px}.btn-success.active,.btn-success:active{background-color:#419641;border-color:#3e8f3e}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#419641;background-image:none}.btn-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#2aabd2));background-image:linear-gradient(to bottom,#5bc0de 0,#2aabd2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#28a4c9}.btn-info:focus,.btn-info:hover{background-color:#2aabd2;background-position:0 -15px}.btn-info.active,.btn-info:active{background-color:#2aabd2;border-color:#28a4c9}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#2aabd2;background-image:none}.btn-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#eb9316));background-image:linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#e38d13}.btn-warning:focus,.btn-warning:hover{background-color:#eb9316;background-position:0 -15px}.btn-warning.active,.btn-warning:active{background-color:#eb9316;border-color:#e38d13}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#eb9316;background-image:none}.btn-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c12e2a));background-image:linear-gradient(to bottom,#d9534f 0,#c12e2a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#b92c28}.btn-danger:focus,.btn-danger:hover{background-color:#c12e2a;background-position:0 -15px}.btn-danger.active,.btn-danger:active{background-color:#c12e2a;border-color:#b92c28}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#c12e2a;background-image:none}.img-thumbnail,.thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{background-color:#e8e8e8;background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{background-color:#2e6da4;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.navbar-default{background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-o-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#f8f8f8));background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075)}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-o-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dbdbdb),to(#e2e2e2));background-image:linear-gradient(to bottom,#dbdbdb 0,#e2e2e2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.075);box-shadow:inset 0 3px 9px rgba(0,0,0,.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-o-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#3c3c3c),to(#222));background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-radius:4px}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-o-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#080808),to(#0f0f0f));background-image:linear-gradient(to bottom,#080808 0,#0f0f0f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.25);box-shadow:inset 0 3px 9px rgba(0,0,0,.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}.navbar-fixed-bottom,.navbar-fixed-top,.navbar-static-top{border-radius:0}@media (max-width:767px){.navbar .navbar-nav .open .dropdown-menu>.active>a,.navbar .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}}.alert{text-shadow:0 1px 0 rgba(255,255,255,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05)}.alert-success{background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#c8e5bc));background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);background-repeat:repeat-x;border-color:#b2dba1}.alert-info{background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#b9def0));background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);background-repeat:repeat-x;border-color:#9acfea}.alert-warning{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#f8efc0));background-image:linear-gradient(to bottom,#fcf8e3 0,#f8efc0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);background-repeat:repeat-x;border-color:#f5e79e}.alert-danger{background-image:-webkit-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-o-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#e7c3c3));background-image:linear-gradient(to bottom,#f2dede 0,#e7c3c3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);background-repeat:repeat-x;border-color:#dca7a7}.progress{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#f5f5f5));background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x}.progress-bar{background-image:-webkit-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-o-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#286090));background-image:linear-gradient(to bottom,#337ab7 0,#286090 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);background-repeat:repeat-x}.progress-bar-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#449d44));background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);background-repeat:repeat-x}.progress-bar-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#31b0d5));background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);background-repeat:repeat-x}.progress-bar-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#ec971f));background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);background-repeat:repeat-x}.progress-bar-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c9302c));background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);background-repeat:repeat-x}.progress-bar-striped{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)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{text-shadow:0 -1px 0 #286090;background-image:-webkit-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2b669a));background-image:linear-gradient(to bottom,#337ab7 0,#2b669a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);background-repeat:repeat-x;border-color:#2b669a}.list-group-item.active .badge,.list-group-item.active:focus .badge,.list-group-item.active:hover .badge{text-shadow:none}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.panel-default>.panel-heading{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#d0e9c6));background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);background-repeat:repeat-x}.panel-info>.panel-heading{background-image:-webkit-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#c4e3f3));background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);background-repeat:repeat-x}.panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#faf2cc));background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);background-repeat:repeat-x}.panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-o-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#ebcccc));background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);background-repeat:repeat-x}.well{background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#e8e8e8),to(#f5f5f5));background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x;border-color:#dcdcdc;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1)} \ No newline at end of file diff --git a/public/css/bootstrap.css b/public/css/bootstrap.css new file mode 100644 index 0000000..680e768 --- /dev/null +++ b/public/css/bootstrap.css @@ -0,0 +1,6800 @@ +/*! + * Bootstrap v3.3.5 (http://getbootstrap.com) + * Copyright 2011-2015 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: bold; +} +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 #c0c0c0; +} +legend { + padding: 0; + border: 0; +} +textarea { + overflow: auto; +} +optgroup { + font-weight: bold; +} +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 { + *, + *:before, + *:after { + color: #000 !important; + text-shadow: none !important; + background: transparent !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^="#"]:after, + a[href^="javascript:"]:after { + content: ""; + } + pre, + blockquote { + border: 1px solid #999; + + page-break-inside: avoid; + } + thead { + display: table-header-group; + } + tr, + img { + page-break-inside: avoid; + } + img { + max-width: 100% !important; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } + .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 th, + .table-bordered td { + 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: normal; + line-height: 1; + + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +.glyphicon-asterisk:before { + content: "\2a"; +} +.glyphicon-plus:before { + content: "\2b"; +} +.glyphicon-euro:before, +.glyphicon-eur: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; +} +*:before, +*:after { + -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; +} +input, +button, +select, +textarea { + font-family: inherit; + font-size: inherit; + line-height: inherit; +} +a { + color: #337ab7; + text-decoration: none; +} +a:hover, +a:focus { + color: #23527c; + text-decoration: underline; +} +a:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +figure { + margin: 0; +} +img { + vertical-align: middle; +} +.img-responsive, +.thumbnail > img, +.thumbnail a > img, +.carousel-inner > .item > img, +.carousel-inner > .item > a > img { + display: block; + max-width: 100%; + height: auto; +} +.img-rounded { + border-radius: 6px; +} +.img-thumbnail { + 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, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small, +.h1 small, +.h2 small, +.h3 small, +.h4 small, +.h5 small, +.h6 small, +h1 .small, +h2 .small, +h3 .small, +h4 .small, +h5 .small, +h6 .small, +.h1 .small, +.h2 .small, +.h3 .small, +.h4 .small, +.h5 .small, +.h6 .small { + font-weight: normal; + line-height: 1; + color: #777; +} +h1, +.h1, +h2, +.h2, +h3, +.h3 { + margin-top: 20px; + margin-bottom: 10px; +} +h1 small, +.h1 small, +h2 small, +.h2 small, +h3 small, +.h3 small, +h1 .small, +.h1 .small, +h2 .small, +.h2 .small, +h3 .small, +.h3 .small { + font-size: 65%; +} +h4, +.h4, +h5, +.h5, +h6, +.h6 { + margin-top: 10px; + margin-bottom: 10px; +} +h4 small, +.h4 small, +h5 small, +.h5 small, +h6 small, +.h6 small, +h4 .small, +.h4 .small, +h5 .small, +.h5 .small, +h6 .small, +.h6 .small { + font-size: 75%; +} +h1, +.h1 { + font-size: 36px; +} +h2, +.h2 { + font-size: 30px; +} +h3, +.h3 { + font-size: 24px; +} +h4, +.h4 { + font-size: 18px; +} +h5, +.h5 { + font-size: 14px; +} +h6, +.h6 { + font-size: 12px; +} +p { + margin: 0 0 10px; +} +.lead { + margin-bottom: 20px; + font-size: 16px; + font-weight: 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:hover, +a.text-primary:focus { + color: #286090; +} +.text-success { + color: #3c763d; +} +a.text-success:hover, +a.text-success:focus { + color: #2b542c; +} +.text-info { + color: #31708f; +} +a.text-info:hover, +a.text-info:focus { + color: #245269; +} +.text-warning { + color: #8a6d3b; +} +a.text-warning:hover, +a.text-warning:focus { + color: #66512c; +} +.text-danger { + color: #a94442; +} +a.text-danger:hover, +a.text-danger:focus { + color: #843534; +} +.bg-primary { + color: #fff; + background-color: #337ab7; +} +a.bg-primary:hover, +a.bg-primary:focus { + background-color: #286090; +} +.bg-success { + background-color: #dff0d8; +} +a.bg-success:hover, +a.bg-success:focus { + background-color: #c1e2b3; +} +.bg-info { + background-color: #d9edf7; +} +a.bg-info:hover, +a.bg-info:focus { + background-color: #afd9ee; +} +.bg-warning { + background-color: #fcf8e3; +} +a.bg-warning:hover, +a.bg-warning:focus { + background-color: #f7ecb5; +} +.bg-danger { + background-color: #f2dede; +} +a.bg-danger:hover, +a.bg-danger:focus { + background-color: #e4b9b9; +} +.page-header { + padding-bottom: 9px; + margin: 40px 0 20px; + border-bottom: 1px solid #eee; +} +ul, +ol { + margin-top: 0; + margin-bottom: 10px; +} +ul ul, +ol ul, +ul ol, +ol ol { + margin-bottom: 0; +} +.list-unstyled { + padding-left: 0; + list-style: none; +} +.list-inline { + padding-left: 0; + 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; +} +dt, +dd { + line-height: 1.42857143; +} +dt { + font-weight: bold; +} +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[title], +abbr[data-original-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 p:last-child, +blockquote ul:last-child, +blockquote ol:last-child { + margin-bottom: 0; +} +blockquote footer, +blockquote small, +blockquote .small { + display: block; + font-size: 80%; + line-height: 1.42857143; + color: #777; +} +blockquote footer:before, +blockquote small: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 footer:before, +blockquote.pull-right footer:before, +.blockquote-reverse small:before, +blockquote.pull-right small:before, +.blockquote-reverse .small:before, +blockquote.pull-right .small:before { + content: ''; +} +.blockquote-reverse footer:after, +blockquote.pull-right footer:after, +.blockquote-reverse small:after, +blockquote.pull-right small:after, +.blockquote-reverse .small:after, +blockquote.pull-right .small:after { + content: '\00A0 \2014'; +} +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: bold; + -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-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 { + position: relative; + min-height: 1px; + padding-right: 15px; + padding-left: 15px; +} +.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 { + float: left; +} +.col-xs-12 { + width: 100%; +} +.col-xs-11 { + width: 91.66666667%; +} +.col-xs-10 { + width: 83.33333333%; +} +.col-xs-9 { + width: 75%; +} +.col-xs-8 { + width: 66.66666667%; +} +.col-xs-7 { + width: 58.33333333%; +} +.col-xs-6 { + width: 50%; +} +.col-xs-5 { + width: 41.66666667%; +} +.col-xs-4 { + width: 33.33333333%; +} +.col-xs-3 { + width: 25%; +} +.col-xs-2 { + width: 16.66666667%; +} +.col-xs-1 { + width: 8.33333333%; +} +.col-xs-pull-12 { + right: 100%; +} +.col-xs-pull-11 { + right: 91.66666667%; +} +.col-xs-pull-10 { + right: 83.33333333%; +} +.col-xs-pull-9 { + right: 75%; +} +.col-xs-pull-8 { + right: 66.66666667%; +} +.col-xs-pull-7 { + right: 58.33333333%; +} +.col-xs-pull-6 { + right: 50%; +} +.col-xs-pull-5 { + right: 41.66666667%; +} +.col-xs-pull-4 { + right: 33.33333333%; +} +.col-xs-pull-3 { + right: 25%; +} +.col-xs-pull-2 { + right: 16.66666667%; +} +.col-xs-pull-1 { + right: 8.33333333%; +} +.col-xs-pull-0 { + right: 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-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 { + float: left; + } + .col-sm-12 { + width: 100%; + } + .col-sm-11 { + width: 91.66666667%; + } + .col-sm-10 { + width: 83.33333333%; + } + .col-sm-9 { + width: 75%; + } + .col-sm-8 { + width: 66.66666667%; + } + .col-sm-7 { + width: 58.33333333%; + } + .col-sm-6 { + width: 50%; + } + .col-sm-5 { + width: 41.66666667%; + } + .col-sm-4 { + width: 33.33333333%; + } + .col-sm-3 { + width: 25%; + } + .col-sm-2 { + width: 16.66666667%; + } + .col-sm-1 { + width: 8.33333333%; + } + .col-sm-pull-12 { + right: 100%; + } + .col-sm-pull-11 { + right: 91.66666667%; + } + .col-sm-pull-10 { + right: 83.33333333%; + } + .col-sm-pull-9 { + right: 75%; + } + .col-sm-pull-8 { + right: 66.66666667%; + } + .col-sm-pull-7 { + right: 58.33333333%; + } + .col-sm-pull-6 { + right: 50%; + } + .col-sm-pull-5 { + right: 41.66666667%; + } + .col-sm-pull-4 { + right: 33.33333333%; + } + .col-sm-pull-3 { + right: 25%; + } + .col-sm-pull-2 { + right: 16.66666667%; + } + .col-sm-pull-1 { + right: 8.33333333%; + } + .col-sm-pull-0 { + right: 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-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 { + float: left; + } + .col-md-12 { + width: 100%; + } + .col-md-11 { + width: 91.66666667%; + } + .col-md-10 { + width: 83.33333333%; + } + .col-md-9 { + width: 75%; + } + .col-md-8 { + width: 66.66666667%; + } + .col-md-7 { + width: 58.33333333%; + } + .col-md-6 { + width: 50%; + } + .col-md-5 { + width: 41.66666667%; + } + .col-md-4 { + width: 33.33333333%; + } + .col-md-3 { + width: 25%; + } + .col-md-2 { + width: 16.66666667%; + } + .col-md-1 { + width: 8.33333333%; + } + .col-md-pull-12 { + right: 100%; + } + .col-md-pull-11 { + right: 91.66666667%; + } + .col-md-pull-10 { + right: 83.33333333%; + } + .col-md-pull-9 { + right: 75%; + } + .col-md-pull-8 { + right: 66.66666667%; + } + .col-md-pull-7 { + right: 58.33333333%; + } + .col-md-pull-6 { + right: 50%; + } + .col-md-pull-5 { + right: 41.66666667%; + } + .col-md-pull-4 { + right: 33.33333333%; + } + .col-md-pull-3 { + right: 25%; + } + .col-md-pull-2 { + right: 16.66666667%; + } + .col-md-pull-1 { + right: 8.33333333%; + } + .col-md-pull-0 { + right: 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-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 { + float: left; + } + .col-lg-12 { + width: 100%; + } + .col-lg-11 { + width: 91.66666667%; + } + .col-lg-10 { + width: 83.33333333%; + } + .col-lg-9 { + width: 75%; + } + .col-lg-8 { + width: 66.66666667%; + } + .col-lg-7 { + width: 58.33333333%; + } + .col-lg-6 { + width: 50%; + } + .col-lg-5 { + width: 41.66666667%; + } + .col-lg-4 { + width: 33.33333333%; + } + .col-lg-3 { + width: 25%; + } + .col-lg-2 { + width: 16.66666667%; + } + .col-lg-1 { + width: 8.33333333%; + } + .col-lg-pull-12 { + right: 100%; + } + .col-lg-pull-11 { + right: 91.66666667%; + } + .col-lg-pull-10 { + right: 83.33333333%; + } + .col-lg-pull-9 { + right: 75%; + } + .col-lg-pull-8 { + right: 66.66666667%; + } + .col-lg-pull-7 { + right: 58.33333333%; + } + .col-lg-pull-6 { + right: 50%; + } + .col-lg-pull-5 { + right: 41.66666667%; + } + .col-lg-pull-4 { + right: 33.33333333%; + } + .col-lg-pull-3 { + right: 25%; + } + .col-lg-pull-2 { + right: 16.66666667%; + } + .col-lg-pull-1 { + right: 8.33333333%; + } + .col-lg-pull-0 { + right: 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 > thead > tr > th, +.table > tbody > tr > th, +.table > tfoot > tr > th, +.table > thead > tr > td, +.table > tbody > tr > td, +.table > tfoot > tr > td { + padding: 8px; + line-height: 1.42857143; + vertical-align: top; + border-top: 1px solid #ddd; +} +.table > thead > tr > th { + vertical-align: bottom; + border-bottom: 2px solid #ddd; +} +.table > caption + thead > tr:first-child > th, +.table > colgroup + thead > tr:first-child > th, +.table > thead:first-child > tr:first-child > th, +.table > caption + thead > tr:first-child > td, +.table > colgroup + thead > tr:first-child > td, +.table > thead:first-child > tr:first-child > td { + border-top: 0; +} +.table > tbody + tbody { + border-top: 2px solid #ddd; +} +.table .table { + background-color: #fff; +} +.table-condensed > thead > tr > th, +.table-condensed > tbody > tr > th, +.table-condensed > tfoot > tr > th, +.table-condensed > thead > tr > td, +.table-condensed > tbody > tr > td, +.table-condensed > tfoot > tr > td { + padding: 5px; +} +.table-bordered { + border: 1px solid #ddd; +} +.table-bordered > thead > tr > th, +.table-bordered > tbody > tr > th, +.table-bordered > tfoot > tr > th, +.table-bordered > thead > tr > td, +.table-bordered > tbody > tr > td, +.table-bordered > tfoot > tr > td { + border: 1px solid #ddd; +} +.table-bordered > thead > tr > th, +.table-bordered > thead > tr > td { + border-bottom-width: 2px; +} +.table-striped > tbody > tr:nth-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 > thead > tr > td.active, +.table > tbody > tr > td.active, +.table > tfoot > tr > td.active, +.table > thead > tr > th.active, +.table > tbody > tr > th.active, +.table > tfoot > tr > th.active, +.table > thead > tr.active > td, +.table > tbody > tr.active > td, +.table > tfoot > tr.active > td, +.table > thead > tr.active > th, +.table > tbody > tr.active > th, +.table > tfoot > tr.active > th { + background-color: #f5f5f5; +} +.table-hover > tbody > tr > td.active:hover, +.table-hover > tbody > tr > th.active:hover, +.table-hover > tbody > tr.active:hover > td, +.table-hover > tbody > tr:hover > .active, +.table-hover > tbody > tr.active:hover > th { + background-color: #e8e8e8; +} +.table > thead > tr > td.success, +.table > tbody > tr > td.success, +.table > tfoot > tr > td.success, +.table > thead > tr > th.success, +.table > tbody > tr > th.success, +.table > tfoot > tr > th.success, +.table > thead > tr.success > td, +.table > tbody > tr.success > td, +.table > tfoot > tr.success > td, +.table > thead > tr.success > th, +.table > tbody > tr.success > th, +.table > tfoot > tr.success > th { + background-color: #dff0d8; +} +.table-hover > tbody > tr > td.success:hover, +.table-hover > tbody > tr > th.success:hover, +.table-hover > tbody > tr.success:hover > td, +.table-hover > tbody > tr:hover > .success, +.table-hover > tbody > tr.success:hover > th { + background-color: #d0e9c6; +} +.table > thead > tr > td.info, +.table > tbody > tr > td.info, +.table > tfoot > tr > td.info, +.table > thead > tr > th.info, +.table > tbody > tr > th.info, +.table > tfoot > tr > th.info, +.table > thead > tr.info > td, +.table > tbody > tr.info > td, +.table > tfoot > tr.info > td, +.table > thead > tr.info > th, +.table > tbody > tr.info > th, +.table > tfoot > tr.info > th { + background-color: #d9edf7; +} +.table-hover > tbody > tr > td.info:hover, +.table-hover > tbody > tr > th.info:hover, +.table-hover > tbody > tr.info:hover > td, +.table-hover > tbody > tr:hover > .info, +.table-hover > tbody > tr.info:hover > th { + background-color: #c4e3f3; +} +.table > thead > tr > td.warning, +.table > tbody > tr > td.warning, +.table > tfoot > tr > td.warning, +.table > thead > tr > th.warning, +.table > tbody > tr > th.warning, +.table > tfoot > tr > th.warning, +.table > thead > tr.warning > td, +.table > tbody > tr.warning > td, +.table > tfoot > tr.warning > td, +.table > thead > tr.warning > th, +.table > tbody > tr.warning > th, +.table > tfoot > tr.warning > th { + background-color: #fcf8e3; +} +.table-hover > tbody > tr > td.warning:hover, +.table-hover > tbody > tr > th.warning:hover, +.table-hover > tbody > tr.warning:hover > td, +.table-hover > tbody > tr:hover > .warning, +.table-hover > tbody > tr.warning:hover > th { + background-color: #faf2cc; +} +.table > thead > tr > td.danger, +.table > tbody > tr > td.danger, +.table > tfoot > tr > td.danger, +.table > thead > tr > th.danger, +.table > tbody > tr > th.danger, +.table > tfoot > tr > th.danger, +.table > thead > tr.danger > td, +.table > tbody > tr.danger > td, +.table > tfoot > tr.danger > td, +.table > thead > tr.danger > th, +.table > tbody > tr.danger > th, +.table > tfoot > tr.danger > th { + background-color: #f2dede; +} +.table-hover > tbody > tr > td.danger:hover, +.table-hover > tbody > tr > th.danger:hover, +.table-hover > tbody > tr.danger:hover > td, +.table-hover > tbody > tr:hover > .danger, +.table-hover > tbody > tr.danger:hover > th { + 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 > thead > tr > th, + .table-responsive > .table > tbody > tr > th, + .table-responsive > .table > tfoot > tr > th, + .table-responsive > .table > thead > tr > td, + .table-responsive > .table > tbody > tr > td, + .table-responsive > .table > tfoot > tr > td { + white-space: nowrap; + } + .table-responsive > .table-bordered { + border: 0; + } + .table-responsive > .table-bordered > thead > tr > th:first-child, + .table-responsive > .table-bordered > tbody > tr > th:first-child, + .table-responsive > .table-bordered > tfoot > tr > th:first-child, + .table-responsive > .table-bordered > thead > tr > td:first-child, + .table-responsive > .table-bordered > tbody > tr > td:first-child, + .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-left: 0; + } + .table-responsive > .table-bordered > thead > tr > th:last-child, + .table-responsive > .table-bordered > tbody > tr > th:last-child, + .table-responsive > .table-bordered > tfoot > tr > th:last-child, + .table-responsive > .table-bordered > thead > tr > td:last-child, + .table-responsive > .table-bordered > tbody > tr > td:last-child, + .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-right: 0; + } + .table-responsive > .table-bordered > tbody > tr:last-child > th, + .table-responsive > .table-bordered > tfoot > tr:last-child > th, + .table-responsive > .table-bordered > tbody > tr:last-child > td, + .table-responsive > .table-bordered > tfoot > tr:last-child > td { + border-bottom: 0; + } +} +fieldset { + 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: bold; +} +input[type="search"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +input[type="radio"], +input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; + line-height: normal; +} +input[type="file"] { + display: block; +} +input[type="range"] { + display: block; + width: 100%; +} +select[multiple], +select[size] { + height: auto; +} +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +output { + display: block; + padding-top: 7px; + font-size: 14px; + line-height: 1.42857143; + color: #555; +} +.form-control { + display: block; + width: 100%; + height: 34px; + padding: 6px 12px; + font-size: 14px; + line-height: 1.42857143; + color: #555; + background-color: #fff; + background-image: none; + border: 1px solid #ccc; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + -webkit-transition: border-color ease-in-out .15s, -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[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[type="date"].input-sm, + input[type="time"].input-sm, + input[type="datetime-local"].input-sm, + input[type="month"].input-sm, + .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"] { + line-height: 30px; + } + input[type="date"].input-lg, + input[type="time"].input-lg, + input[type="datetime-local"].input-lg, + input[type="month"].input-lg, + .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"] { + line-height: 46px; + } +} +.form-group { + margin-bottom: 15px; +} +.radio, +.checkbox { + position: relative; + display: block; + margin-top: 10px; + margin-bottom: 10px; +} +.radio label, +.checkbox label { + min-height: 20px; + padding-left: 20px; + margin-bottom: 0; + font-weight: normal; + cursor: pointer; +} +.radio input[type="radio"], +.radio-inline input[type="radio"], +.checkbox input[type="checkbox"], +.checkbox-inline input[type="checkbox"] { + position: absolute; + margin-top: 4px \9; + margin-left: -20px; +} +.radio + .radio, +.checkbox + .checkbox { + margin-top: -5px; +} +.radio-inline, +.checkbox-inline { + position: relative; + display: inline-block; + padding-left: 20px; + margin-bottom: 0; + font-weight: normal; + vertical-align: middle; + cursor: pointer; +} +.radio-inline + .radio-inline, +.checkbox-inline + .checkbox-inline { + margin-top: 0; + margin-left: 10px; +} +input[type="radio"][disabled], +input[type="checkbox"][disabled], +input[type="radio"].disabled, +input[type="checkbox"].disabled, +fieldset[disabled] input[type="radio"], +fieldset[disabled] input[type="checkbox"] { + cursor: not-allowed; +} +.radio-inline.disabled, +.checkbox-inline.disabled, +fieldset[disabled] .radio-inline, +fieldset[disabled] .checkbox-inline { + cursor: not-allowed; +} +.radio.disabled label, +.checkbox.disabled label, +fieldset[disabled] .radio label, +fieldset[disabled] .checkbox 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; +} +textarea.input-sm, +select[multiple].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 textarea.form-control, +.form-group-sm select[multiple].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; +} +textarea.input-lg, +select[multiple].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 textarea.form-control, +.form-group-lg select[multiple].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; +} +.input-lg + .form-control-feedback, +.input-group-lg + .form-control-feedback, +.form-group-lg .form-control + .form-control-feedback { + width: 46px; + height: 46px; + line-height: 46px; +} +.input-sm + .form-control-feedback, +.input-group-sm + .form-control-feedback, +.form-group-sm .form-control + .form-control-feedback { + width: 30px; + height: 30px; + line-height: 30px; +} +.has-success .help-block, +.has-success .control-label, +.has-success .radio, +.has-success .checkbox, +.has-success .radio-inline, +.has-success .checkbox-inline, +.has-success.radio label, +.has-success.checkbox label, +.has-success.radio-inline label, +.has-success.checkbox-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 .help-block, +.has-warning .control-label, +.has-warning .radio, +.has-warning .checkbox, +.has-warning .radio-inline, +.has-warning .checkbox-inline, +.has-warning.radio label, +.has-warning.checkbox label, +.has-warning.radio-inline label, +.has-warning.checkbox-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 .help-block, +.has-error .control-label, +.has-error .radio, +.has-error .checkbox, +.has-error .radio-inline, +.has-error .checkbox-inline, +.has-error.radio label, +.has-error.checkbox label, +.has-error.radio-inline label, +.has-error.checkbox-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 .input-group-addon, + .form-inline .input-group .input-group-btn, + .form-inline .input-group .form-control { + width: auto; + } + .form-inline .input-group > .form-control { + width: 100%; + } + .form-inline .control-label { + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .radio, + .form-inline .checkbox { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .radio label, + .form-inline .checkbox label { + padding-left: 0; + } + .form-inline .radio input[type="radio"], + .form-inline .checkbox input[type="checkbox"] { + position: relative; + margin-left: 0; + } + .form-inline .has-feedback .form-control-feedback { + top: 0; + } +} +.form-horizontal .radio, +.form-horizontal .checkbox, +.form-horizontal .radio-inline, +.form-horizontal .checkbox-inline { + padding-top: 7px; + margin-top: 0; + margin-bottom: 0; +} +.form-horizontal .radio, +.form-horizontal .checkbox { + 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: 14.333333px; + 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: normal; + 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:focus, +.btn:active:focus, +.btn.active:focus, +.btn.focus, +.btn:active.focus, +.btn.active.focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +.btn:hover, +.btn:focus, +.btn.focus { + 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:hover, +.btn-default.active:hover, +.open > .dropdown-toggle.btn-default:hover, +.btn-default:active:focus, +.btn-default.active:focus, +.open > .dropdown-toggle.btn-default:focus, +.btn-default:active.focus, +.btn-default.active.focus, +.open > .dropdown-toggle.btn-default.focus { + 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, +.btn-default[disabled], +fieldset[disabled] .btn-default, +.btn-default.disabled:hover, +.btn-default[disabled]:hover, +fieldset[disabled] .btn-default:hover, +.btn-default.disabled:focus, +.btn-default[disabled]:focus, +fieldset[disabled] .btn-default:focus, +.btn-default.disabled.focus, +.btn-default[disabled].focus, +fieldset[disabled] .btn-default.focus, +.btn-default.disabled:active, +.btn-default[disabled]:active, +fieldset[disabled] .btn-default:active, +.btn-default.disabled.active, +.btn-default[disabled].active, +fieldset[disabled] .btn-default.active { + background-color: #fff; + border-color: #ccc; +} +.btn-default .badge { + color: #fff; + background-color: #333; +} +.btn-primary { + color: #fff; + background-color: #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:hover, +.btn-primary.active:hover, +.open > .dropdown-toggle.btn-primary:hover, +.btn-primary:active:focus, +.btn-primary.active:focus, +.open > .dropdown-toggle.btn-primary:focus, +.btn-primary:active.focus, +.btn-primary.active.focus, +.open > .dropdown-toggle.btn-primary.focus { + 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, +.btn-primary[disabled], +fieldset[disabled] .btn-primary, +.btn-primary.disabled:hover, +.btn-primary[disabled]:hover, +fieldset[disabled] .btn-primary:hover, +.btn-primary.disabled:focus, +.btn-primary[disabled]:focus, +fieldset[disabled] .btn-primary:focus, +.btn-primary.disabled.focus, +.btn-primary[disabled].focus, +fieldset[disabled] .btn-primary.focus, +.btn-primary.disabled:active, +.btn-primary[disabled]:active, +fieldset[disabled] .btn-primary:active, +.btn-primary.disabled.active, +.btn-primary[disabled].active, +fieldset[disabled] .btn-primary.active { + background-color: #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:hover, +.btn-success.active:hover, +.open > .dropdown-toggle.btn-success:hover, +.btn-success:active:focus, +.btn-success.active:focus, +.open > .dropdown-toggle.btn-success:focus, +.btn-success:active.focus, +.btn-success.active.focus, +.open > .dropdown-toggle.btn-success.focus { + 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, +.btn-success[disabled], +fieldset[disabled] .btn-success, +.btn-success.disabled:hover, +.btn-success[disabled]:hover, +fieldset[disabled] .btn-success:hover, +.btn-success.disabled:focus, +.btn-success[disabled]:focus, +fieldset[disabled] .btn-success:focus, +.btn-success.disabled.focus, +.btn-success[disabled].focus, +fieldset[disabled] .btn-success.focus, +.btn-success.disabled:active, +.btn-success[disabled]:active, +fieldset[disabled] .btn-success:active, +.btn-success.disabled.active, +.btn-success[disabled].active, +fieldset[disabled] .btn-success.active { + background-color: #5cb85c; + border-color: #4cae4c; +} +.btn-success .badge { + color: #5cb85c; + background-color: #fff; +} +.btn-info { + color: #fff; + background-color: #5bc0de; + border-color: #46b8da; +} +.btn-info: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:hover, +.btn-info.active:hover, +.open > .dropdown-toggle.btn-info:hover, +.btn-info:active:focus, +.btn-info.active:focus, +.open > .dropdown-toggle.btn-info:focus, +.btn-info:active.focus, +.btn-info.active.focus, +.open > .dropdown-toggle.btn-info.focus { + 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, +.btn-info[disabled], +fieldset[disabled] .btn-info, +.btn-info.disabled:hover, +.btn-info[disabled]:hover, +fieldset[disabled] .btn-info:hover, +.btn-info.disabled:focus, +.btn-info[disabled]:focus, +fieldset[disabled] .btn-info:focus, +.btn-info.disabled.focus, +.btn-info[disabled].focus, +fieldset[disabled] .btn-info.focus, +.btn-info.disabled:active, +.btn-info[disabled]:active, +fieldset[disabled] .btn-info:active, +.btn-info.disabled.active, +.btn-info[disabled].active, +fieldset[disabled] .btn-info.active { + background-color: #5bc0de; + border-color: #46b8da; +} +.btn-info .badge { + color: #5bc0de; + background-color: #fff; +} +.btn-warning { + color: #fff; + background-color: #f0ad4e; + border-color: #eea236; +} +.btn-warning: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:hover, +.btn-warning.active:hover, +.open > .dropdown-toggle.btn-warning:hover, +.btn-warning:active:focus, +.btn-warning.active:focus, +.open > .dropdown-toggle.btn-warning:focus, +.btn-warning:active.focus, +.btn-warning.active.focus, +.open > .dropdown-toggle.btn-warning.focus { + 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, +.btn-warning[disabled], +fieldset[disabled] .btn-warning, +.btn-warning.disabled:hover, +.btn-warning[disabled]:hover, +fieldset[disabled] .btn-warning:hover, +.btn-warning.disabled:focus, +.btn-warning[disabled]:focus, +fieldset[disabled] .btn-warning:focus, +.btn-warning.disabled.focus, +.btn-warning[disabled].focus, +fieldset[disabled] .btn-warning.focus, +.btn-warning.disabled:active, +.btn-warning[disabled]:active, +fieldset[disabled] .btn-warning:active, +.btn-warning.disabled.active, +.btn-warning[disabled].active, +fieldset[disabled] .btn-warning.active { + background-color: #f0ad4e; + border-color: #eea236; +} +.btn-warning .badge { + color: #f0ad4e; + background-color: #fff; +} +.btn-danger { + color: #fff; + background-color: #d9534f; + border-color: #d43f3a; +} +.btn-danger: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:hover, +.btn-danger.active:hover, +.open > .dropdown-toggle.btn-danger:hover, +.btn-danger:active:focus, +.btn-danger.active:focus, +.open > .dropdown-toggle.btn-danger:focus, +.btn-danger:active.focus, +.btn-danger.active.focus, +.open > .dropdown-toggle.btn-danger.focus { + 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, +.btn-danger[disabled], +fieldset[disabled] .btn-danger, +.btn-danger.disabled:hover, +.btn-danger[disabled]:hover, +fieldset[disabled] .btn-danger:hover, +.btn-danger.disabled:focus, +.btn-danger[disabled]:focus, +fieldset[disabled] .btn-danger:focus, +.btn-danger.disabled.focus, +.btn-danger[disabled].focus, +fieldset[disabled] .btn-danger.focus, +.btn-danger.disabled:active, +.btn-danger[disabled]:active, +fieldset[disabled] .btn-danger:active, +.btn-danger.disabled.active, +.btn-danger[disabled].active, +fieldset[disabled] .btn-danger.active { + background-color: #d9534f; + border-color: #d43f3a; +} +.btn-danger .badge { + color: #d9534f; + background-color: #fff; +} +.btn-link { + font-weight: normal; + 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:hover, +.btn-link:focus, +.btn-link:active { + border-color: transparent; +} +.btn-link:hover, +.btn-link:focus { + color: #23527c; + text-decoration: underline; + background-color: transparent; +} +.btn-link[disabled]:hover, +fieldset[disabled] .btn-link:hover, +.btn-link[disabled]:focus, +fieldset[disabled] .btn-link:focus { + color: #777; + text-decoration: none; +} +.btn-lg, +.btn-group-lg > .btn { + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px; +} +.btn-sm, +.btn-group-sm > .btn { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +.btn-xs, +.btn-group-xs > .btn { + padding: 1px 5px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +.btn-block { + display: block; + width: 100%; +} +.btn-block + .btn-block { + margin-top: 5px; +} +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} +.fade { + opacity: 0; + -webkit-transition: opacity .15s linear; + -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; +} +.dropup, +.dropdown { + position: relative; +} +.dropdown-toggle:focus { + outline: 0; +} +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + 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: normal; + line-height: 1.42857143; + color: #333; + white-space: nowrap; +} +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus { + color: #262626; + text-decoration: none; + background-color: #f5f5f5; +} +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + color: #fff; + text-decoration: none; + background-color: #337ab7; + outline: 0; +} +.dropdown-menu > .disabled > a, +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + color: #777; +} +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + 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 > .btn, +.btn-group-vertical > .btn { + position: relative; + float: left; +} +.btn-group > .btn:hover, +.btn-group-vertical > .btn:hover, +.btn-group > .btn:focus, +.btn-group-vertical > .btn:focus, +.btn-group > .btn:active, +.btn-group-vertical > .btn:active, +.btn-group > .btn.active, +.btn-group-vertical > .btn.active { + z-index: 2; +} +.btn-group .btn + .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-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-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="radio"], +[data-toggle="buttons"] > .btn-group > .btn input[type="radio"], +[data-toggle="buttons"] > .btn input[type="checkbox"], +[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] { + 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-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; +} +textarea.input-group-lg > .form-control, +textarea.input-group-lg > .input-group-addon, +textarea.input-group-lg > .input-group-btn > .btn, +select[multiple].input-group-lg > .form-control, +select[multiple].input-group-lg > .input-group-addon, +select[multiple].input-group-lg > .input-group-btn > .btn { + height: auto; +} +.input-group-sm > .form-control, +.input-group-sm > .input-group-addon, +.input-group-sm > .input-group-btn > .btn { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +select.input-group-sm > .form-control, +select.input-group-sm > .input-group-addon, +select.input-group-sm > .input-group-btn > .btn { + height: 30px; + line-height: 30px; +} +textarea.input-group-sm > .form-control, +textarea.input-group-sm > .input-group-addon, +textarea.input-group-sm > .input-group-btn > .btn, +select[multiple].input-group-sm > .form-control, +select[multiple].input-group-sm > .input-group-addon, +select[multiple].input-group-sm > .input-group-btn > .btn { + height: auto; +} +.input-group-addon, +.input-group-btn, +.input-group .form-control { + display: table-cell; +} +.input-group-addon:not(:first-child):not(:last-child), +.input-group-btn:not(:first-child):not(:last-child), +.input-group .form-control:not(:first-child):not(:last-child) { + border-radius: 0; +} +.input-group-addon, +.input-group-btn { + width: 1%; + white-space: nowrap; + vertical-align: middle; +} +.input-group-addon { + padding: 6px 12px; + font-size: 14px; + font-weight: normal; + line-height: 1; + color: #555; + text-align: center; + background-color: #eee; + border: 1px solid #ccc; + border-radius: 4px; +} +.input-group-addon.input-sm { + padding: 5px 10px; + font-size: 12px; + border-radius: 3px; +} +.input-group-addon.input-lg { + padding: 10px 16px; + font-size: 18px; + border-radius: 6px; +} +.input-group-addon input[type="radio"], +.input-group-addon input[type="checkbox"] { + margin-top: 0; +} +.input-group .form-control:first-child, +.input-group-addon:first-child, +.input-group-btn:first-child > .btn, +.input-group-btn:first-child > .btn-group > .btn, +.input-group-btn:first-child > .dropdown-toggle, +.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), +.input-group-btn:last-child > .btn-group:not(:last-child) > .btn { + border-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:last-child > .btn, +.input-group-btn:last-child > .btn-group > .btn, +.input-group-btn:last-child > .dropdown-toggle, +.input-group-btn:first-child > .btn:not(:first-child), +.input-group-btn:first-child > .btn-group:not(:first-child) > .btn { + border-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:hover, +.input-group-btn > .btn:focus, +.input-group-btn > .btn:active { + z-index: 2; +} +.input-group-btn:first-child > .btn, +.input-group-btn:first-child > .btn-group { + margin-right: -1px; +} +.input-group-btn:last-child > .btn, +.input-group-btn:last-child > .btn-group { + 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:hover, +.nav > li > a:focus { + text-decoration: none; + background-color: #eee; +} +.nav > li.disabled > a { + color: #777; +} +.nav > li.disabled > a:hover, +.nav > li.disabled > a:focus { + color: #777; + text-decoration: none; + cursor: not-allowed; + background-color: transparent; +} +.nav .open > a, +.nav .open > a:hover, +.nav .open > a:focus { + 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:hover, +.nav-tabs > li.active > a:focus { + 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:hover, +.nav-tabs.nav-justified > .active > a:focus { + border: 1px solid #ddd; +} +@media (min-width: 768px) { + .nav-tabs.nav-justified > li > a { + border-bottom: 1px solid #ddd; + border-radius: 4px 4px 0 0; + } + .nav-tabs.nav-justified > .active > a, + .nav-tabs.nav-justified > .active > a:hover, + .nav-tabs.nav-justified > .active > a:focus { + border-bottom-color: #fff; + } +} +.nav-pills > li { + float: left; +} +.nav-pills > li > a { + border-radius: 4px; +} +.nav-pills > li + li { + margin-left: 2px; +} +.nav-pills > li.active > a, +.nav-pills > li.active > a:hover, +.nav-pills > li.active > a:focus { + color: #fff; + background-color: #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:hover, +.nav-tabs-justified > .active > a:focus { + border: 1px solid #ddd; +} +@media (min-width: 768px) { + .nav-tabs-justified > li > a { + border-bottom: 1px solid #ddd; + border-radius: 4px 4px 0 0; + } + .nav-tabs-justified > .active > a, + .nav-tabs-justified > .active > a:hover, + .nav-tabs-justified > .active > a:focus { + border-bottom-color: #fff; + } +} +.tab-content > .tab-pane { + display: none; +} +.tab-content > .active { + display: block; +} +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-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-top .navbar-collapse, + .navbar-static-top .navbar-collapse, + .navbar-fixed-bottom .navbar-collapse { + padding-right: 0; + padding-left: 0; + } +} +.navbar-fixed-top .navbar-collapse, +.navbar-fixed-bottom .navbar-collapse { + max-height: 340px; +} +@media (max-device-width: 480px) and (orientation: landscape) { + .navbar-fixed-top .navbar-collapse, + .navbar-fixed-bottom .navbar-collapse { + max-height: 200px; + } +} +.container > .navbar-header, +.container-fluid > .navbar-header, +.container > .navbar-collapse, +.container-fluid > .navbar-collapse { + margin-right: -15px; + margin-left: -15px; +} +@media (min-width: 768px) { + .container > .navbar-header, + .container-fluid > .navbar-header, + .container > .navbar-collapse, + .container-fluid > .navbar-collapse { + margin-right: 0; + margin-left: 0; + } +} +.navbar-static-top { + z-index: 1000; + border-width: 0 0 1px; +} +@media (min-width: 768px) { + .navbar-static-top { + border-radius: 0; + } +} +.navbar-fixed-top, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + z-index: 1030; +} +@media (min-width: 768px) { + .navbar-fixed-top, + .navbar-fixed-bottom { + border-radius: 0; + } +} +.navbar-fixed-top { + top: 0; + border-width: 0 0 1px; +} +.navbar-fixed-bottom { + bottom: 0; + margin-bottom: 0; + border-width: 1px 0 0; +} +.navbar-brand { + float: left; + height: 50px; + padding: 15px 15px; + font-size: 18px; + line-height: 20px; +} +.navbar-brand:hover, +.navbar-brand:focus { + 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 > li > a, + .navbar-nav .open .dropdown-menu .dropdown-header { + padding: 5px 15px 5px 25px; + } + .navbar-nav .open .dropdown-menu > li > a { + line-height: 20px; + } + .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-nav .open .dropdown-menu > li > a:focus { + background-image: none; + } +} +@media (min-width: 768px) { + .navbar-nav { + float: left; + margin: 0; + } + .navbar-nav > li { + float: left; + } + .navbar-nav > li > a { + padding-top: 15px; + padding-bottom: 15px; + } +} +.navbar-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 .input-group-addon, + .navbar-form .input-group .input-group-btn, + .navbar-form .input-group .form-control { + width: auto; + } + .navbar-form .input-group > .form-control { + width: 100%; + } + .navbar-form .control-label { + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .radio, + .navbar-form .checkbox { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .radio label, + .navbar-form .checkbox label { + padding-left: 0; + } + .navbar-form .radio input[type="radio"], + .navbar-form .checkbox input[type="checkbox"] { + 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:hover, +.navbar-default .navbar-brand:focus { + color: #5e5e5e; + background-color: transparent; +} +.navbar-default .navbar-text { + color: #777; +} +.navbar-default .navbar-nav > li > a { + color: #777; +} +.navbar-default .navbar-nav > li > a:hover, +.navbar-default .navbar-nav > li > a:focus { + color: #333; + background-color: transparent; +} +.navbar-default .navbar-nav > .active > a, +.navbar-default .navbar-nav > .active > a:hover, +.navbar-default .navbar-nav > .active > a:focus { + color: #555; + background-color: #e7e7e7; +} +.navbar-default .navbar-nav > .disabled > a, +.navbar-default .navbar-nav > .disabled > a:hover, +.navbar-default .navbar-nav > .disabled > a:focus { + color: #ccc; + background-color: transparent; +} +.navbar-default .navbar-toggle { + border-color: #ddd; +} +.navbar-default .navbar-toggle:hover, +.navbar-default .navbar-toggle:focus { + background-color: #ddd; +} +.navbar-default .navbar-toggle .icon-bar { + background-color: #888; +} +.navbar-default .navbar-collapse, +.navbar-default .navbar-form { + border-color: #e7e7e7; +} +.navbar-default .navbar-nav > .open > a, +.navbar-default .navbar-nav > .open > a:hover, +.navbar-default .navbar-nav > .open > a:focus { + 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:hover, + .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { + color: #333; + background-color: transparent; + } + .navbar-default .navbar-nav .open .dropdown-menu > .active > a, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #555; + background-color: #e7e7e7; + } + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { + color: #ccc; + background-color: transparent; + } +} +.navbar-default .navbar-link { + color: #777; +} +.navbar-default .navbar-link:hover { + color: #333; +} +.navbar-default .btn-link { + color: #777; +} +.navbar-default .btn-link:hover, +.navbar-default .btn-link:focus { + color: #333; +} +.navbar-default .btn-link[disabled]:hover, +fieldset[disabled] .navbar-default .btn-link:hover, +.navbar-default .btn-link[disabled]:focus, +fieldset[disabled] .navbar-default .btn-link:focus { + color: #ccc; +} +.navbar-inverse { + background-color: #222; + border-color: #080808; +} +.navbar-inverse .navbar-brand { + color: #9d9d9d; +} +.navbar-inverse .navbar-brand:hover, +.navbar-inverse .navbar-brand:focus { + 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:hover, +.navbar-inverse .navbar-nav > li > a:focus { + color: #fff; + background-color: transparent; +} +.navbar-inverse .navbar-nav > .active > a, +.navbar-inverse .navbar-nav > .active > a:hover, +.navbar-inverse .navbar-nav > .active > a:focus { + color: #fff; + background-color: #080808; +} +.navbar-inverse .navbar-nav > .disabled > a, +.navbar-inverse .navbar-nav > .disabled > a:hover, +.navbar-inverse .navbar-nav > .disabled > a:focus { + color: #444; + background-color: transparent; +} +.navbar-inverse .navbar-toggle { + border-color: #333; +} +.navbar-inverse .navbar-toggle:hover, +.navbar-inverse .navbar-toggle:focus { + background-color: #333; +} +.navbar-inverse .navbar-toggle .icon-bar { + background-color: #fff; +} +.navbar-inverse .navbar-collapse, +.navbar-inverse .navbar-form { + border-color: #101010; +} +.navbar-inverse .navbar-nav > .open > a, +.navbar-inverse .navbar-nav > .open > a:hover, +.navbar-inverse .navbar-nav > .open > a:focus { + 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:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { + color: #fff; + background-color: transparent; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #fff; + background-color: #080808; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { + color: #444; + background-color: transparent; + } +} +.navbar-inverse .navbar-link { + color: #9d9d9d; +} +.navbar-inverse .navbar-link:hover { + color: #fff; +} +.navbar-inverse .btn-link { + color: #9d9d9d; +} +.navbar-inverse .btn-link:hover, +.navbar-inverse .btn-link:focus { + color: #fff; +} +.navbar-inverse .btn-link[disabled]:hover, +fieldset[disabled] .navbar-inverse .btn-link:hover, +.navbar-inverse .btn-link[disabled]:focus, +fieldset[disabled] .navbar-inverse .btn-link:focus { + 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:hover, +.pagination > li > span:hover, +.pagination > li > a:focus, +.pagination > li > span:focus { + z-index: 3; + color: #23527c; + background-color: #eee; + border-color: #ddd; +} +.pagination > .active > a, +.pagination > .active > span, +.pagination > .active > a:hover, +.pagination > .active > span:hover, +.pagination > .active > a:focus, +.pagination > .active > span:focus { + z-index: 2; + color: #fff; + cursor: default; + background-color: #337ab7; + border-color: #337ab7; +} +.pagination > .disabled > span, +.pagination > .disabled > span:hover, +.pagination > .disabled > span:focus, +.pagination > .disabled > a, +.pagination > .disabled > a:hover, +.pagination > .disabled > a:focus { + 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:hover, +.pager li > a:focus { + text-decoration: none; + background-color: #eee; +} +.pager .next > a, +.pager .next > span { + float: right; +} +.pager .previous > a, +.pager .previous > span { + float: left; +} +.pager .disabled > a, +.pager .disabled > a:hover, +.pager .disabled > a:focus, +.pager .disabled > span { + color: #777; + cursor: not-allowed; + background-color: #fff; +} +.label { + display: inline; + padding: .2em .6em .3em; + font-size: 75%; + font-weight: bold; + line-height: 1; + color: #fff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: .25em; +} +a.label:hover, +a.label:focus { + 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]:hover, +.label-default[href]:focus { + background-color: #5e5e5e; +} +.label-primary { + background-color: #337ab7; +} +.label-primary[href]:hover, +.label-primary[href]:focus { + background-color: #286090; +} +.label-success { + background-color: #5cb85c; +} +.label-success[href]:hover, +.label-success[href]:focus { + background-color: #449d44; +} +.label-info { + background-color: #5bc0de; +} +.label-info[href]:hover, +.label-info[href]:focus { + background-color: #31b0d5; +} +.label-warning { + background-color: #f0ad4e; +} +.label-warning[href]:hover, +.label-warning[href]:focus { + background-color: #ec971f; +} +.label-danger { + background-color: #d9534f; +} +.label-danger[href]:hover, +.label-danger[href]:focus { + background-color: #c9302c; +} +.badge { + display: inline-block; + min-width: 10px; + padding: 3px 7px; + font-size: 12px; + font-weight: bold; + 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-xs .badge, +.btn-group-xs > .btn .badge { + top: 0; + padding: 1px 5px; +} +a.badge:hover, +a.badge:focus { + 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 { + 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 > img, +.thumbnail a > img { + margin-right: auto; + margin-left: auto; +} +a.thumbnail:hover, +a.thumbnail:focus, +a.thumbnail.active { + 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: bold; +} +.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-striped .progress-bar, +.progress-bar-striped { + 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.active .progress-bar, +.progress-bar.active { + -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-left, +.media-right, +.media-body { + 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:hover, +button.list-group-item:hover, +a.list-group-item:focus, +button.list-group-item:focus { + 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:hover, +.list-group-item.disabled:focus { + color: #777; + cursor: not-allowed; + background-color: #eee; +} +.list-group-item.disabled .list-group-item-heading, +.list-group-item.disabled:hover .list-group-item-heading, +.list-group-item.disabled:focus .list-group-item-heading { + color: inherit; +} +.list-group-item.disabled .list-group-item-text, +.list-group-item.disabled:hover .list-group-item-text, +.list-group-item.disabled:focus .list-group-item-text { + color: #777; +} +.list-group-item.active, +.list-group-item.active:hover, +.list-group-item.active:focus { + z-index: 2; + color: #fff; + background-color: #337ab7; + border-color: #337ab7; +} +.list-group-item.active .list-group-item-heading, +.list-group-item.active:hover .list-group-item-heading, +.list-group-item.active:focus .list-group-item-heading, +.list-group-item.active .list-group-item-heading > small, +.list-group-item.active:hover .list-group-item-heading > small, +.list-group-item.active:focus .list-group-item-heading > small, +.list-group-item.active .list-group-item-heading > .small, +.list-group-item.active:hover .list-group-item-heading > .small, +.list-group-item.active:focus .list-group-item-heading > .small { + color: inherit; +} +.list-group-item.active .list-group-item-text, +.list-group-item.active:hover .list-group-item-text, +.list-group-item.active:focus .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:hover, +button.list-group-item-success:hover, +a.list-group-item-success:focus, +button.list-group-item-success:focus { + color: #3c763d; + background-color: #d0e9c6; +} +a.list-group-item-success.active, +button.list-group-item-success.active, +a.list-group-item-success.active:hover, +button.list-group-item-success.active:hover, +a.list-group-item-success.active:focus, +button.list-group-item-success.active:focus { + color: #fff; + background-color: #3c763d; + border-color: #3c763d; +} +.list-group-item-info { + color: #31708f; + background-color: #d9edf7; +} +a.list-group-item-info, +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:hover, +button.list-group-item-info:hover, +a.list-group-item-info:focus, +button.list-group-item-info:focus { + color: #31708f; + background-color: #c4e3f3; +} +a.list-group-item-info.active, +button.list-group-item-info.active, +a.list-group-item-info.active:hover, +button.list-group-item-info.active:hover, +a.list-group-item-info.active:focus, +button.list-group-item-info.active:focus { + color: #fff; + background-color: #31708f; + border-color: #31708f; +} +.list-group-item-warning { + color: #8a6d3b; + background-color: #fcf8e3; +} +a.list-group-item-warning, +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:hover, +button.list-group-item-warning:hover, +a.list-group-item-warning:focus, +button.list-group-item-warning:focus { + color: #8a6d3b; + background-color: #faf2cc; +} +a.list-group-item-warning.active, +button.list-group-item-warning.active, +a.list-group-item-warning.active:hover, +button.list-group-item-warning.active:hover, +a.list-group-item-warning.active:focus, +button.list-group-item-warning.active:focus { + color: #fff; + background-color: #8a6d3b; + border-color: #8a6d3b; +} +.list-group-item-danger { + color: #a94442; + background-color: #f2dede; +} +a.list-group-item-danger, +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:hover, +button.list-group-item-danger:hover, +a.list-group-item-danger:focus, +button.list-group-item-danger:focus { + color: #a94442; + background-color: #ebcccc; +} +a.list-group-item-danger.active, +button.list-group-item-danger.active, +a.list-group-item-danger.active:hover, +button.list-group-item-danger.active:hover, +a.list-group-item-danger.active:focus, +button.list-group-item-danger.active:focus { + color: #fff; + background-color: #a94442; + border-color: #a94442; +} +.list-group-item-heading { + margin-top: 0; + margin-bottom: 5px; +} +.list-group-item-text { + margin-bottom: 0; + line-height: 1.3; +} +.panel { + margin-bottom: 20px; + background-color: #fff; + border: 1px solid transparent; + border-radius: 4px; + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05); + box-shadow: 0 1px 1px rgba(0, 0, 0, .05); +} +.panel-body { + padding: 15px; +} +.panel-heading { + padding: 10px 15px; + border-bottom: 1px solid transparent; + border-top-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 > a, +.panel-title > small, +.panel-title > .small, +.panel-title > small > a, +.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 > .table, +.panel > .table-responsive > .table, +.panel > .panel-collapse > .table { + margin-bottom: 0; +} +.panel > .table caption, +.panel > .table-responsive > .table caption, +.panel > .panel-collapse > .table caption { + padding-right: 15px; + padding-left: 15px; +} +.panel > .table:first-child, +.panel > .table-responsive:first-child > .table:first-child { + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} +.panel > .table:first-child > thead: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-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child { + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} +.panel > .table:first-child > thead:first-child > tr:first-child td:first-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child, +.panel > .table:first-child > thead:first-child > tr:first-child th:first-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child { + border-top-left-radius: 3px; +} +.panel > .table:first-child > thead:first-child > tr:first-child td:last-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, +.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child, +.panel > .table:first-child > thead:first-child > tr:first-child th:last-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, +.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child { + border-top-right-radius: 3px; +} +.panel > .table:last-child, +.panel > .table-responsive:last-child > .table:last-child { + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} +.panel > .table:last-child > tbody:last-child > tr:last-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child { + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} +.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child, +.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child { + border-bottom-left-radius: 3px; +} +.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child, +.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child { + border-bottom-right-radius: 3px; +} +.panel > .panel-body + .table, +.panel > .panel-body + .table-responsive, +.panel > .table + .panel-body, +.panel > .table-responsive + .panel-body { + border-top: 1px solid #ddd; +} +.panel > .table > tbody:first-child > tr:first-child th, +.panel > .table > tbody:first-child > tr:first-child td { + border-top: 0; +} +.panel > .table-bordered, +.panel > .table-responsive > .table-bordered { + border: 0; +} +.panel > .table-bordered > thead > tr > th:first-child, +.panel > .table-responsive > .table-bordered > thead > tr > th:first-child, +.panel > .table-bordered > tbody > tr > th:first-child, +.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, +.panel > .table-bordered > tfoot > tr > th:first-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, +.panel > .table-bordered > thead > tr > td:first-child, +.panel > .table-responsive > .table-bordered > thead > tr > td:first-child, +.panel > .table-bordered > tbody > tr > td:first-child, +.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, +.panel > .table-bordered > tfoot > tr > td:first-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-left: 0; +} +.panel > .table-bordered > thead > tr > th:last-child, +.panel > .table-responsive > .table-bordered > thead > tr > th:last-child, +.panel > .table-bordered > tbody > tr > th:last-child, +.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, +.panel > .table-bordered > tfoot > tr > th:last-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, +.panel > .table-bordered > thead > tr > td:last-child, +.panel > .table-responsive > .table-bordered > thead > tr > td:last-child, +.panel > .table-bordered > tbody > tr > td:last-child, +.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, +.panel > .table-bordered > tfoot > tr > td:last-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-right: 0; +} +.panel > .table-bordered > thead > tr:first-child > td, +.panel > .table-responsive > .table-bordered > thead > tr:first-child > td, +.panel > .table-bordered > tbody > tr:first-child > td, +.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td, +.panel > .table-bordered > thead > tr:first-child > th, +.panel > .table-responsive > .table-bordered > thead > tr:first-child > th, +.panel > .table-bordered > tbody > tr:first-child > th, +.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th { + border-bottom: 0; +} +.panel > .table-bordered > tbody > tr:last-child > td, +.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, +.panel > .table-bordered > tfoot > tr:last-child > td, +.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td, +.panel > .table-bordered > tbody > tr:last-child > th, +.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, +.panel > .table-bordered > tfoot > tr:last-child > th, +.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th { + border-bottom: 0; +} +.panel > .table-responsive { + 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 > .panel-body, +.panel-group .panel-heading + .panel-collapse > .list-group { + 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 iframe, +.embed-responsive embed, +.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: bold; + line-height: 1; + color: #000; + text-shadow: 0 1px 0 #fff; + filter: alpha(opacity=20); + opacity: .2; +} +.close:hover, +.close:focus { + color: #000; + text-decoration: none; + cursor: pointer; + filter: alpha(opacity=50); + opacity: .5; +} +button.close { + -webkit-appearance: none; + padding: 0; + cursor: pointer; + background: transparent; + 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 { + min-height: 16.42857143px; + 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: normal; + 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: normal; + 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 > img, +.carousel-inner > .item > a > 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.next, + .carousel-inner > .item.active.right { + left: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } + .carousel-inner > .item.prev, + .carousel-inner > .item.active.left { + left: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } + .carousel-inner > .item.next.left, + .carousel-inner > .item.prev.right, + .carousel-inner > .item.active { + 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); + 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:hover, +.carousel-control:focus { + color: #fff; + text-decoration: none; + filter: alpha(opacity=90); + outline: 0; + opacity: .9; +} +.carousel-control .icon-prev, +.carousel-control .icon-next, +.carousel-control .glyphicon-chevron-left, +.carousel-control .glyphicon-chevron-right { + position: absolute; + top: 50%; + z-index: 5; + display: inline-block; + margin-top: -10px; +} +.carousel-control .icon-prev, +.carousel-control .glyphicon-chevron-left { + left: 50%; + margin-left: -10px; +} +.carousel-control .icon-next, +.carousel-control .glyphicon-chevron-right { + right: 50%; + margin-right: -10px; +} +.carousel-control .icon-prev, +.carousel-control .icon-next { + 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-prev, + .carousel-control .icon-next { + width: 30px; + height: 30px; + margin-top: -15px; + font-size: 30px; + } + .carousel-control .glyphicon-chevron-left, + .carousel-control .icon-prev { + margin-left: -15px; + } + .carousel-control .glyphicon-chevron-right, + .carousel-control .icon-next { + margin-right: -15px; + } + .carousel-caption { + right: 20%; + left: 20%; + padding-bottom: 30px; + } + .carousel-indicators { + bottom: 20px; + } +} +.clearfix:before, +.clearfix:after, +.dl-horizontal dd:before, +.dl-horizontal dd:after, +.container:before, +.container:after, +.container-fluid:before, +.container-fluid:after, +.row:before, +.row:after, +.form-horizontal .form-group:before, +.form-horizontal .form-group:after, +.btn-toolbar:before, +.btn-toolbar:after, +.btn-group-vertical > .btn-group:before, +.btn-group-vertical > .btn-group:after, +.nav:before, +.nav:after, +.navbar:before, +.navbar:after, +.navbar-header:before, +.navbar-header:after, +.navbar-collapse:before, +.navbar-collapse:after, +.pager:before, +.pager:after, +.panel-body:before, +.panel-body:after, +.modal-footer:before, +.modal-footer:after { + display: table; + content: " "; +} +.clearfix:after, +.dl-horizontal dd:after, +.container:after, +.container-fluid:after, +.row:after, +.form-horizontal .form-group:after, +.btn-toolbar:after, +.btn-group-vertical > .btn-group:after, +.nav:after, +.navbar:after, +.navbar-header:after, +.navbar-collapse:after, +.pager:after, +.panel-body:after, +.modal-footer:after { + clear: both; +} +.center-block { + display: block; + margin-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-xs, +.visible-sm, +.visible-md, +.visible-lg { + display: none !important; +} +.visible-xs-block, +.visible-xs-inline, +.visible-xs-inline-block, +.visible-sm-block, +.visible-sm-inline, +.visible-sm-inline-block, +.visible-md-block, +.visible-md-inline, +.visible-md-inline-block, +.visible-lg-block, +.visible-lg-inline, +.visible-lg-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; + } + th.visible-xs, + td.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; + } + th.visible-sm, + td.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; + } + th.visible-md, + td.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; + } + th.visible-lg, + td.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; + } + th.visible-print, + td.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.css.map */ diff --git a/public/css/bootstrap.css.map b/public/css/bootstrap.css.map new file mode 100644 index 0000000..9f60ed2 --- /dev/null +++ b/public/css/bootstrap.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["bootstrap.css","less/normalize.less","less/print.less","less/glyphicons.less","less/scaffolding.less","less/mixins/vendor-prefixes.less","less/mixins/tab-focus.less","less/mixins/image.less","less/type.less","less/mixins/text-emphasis.less","less/mixins/background-variant.less","less/mixins/text-overflow.less","less/code.less","less/grid.less","less/mixins/grid.less","less/mixins/grid-framework.less","less/tables.less","less/mixins/table-row.less","less/forms.less","less/mixins/forms.less","less/buttons.less","less/mixins/buttons.less","less/mixins/opacity.less","less/component-animations.less","less/dropdowns.less","less/mixins/nav-divider.less","less/mixins/reset-filter.less","less/button-groups.less","less/mixins/border-radius.less","less/input-groups.less","less/navs.less","less/navbar.less","less/mixins/nav-vertical-align.less","less/utilities.less","less/breadcrumbs.less","less/pagination.less","less/mixins/pagination.less","less/pager.less","less/labels.less","less/mixins/labels.less","less/badges.less","less/jumbotron.less","less/thumbnails.less","less/alerts.less","less/mixins/alerts.less","less/progress-bars.less","less/mixins/gradients.less","less/mixins/progress-bar.less","less/media.less","less/list-group.less","less/mixins/list-group.less","less/panels.less","less/mixins/panels.less","less/responsive-embed.less","less/wells.less","less/close.less","less/modals.less","less/tooltip.less","less/mixins/reset-text.less","less/popovers.less","less/carousel.less","less/mixins/clearfix.less","less/mixins/center-block.less","less/mixins/hide-text.less","less/responsive-utilities.less","less/mixins/responsive-visibility.less"],"names":[],"mappings":"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,iBAAA;CHsR9C;AGrRmC;EAAW,iBAAA;CHwR9C;AGvRmC;EAAW,iBAAA;CH0R9C;AGzRmC;EAAW,iBAAA;CH4R9C;AG3RmC;EAAW,iBAAA;CH8R9C;AG7RmC;EAAW,iBAAA;CHgS9C;AG/RmC;EAAW,iBAAA;CHkS9C;AGjSmC;EAAW,iBAAA;CHoS9C;AGnSmC;EAAW,iBAAA;CHsS9C;AGrSmC;EAAW,iBAAA;CHwS9C;AGvSmC;EAAW,iBAAA;CH0S9C;AGzSmC;EAAW,iBAAA;CH4S9C;AG3SmC;EAAW,iBAAA;CH8S9C;AG7SmC;EAAW,iBAAA;CHgT9C;AG/SmC;EAAW,iBAAA;CHkT9C;AGjTmC;EAAW,iBAAA;CHoT9C;AGnTmC;EAAW,iBAAA;CHsT9C;AGrTmC;EAAW,iBAAA;CHwT9C;AGvTmC;EAAW,iBAAA;CH0T9C;AGzTmC;EAAW,iBAAA;CH4T9C;AG3TmC;EAAW,iBAAA;CH8T9C;AG7TmC;EAAW,iBAAA;CHgU9C;AG/TmC;EAAW,iBAAA;CHkU9C;AGjUmC;EAAW,iBAAA;CHoU9C;AGnUmC;EAAW,iBAAA;CHsU9C;AGrUmC;EAAW,iBAAA;CHwU9C;AGvUmC;EAAW,iBAAA;CH0U9C;AGzUmC;EAAW,iBAAA;CH4U9C;AG3UmC;EAAW,iBAAA;CH8U9C;AG7UmC;EAAW,iBAAA;CHgV9C;AG/UmC;EAAW,iBAAA;CHkV9C;AGjVmC;EAAW,iBAAA;CHoV9C;AGnVmC;EAAW,iBAAA;CHsV9C;AGrVmC;EAAW,iBAAA;CHwV9C;AGvVmC;EAAW,iBAAA;CH0V9C;AGzVmC;EAAW,iBAAA;CH4V9C;AG3VmC;EAAW,iBAAA;CH8V9C;AG7VmC;EAAW,iBAAA;CHgW9C;AG/VmC;EAAW,iBAAA;CHkW9C;AGjWmC;EAAW,iBAAA;CHoW9C;AGnWmC;EAAW,iBAAA;CHsW9C;AGrWmC;EAAW,iBAAA;CHwW9C;AGvWmC;EAAW,iBAAA;CH0W9C;AGzWmC;EAAW,iBAAA;CH4W9C;AG3WmC;EAAW,iBAAA;CH8W9C;AG7WmC;EAAW,iBAAA;CHgX9C;AG/WmC;EAAW,iBAAA;CHkX9C;AGjXmC;EAAW,iBAAA;CHoX9C;AGnXmC;EAAW,iBAAA;CHsX9C;AGrXmC;EAAW,iBAAA;CHwX9C;AGvXmC;EAAW,iBAAA;CH0X9C;AGzXmC;EAAW,iBAAA;CH4X9C;AG3XmC;EAAW,iBAAA;CH8X9C;AG7XmC;EAAW,iBAAA;CHgY9C;AG/XmC;EAAW,iBAAA;CHkY9C;AGjYmC;EAAW,iBAAA;CHoY9C;AGnYmC;EAAW,iBAAA;CHsY9C;AGrYmC;EAAW,iBAAA;CHwY9C;AGvYmC;EAAW,iBAAA;CH0Y9C;AGzYmC;EAAW,iBAAA;CH4Y9C;AG3YmC;EAAW,iBAAA;CH8Y9C;AG7YmC;EAAW,iBAAA;CHgZ9C;AG/YmC;EAAW,iBAAA;CHkZ9C;AGjZmC;EAAW,iBAAA;CHoZ9C;AGnZmC;EAAW,iBAAA;CHsZ9C;AGrZmC;EAAW,iBAAA;CHwZ9C;AGvZmC;EAAW,iBAAA;CH0Z9C;AGzZmC;EAAW,iBAAA;CH4Z9C;AG3ZmC;EAAW,iBAAA;CH8Z9C;AG7ZmC;EAAW,iBAAA;CHga9C;AG/ZmC;EAAW,iBAAA;CHka9C;AGjamC;EAAW,iBAAA;CHoa9C;AGnamC;EAAW,iBAAA;CHsa9C;AGramC;EAAW,iBAAA;CHwa9C;AGvamC;EAAW,iBAAA;CH0a9C;AGzamC;EAAW,iBAAA;CH4a9C;AG3amC;EAAW,iBAAA;CH8a9C;AG7amC;EAAW,iBAAA;CHgb9C;AG/amC;EAAW,iBAAA;CHkb9C;AGjbmC;EAAW,iBAAA;CHob9C;AGnbmC;EAAW,iBAAA;CHsb9C;AGrbmC;EAAW,iBAAA;CHwb9C;AGvbmC;EAAW,iBAAA;CH0b9C;AGzbmC;EAAW,iBAAA;CH4b9C;AG3bmC;EAAW,iBAAA;CH8b9C;AG7bmC;EAAW,iBAAA;CHgc9C;AG/bmC;EAAW,iBAAA;CHkc9C;AGjcmC;EAAW,iBAAA;CHoc9C;AGncmC;EAAW,iBAAA;CHsc9C;AGrcmC;EAAW,iBAAA;CHwc9C;AGvcmC;EAAW,iBAAA;CH0c9C;AGzcmC;EAAW,iBAAA;CH4c9C;AG3cmC;EAAW,iBAAA;CH8c9C;AG7cmC;EAAW,iBAAA;CHgd9C;AG/cmC;EAAW,iBAAA;CHkd9C;AGjdmC;EAAW,iBAAA;CHod9C;AGndmC;EAAW,iBAAA;CHsd9C;AGrdmC;EAAW,iBAAA;CHwd9C;AGvdmC;EAAW,iBAAA;CH0d9C;AGzdmC;EAAW,iBAAA;CH4d9C;AG3dmC;EAAW,iBAAA;CH8d9C;AG7dmC;EAAW,iBAAA;CHge9C;AG/dmC;EAAW,iBAAA;CHke9C;AGjemC;EAAW,iBAAA;CHoe9C;AGnemC;EAAW,iBAAA;CHse9C;AGremC;EAAW,iBAAA;CHwe9C;AGvemC;EAAW,iBAAA;CH0e9C;AGzemC;EAAW,iBAAA;CH4e9C;AG3emC;EAAW,iBAAA;CH8e9C;AG7emC;EAAW,iBAAA;CHgf9C;AG/emC;EAAW,iBAAA;CHkf9C;AGjfmC;EAAW,iBAAA;CHof9C;AGnfmC;EAAW,iBAAA;CHsf9C;AGrfmC;EAAW,iBAAA;CHwf9C;AGvfmC;EAAW,iBAAA;CH0f9C;AGzfmC;EAAW,iBAAA;CH4f9C;AG3fmC;EAAW,iBAAA;CH8f9C;AG7fmC;EAAW,iBAAA;CHggB9C;AG/fmC;EAAW,iBAAA;CHkgB9C;AGjgBmC;EAAW,iBAAA;CHogB9C;AGngBmC;EAAW,iBAAA;CHsgB9C;AGrgBmC;EAAW,iBAAA;CHwgB9C;AGvgBmC;EAAW,iBAAA;CH0gB9C;AGzgBmC;EAAW,iBAAA;CH4gB9C;AG3gBmC;EAAW,iBAAA;CH8gB9C;AG7gBmC;EAAW,iBAAA;CHghB9C;AG/gBmC;EAAW,iBAAA;CHkhB9C;AGjhBmC;EAAW,iBAAA;CHohB9C;AGnhBmC;EAAW,iBAAA;CHshB9C;AGrhBmC;EAAW,iBAAA;CHwhB9C;AGvhBmC;EAAW,iBAAA;CH0hB9C;AGzhBmC;EAAW,iBAAA;CH4hB9C;AG3hBmC;EAAW,iBAAA;CH8hB9C;AG7hBmC;EAAW,iBAAA;CHgiB9C;AG/hBmC;EAAW,iBAAA;CHkiB9C;AGjiBmC;EAAW,iBAAA;CHoiB9C;AGniBmC;EAAW,iBAAA;CHsiB9C;AGriBmC;EAAW,iBAAA;CHwiB9C;AGviBmC;EAAW,iBAAA;CH0iB9C;AGziBmC;EAAW,iBAAA;CH4iB9C;AG3iBmC;EAAW,iBAAA;CH8iB9C;AG7iBmC;EAAW,iBAAA;CHgjB9C;AG/iBmC;EAAW,iBAAA;CHkjB9C;AGjjBmC;EAAW,iBAAA;CHojB9C;AGnjBmC;EAAW,iBAAA;CHsjB9C;AGrjBmC;EAAW,iBAAA;CHwjB9C;AGvjBmC;EAAW,iBAAA;CH0jB9C;AGzjBmC;EAAW,iBAAA;CH4jB9C;AG3jBmC;EAAW,iBAAA;CH8jB9C;AG7jBmC;EAAW,iBAAA;CHgkB9C;AG/jBmC;EAAW,iBAAA;CHkkB9C;AGjkBmC;EAAW,iBAAA;CHokB9C;AGnkBmC;EAAW,iBAAA;CHskB9C;AGrkBmC;EAAW,iBAAA;CHwkB9C;AGvkBmC;EAAW,iBAAA;CH0kB9C;AGzkBmC;EAAW,iBAAA;CH4kB9C;AG3kBmC;EAAW,iBAAA;CH8kB9C;AG7kBmC;EAAW,iBAAA;CHglB9C;AG/kBmC;EAAW,iBAAA;CHklB9C;AGjlBmC;EAAW,iBAAA;CHolB9C;AGnlBmC;EAAW,iBAAA;CHslB9C;AGrlBmC;EAAW,iBAAA;CHwlB9C;AGvlBmC;EAAW,iBAAA;CH0lB9C;AGzlBmC;EAAW,iBAAA;CH4lB9C;AG3lBmC;EAAW,iBAAA;CH8lB9C;AG7lBmC;EAAW,iBAAA;CHgmB9C;AG/lBmC;EAAW,iBAAA;CHkmB9C;AGjmBmC;EAAW,iBAAA;CHomB9C;AGnmBmC;EAAW,iBAAA;CHsmB9C;AGrmBmC;EAAW,iBAAA;CHwmB9C;AGvmBmC;EAAW,iBAAA;CH0mB9C;AGzmBmC;EAAW,iBAAA;CH4mB9C;AG3mBmC;EAAW,iBAAA;CH8mB9C;AG7mBmC;EAAW,iBAAA;CHgnB9C;AG/mBmC;EAAW,iBAAA;CHknB9C;AGjnBmC;EAAW,iBAAA;CHonB9C;AGnnBmC;EAAW,iBAAA;CHsnB9C;AGrnBmC;EAAW,iBAAA;CHwnB9C;AGvnBmC;EAAW,iBAAA;CH0nB9C;AGznBmC;EAAW,iBAAA;CH4nB9C;AG3nBmC;EAAW,iBAAA;CH8nB9C;AG7nBmC;EAAW,iBAAA;CHgoB9C;AG/nBmC;EAAW,iBAAA;CHkoB9C;AGjoBmC;EAAW,iBAAA;CHooB9C;AGnoBmC;EAAW,iBAAA;CHsoB9C;AGroBmC;EAAW,iBAAA;CHwoB9C;AG/nBmC;EAAW,iBAAA;CHkoB9C;AGjoBmC;EAAW,iBAAA;CHooB9C;AGnoBmC;EAAW,iBAAA;CHsoB9C;AGroBmC;EAAW,iBAAA;CHwoB9C;AGvoBmC;EAAW,iBAAA;CH0oB9C;AGzoBmC;EAAW,iBAAA;CH4oB9C;AG3oBmC;EAAW,iBAAA;CH8oB9C;AG7oBmC;EAAW,iBAAA;CHgpB9C;AG/oBmC;EAAW,iBAAA;CHkpB9C;AGjpBmC;EAAW,iBAAA;CHopB9C;AGnpBmC;EAAW,iBAAA;CHspB9C;AGrpBmC;EAAW,iBAAA;CHwpB9C;AGvpBmC;EAAW,iBAAA;CH0pB9C;AGzpBmC;EAAW,iBAAA;CH4pB9C;AG3pBmC;EAAW,iBAAA;CH8pB9C;AG7pBmC;EAAW,iBAAA;CHgqB9C;AG/pBmC;EAAW,iBAAA;CHkqB9C;AGjqBmC;EAAW,iBAAA;CHoqB9C;AGnqBmC;EAAW,iBAAA;CHsqB9C;AGrqBmC;EAAW,iBAAA;CHwqB9C;AGvqBmC;EAAW,iBAAA;CH0qB9C;AGzqBmC;EAAW,iBAAA;CH4qB9C;AG3qBmC;EAAW,iBAAA;CH8qB9C;AG7qBmC;EAAW,iBAAA;CHgrB9C;AG/qBmC;EAAW,iBAAA;CHkrB9C;AGjrBmC;EAAW,iBAAA;CHorB9C;AGnrBmC;EAAW,iBAAA;CHsrB9C;AGrrBmC;EAAW,iBAAA;CHwrB9C;AGvrBmC;EAAW,iBAAA;CH0rB9C;AGzrBmC;EAAW,iBAAA;CH4rB9C;AG3rBmC;EAAW,iBAAA;CH8rB9C;AG7rBmC;EAAW,iBAAA;CHgsB9C;AG/rBmC;EAAW,iBAAA;CHksB9C;AGjsBmC;EAAW,iBAAA;CHosB9C;AGnsBmC;EAAW,iBAAA;CHssB9C;AGrsBmC;EAAW,iBAAA;CHwsB9C;AGvsBmC;EAAW,iBAAA;CH0sB9C;AGzsBmC;EAAW,iBAAA;CH4sB9C;AG3sBmC;EAAW,iBAAA;CH8sB9C;AG7sBmC;EAAW,iBAAA;CHgtB9C;AG/sBmC;EAAW,iBAAA;CHktB9C;AGjtBmC;EAAW,iBAAA;CHotB9C;AGntBmC;EAAW,iBAAA;CHstB9C;AGrtBmC;EAAW,iBAAA;CHwtB9C;AGvtBmC;EAAW,iBAAA;CH0tB9C;AGztBmC;EA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DH;AezkDC;EACE,oBAAA;Cf2kDH;Ae5kDC;EACE,WAAA;Cf8kDH;Ae/kDC;EACE,oBAAA;CfilDH;AellDC;EACE,mBAAA;CfolDH;AehlDC;EACE,YAAA;CfklDH;AelmDC;EACE,WAAA;CfomDH;AermDC;EACE,mBAAA;CfumDH;AexmDC;EACE,mBAAA;Cf0mDH;Ae3mDC;EACE,UAAA;Cf6mDH;Ae9mDC;EACE,mBAAA;CfgnDH;AejnDC;EACE,mBAAA;CfmnDH;AepnDC;EACE,UAAA;CfsnDH;AevnDC;EACE,mBAAA;CfynDH;Ae1nDC;EACE,mBAAA;Cf4nDH;Ae7nDC;EACE,UAAA;Cf+nDH;AehoDC;EACE,mBAAA;CfkoDH;AenoDC;EACE,kBAAA;CfqoDH;AejoDC;EACE,WAAA;CfmoDH;AernDC;EACE,kBAAA;CfunDH;AexnDC;EACE,0BAAA;Cf0nDH;Ae3nDC;EACE,0BAAA;Cf6nDH;Ae9nDC;EACE,iBAAA;CfgoDH;AejoDC;EACE,0BAAA;CfmoDH;AepoDC;EACE,0BAAA;CfsoDH;AevoDC;EACE,iBAAA;CfyoDH;Ae1oDC;EACE,0BAAA;Cf4oDH;Ae7oDC;EACE,0BAAA;Cf+oDH;AehpDC;EACE,iBAAA;CfkpDH;AenpDC;EACE,0BAAA;CfqpDH;AetpDC;EACE,yBAAA;CfwpDH;AezpDC;EACE,gBAAA;Cf2pDH;Aa3pDD;EElCI;IACE,YAAA;GfgsDH;EezrDD;IACE,YAAA;Gf2rDD;Ee5rDD;IACE,oBAAA;Gf8rDD;Ee/rDD;IACE,oBAAA;GfisDD;EelsDD;IACE,WAAA;GfosDD;EersDD;IACE,oBAAA;GfusDD;EexsDD;IACE,oBAAA;Gf0sDD;Ee3sDD;IACE,WAAA;Gf6sDD;Ee9sDD;IACE,oBAAA;GfgtDD;EejtDD;IACE,oBAAA;GfmtDD;EeptDD;IACE,WAAA;GfstDD;EevtDD;IACE,oBAAA;GfytDD;Ee1tDD;IACE,mBAAA;Gf4tDD;Ee9sDD;IACE,YAAA;GfgtDD;EejtDD;IACE,oBAAA;GfmtDD;EeptDD;IACE,oBAAA;GfstDD;EevtDD;IACE,WAAA;GfytDD;Ee1tDD;IACE,oBAAA;Gf4tDD;Ee7tDD;IACE,oBAAA;Gf+tDD;EehuDD;IACE,WAAA;GfkuDD;EenuDD;IACE,oBAAA;GfquDD;EetuDD;IACE,oBAAA;GfwuDD;EezuDD;IACE,WAAA;Gf2uDD;Ee5uDD;IACE,oBAAA;Gf8uDD;Ee/uDD;IACE,mBAAA;GfivDD;Ee7uDD;IACE,YAAA;Gf+uDD;Ee/vDD;IACE,WAAA;GfiwDD;EelwDD;IACE,mBAAA;GfowDD;EerwDD;IACE,mBAAA;GfuwDD;EexwDD;IACE,UAAA;Gf0wDD;Ee3wDD;IACE,mBAAA;Gf6wDD;Ee9wDD;IACE,mBAAA;GfgxDD;EejxDD;IACE,UAAA;GfmxDD;EepxDD;IACE,mBAAA;GfsxDD;EevxDD;IACE,mBAAA;GfyxDD;Ee1xDD;IACE,UAAA;Gf4xDD;Ee7xDD;IACE,mBAAA;Gf+xDD;EehyDD;IACE,kBAAA;GfkyDD;Ee9xDD;IACE,WAAA;GfgyDD;EelxDD;IACE,kBAAA;GfoxDD;EerxDD;IACE,0BAAA;GfuxDD;EexxDD;IACE,0BAAA;Gf0xDD;Ee3xDD;IACE,iBAAA;Gf6xDD;Ee9xDD;IACE,0BAAA;GfgyDD;EejyDD;IACE,0BAAA;GfmyDD;EepyDD;IACE,iBAAA;GfsyDD;EevyDD;IACE,0BAAA;GfyyDD;Ee1yDD;IACE,0BAAA;Gf4yDD;Ee7yDD;IACE,iBAAA;Gf+yDD;EehzDD;IACE,0BAAA;GfkzDD;EenzDD;IACE,yBAAA;GfqzDD;EetzDD;IACE,gBAAA;GfwzDD;CACF;AahzDD;EE3CI;IACE,YAAA;Gf81DH;Eev1DD;IACE,YAAA;Gfy1DD;Ee11DD;IACE,oBAAA;Gf41DD;Ee71DD;IACE,oBAAA;Gf+1DD;Eeh2DD;IACE,WAAA;Gfk2DD;Een2DD;IACE,oBAAA;Gfq2DD;Eet2DD;IACE,oBAAA;Gfw2DD;Eez2DD;IACE,WAAA;Gf22DD;Ee52DD;IACE,oBAAA;Gf82DD;Ee/2DD;IACE,oBAAA;Gfi3DD;Eel3DD;IACE,WAAA;Gfo3DD;Eer3DD;IACE,oBAAA;Gfu3DD;Eex3DD;IACE,mBAAA;Gf03DD;Ee52DD;IACE,YAAA;Gf82DD;Ee/2DD;IACE,oBAAA;Gfi3DD;Eel3DD;IACE,oBAAA;Gfo3DD;Eer3DD;IACE,WAAA;Gfu3DD;Eex3DD;IACE,oBAAA;Gf03DD;Ee33DD;IACE,oBAAA;Gf63DD;Ee93DD;IACE,WAAA;Gfg4DD;Eej4DD;IACE,oBAAA;Gfm4DD;Eep4DD;IACE,oBAAA;Gfs4DD;Eev4DD;IACE,WAAA;Gfy4DD;Ee14DD;IACE,oBAAA;Gf44DD;Ee74DD;IACE,mBAAA;Gf+4DD;Ee34DD;IACE,YAAA;Gf64DD;Ee75DD;IACE,WAAA;Gf+5DD;Eeh6DD;IACE,mBAAA;Gfk6DD;Een6DD;IACE,mBAAA;Gfq6DD;Eet6DD;IACE,UAAA;Gfw6DD;Eez6DD;IACE,mBAAA;Gf26DD;Ee56DD;IACE,mBAAA;Gf86DD;Ee/6DD;IACE,UAAA;Gfi7DD;Eel7DD;IACE,mBAAA;Gfo7DD;Eer7DD;IACE,mBAAA;Gfu7DD;Eex7DD;IACE,UAAA;Gf07DD;Ee37DD;IACE,mBAAA;Gf67DD;Ee97DD;IACE,kBAAA;Gfg8DD;Ee57DD;IACE,WAAA;Gf87DD;Eeh7DD;IACE,kBAAA;Gfk7DD;Een7DD;IACE,0BAAA;Gfq7DD;Eet7DD;IACE,0BAAA;Gfw7DD;Eez7DD;IACE,iBAAA;Gf27DD;Ee57DD;IACE,0BAAA;Gf87DD;Ee/7DD;IACE,0BAAA;Gfi8DD;Eel8DD;IACE,iBAAA;Gfo8DD;Eer8DD;IACE,0BAAA;Gfu8DD;Eex8DD;IACE,0BAAA;Gf08DD;Ee38DD;IACE,iBAAA;Gf68DD;Ee98DD;IACE,0BAAA;Gfg9DD;Eej9DD;IACE,yBAAA;Gfm9DD;Eep9DD;IACE,gBAAA;Gfs9DD;CACF;Aa38DD;EE9CI;IACE,YAAA;Gf4/DH;Eer/DD;IACE,YAAA;Gfu/DD;Eex/DD;IACE,oBAAA;Gf0/DD;Ee3/DD;IACE,oBAAA;Gf6/DD;Ee9/DD;IACE,WAAA;GfggED;EejgED;IACE,oBAAA;GfmgED;EepgED;IACE,oBAAA;GfsgED;EevgED;IACE,WAAA;GfygED;Ee1gED;IACE,oBAAA;Gf4gED;Ee7gED;IACE,oBAAA;Gf+gED;EehhED;IACE,WAAA;GfkhED;EenhED;IACE,oBAAA;GfqhED;EethED;IACE,mBAAA;GfwhED;Ee1gED;IACE,YAAA;Gf4gED;Ee7gED;IACE,oBAAA;Gf+gED;EehhED;IACE,oBAAA;GfkhED;EenhED;IACE,WAAA;GfqhED;EethED;IACE,oBAAA;GfwhED;EezhED;IACE,oBAAA;Gf2hED;Ee5hED;IACE,WAAA;Gf8hED;Ee/hED;IACE,oBAAA;GfiiED;EeliED;IACE,oBAAA;GfoiED;EeriED;IACE,WAAA;GfuiED;EexiED;IACE,oBAAA;Gf0iED;Ee3iED;IACE,mBAAA;Gf6iED;EeziED;IACE,YAAA;Gf2iED;Ee3jED;IACE,WAAA;Gf6jED;Ee9jED;IACE,mBAAA;GfgkED;EejkED;IACE,mBAAA;GfmkED;EepkED;IACE,UAAA;GfskED;EevkED;IACE,mBAAA;GfykED;Ee1kED;IACE,mBAAA;Gf4kED;Ee7kED;IACE,UAAA;Gf+kED;EehlED;IACE,mBAAA;GfklED;EenlED;IACE,mBAAA;GfqlED;EetlED;IACE,UAAA;GfwlED;EezlED;IACE,mBAAA;Gf2lED;Ee5lED;IACE,kBAAA;Gf8lED;Ee1lED;IACE,WAAA;Gf4lED;Ee9kED;IACE,kBAAA;GfglED;EejlED;IACE,0BAAA;GfmlED;EeplED;IACE,0BAAA;GfslED;EevlED;IACE,iBAAA;GfylED;Ee1lED;IACE,0BAAA;Gf4lED;Ee7lED;IACE,0BAAA;Gf+lED;EehmED;IACE,iBAAA;GfkmED;EenmED;IACE,0BAAA;GfqmED;EetmED;IACE,0BAAA;GfwmED;EezmED;IACE,iBAAA;Gf2mED;Ee5mED;IACE,0BAAA;Gf8mED;Ee/mED;IACE,yBAAA;GfinED;EelnED;IACE,gBAAA;GfonED;CACF;AgBxrED;EACE,8BAAA;ChB0rED;AgBxrED;EACE,iBAAA;EACA,oBAAA;EACA,eAAA;EACA,iBAAA;ChB0rED;AgBxrED;EACE,iBAAA;ChB0rED;AgBprED;EACE,YAAA;EACA,gBAAA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","file":"bootstrap.css","sourcesContent":["/*!\n * Bootstrap v3.3.5 (http://getbootstrap.com)\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\nhtml {\n font-family: sans-serif;\n -ms-text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n}\nbody {\n margin: 0;\n}\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block;\n vertical-align: baseline;\n}\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n[hidden],\ntemplate {\n display: none;\n}\na {\n background-color: transparent;\n}\na:active,\na:hover {\n outline: 0;\n}\nabbr[title] {\n border-bottom: 1px dotted;\n}\nb,\nstrong {\n font-weight: bold;\n}\ndfn {\n font-style: italic;\n}\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\nmark {\n background: #ff0;\n color: #000;\n}\nsmall {\n font-size: 80%;\n}\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\nsup {\n top: -0.5em;\n}\nsub {\n bottom: -0.25em;\n}\nimg {\n border: 0;\n}\nsvg:not(:root) {\n overflow: hidden;\n}\nfigure {\n margin: 1em 40px;\n}\nhr {\n box-sizing: content-box;\n height: 0;\n}\npre {\n overflow: auto;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit;\n font: inherit;\n margin: 0;\n}\nbutton {\n overflow: visible;\n}\nbutton,\nselect {\n text-transform: none;\n}\nbutton,\nhtml input[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button;\n cursor: pointer;\n}\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\ninput {\n line-height: normal;\n}\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box;\n padding: 0;\n}\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\ninput[type=\"search\"] {\n -webkit-appearance: textfield;\n box-sizing: content-box;\n}\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\nlegend {\n border: 0;\n padding: 0;\n}\ntextarea {\n overflow: auto;\n}\noptgroup {\n font-weight: bold;\n}\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\ntd,\nth {\n padding: 0;\n}\n/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n@media print {\n *,\n *:before,\n *:after {\n background: transparent !important;\n color: #000 !important;\n box-shadow: none !important;\n text-shadow: none !important;\n }\n a,\n a:visited {\n text-decoration: underline;\n }\n a[href]:after {\n content: \" (\" attr(href) \")\";\n }\n abbr[title]:after {\n content: \" (\" attr(title) \")\";\n }\n a[href^=\"#\"]:after,\n a[href^=\"javascript:\"]:after {\n content: \"\";\n }\n pre,\n blockquote {\n border: 1px solid #999;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n img {\n max-width: 100% !important;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n .navbar {\n display: none;\n }\n .btn > .caret,\n .dropup > .btn > .caret {\n border-top-color: #000 !important;\n }\n .label {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #ddd !important;\n }\n}\n@font-face {\n font-family: 'Glyphicons Halflings';\n src: url('../fonts/glyphicons-halflings-regular.eot');\n 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');\n}\n.glyphicon {\n position: relative;\n top: 1px;\n display: inline-block;\n font-family: 'Glyphicons Halflings';\n font-style: normal;\n font-weight: normal;\n line-height: 1;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n.glyphicon-asterisk:before {\n content: \"\\2a\";\n}\n.glyphicon-plus:before {\n content: \"\\2b\";\n}\n.glyphicon-euro:before,\n.glyphicon-eur:before {\n content: \"\\20ac\";\n}\n.glyphicon-minus:before {\n content: \"\\2212\";\n}\n.glyphicon-cloud:before {\n content: \"\\2601\";\n}\n.glyphicon-envelope:before {\n content: \"\\2709\";\n}\n.glyphicon-pencil:before {\n content: \"\\270f\";\n}\n.glyphicon-glass:before {\n content: \"\\e001\";\n}\n.glyphicon-music:before {\n content: \"\\e002\";\n}\n.glyphicon-search:before {\n content: \"\\e003\";\n}\n.glyphicon-heart:before {\n content: \"\\e005\";\n}\n.glyphicon-star:before {\n content: \"\\e006\";\n}\n.glyphicon-star-empty:before {\n content: \"\\e007\";\n}\n.glyphicon-user:before {\n content: \"\\e008\";\n}\n.glyphicon-film:before {\n content: \"\\e009\";\n}\n.glyphicon-th-large:before {\n content: \"\\e010\";\n}\n.glyphicon-th:before {\n content: \"\\e011\";\n}\n.glyphicon-th-list:before {\n content: \"\\e012\";\n}\n.glyphicon-ok:before {\n content: \"\\e013\";\n}\n.glyphicon-remove:before {\n content: \"\\e014\";\n}\n.glyphicon-zoom-in:before {\n content: \"\\e015\";\n}\n.glyphicon-zoom-out:before {\n content: \"\\e016\";\n}\n.glyphicon-off:before {\n content: \"\\e017\";\n}\n.glyphicon-signal:before {\n content: \"\\e018\";\n}\n.glyphicon-cog:before {\n content: \"\\e019\";\n}\n.glyphicon-trash:before {\n content: \"\\e020\";\n}\n.glyphicon-home:before {\n content: \"\\e021\";\n}\n.glyphicon-file:before {\n content: \"\\e022\";\n}\n.glyphicon-time:before {\n content: \"\\e023\";\n}\n.glyphicon-road:before {\n content: \"\\e024\";\n}\n.glyphicon-download-alt:before {\n content: \"\\e025\";\n}\n.glyphicon-download:before {\n content: \"\\e026\";\n}\n.glyphicon-upload:before {\n content: \"\\e027\";\n}\n.glyphicon-inbox:before {\n content: \"\\e028\";\n}\n.glyphicon-play-circle:before {\n content: \"\\e029\";\n}\n.glyphicon-repeat:before {\n content: \"\\e030\";\n}\n.glyphicon-refresh:before {\n content: \"\\e031\";\n}\n.glyphicon-list-alt:before {\n content: \"\\e032\";\n}\n.glyphicon-lock:before {\n content: \"\\e033\";\n}\n.glyphicon-flag:before {\n content: \"\\e034\";\n}\n.glyphicon-headphones:before {\n content: \"\\e035\";\n}\n.glyphicon-volume-off:before {\n content: \"\\e036\";\n}\n.glyphicon-volume-down:before {\n content: \"\\e037\";\n}\n.glyphicon-volume-up:before {\n content: \"\\e038\";\n}\n.glyphicon-qrcode:before {\n content: \"\\e039\";\n}\n.glyphicon-barcode:before {\n content: \"\\e040\";\n}\n.glyphicon-tag:before {\n content: \"\\e041\";\n}\n.glyphicon-tags:before {\n content: \"\\e042\";\n}\n.glyphicon-book:before {\n content: \"\\e043\";\n}\n.glyphicon-bookmark:before {\n content: \"\\e044\";\n}\n.glyphicon-print:before {\n content: \"\\e045\";\n}\n.glyphicon-camera:before {\n content: \"\\e046\";\n}\n.glyphicon-font:before {\n content: \"\\e047\";\n}\n.glyphicon-bold:before {\n content: \"\\e048\";\n}\n.glyphicon-italic:before {\n content: \"\\e049\";\n}\n.glyphicon-text-height:before {\n content: \"\\e050\";\n}\n.glyphicon-text-width:before {\n content: \"\\e051\";\n}\n.glyphicon-align-left:before {\n content: \"\\e052\";\n}\n.glyphicon-align-center:before {\n content: \"\\e053\";\n}\n.glyphicon-align-right:before {\n content: \"\\e054\";\n}\n.glyphicon-align-justify:before {\n content: \"\\e055\";\n}\n.glyphicon-list:before {\n content: \"\\e056\";\n}\n.glyphicon-indent-left:before {\n content: \"\\e057\";\n}\n.glyphicon-indent-right:before {\n content: \"\\e058\";\n}\n.glyphicon-facetime-video:before {\n content: \"\\e059\";\n}\n.glyphicon-picture:before {\n content: \"\\e060\";\n}\n.glyphicon-map-marker:before {\n content: \"\\e062\";\n}\n.glyphicon-adjust:before {\n content: \"\\e063\";\n}\n.glyphicon-tint:before {\n content: \"\\e064\";\n}\n.glyphicon-edit:before {\n content: \"\\e065\";\n}\n.glyphicon-share:before {\n content: \"\\e066\";\n}\n.glyphicon-check:before {\n content: \"\\e067\";\n}\n.glyphicon-move:before {\n content: \"\\e068\";\n}\n.glyphicon-step-backward:before {\n content: \"\\e069\";\n}\n.glyphicon-fast-backward:before {\n content: \"\\e070\";\n}\n.glyphicon-backward:before {\n content: \"\\e071\";\n}\n.glyphicon-play:before {\n content: \"\\e072\";\n}\n.glyphicon-pause:before {\n content: \"\\e073\";\n}\n.glyphicon-stop:before {\n content: \"\\e074\";\n}\n.glyphicon-forward:before {\n content: \"\\e075\";\n}\n.glyphicon-fast-forward:before {\n content: \"\\e076\";\n}\n.glyphicon-step-forward:before {\n content: \"\\e077\";\n}\n.glyphicon-eject:before {\n content: \"\\e078\";\n}\n.glyphicon-chevron-left:before {\n content: \"\\e079\";\n}\n.glyphicon-chevron-right:before {\n content: \"\\e080\";\n}\n.glyphicon-plus-sign:before {\n content: \"\\e081\";\n}\n.glyphicon-minus-sign:before {\n content: \"\\e082\";\n}\n.glyphicon-remove-sign:before {\n content: \"\\e083\";\n}\n.glyphicon-ok-sign:before {\n content: \"\\e084\";\n}\n.glyphicon-question-sign:before {\n content: \"\\e085\";\n}\n.glyphicon-info-sign:before {\n content: \"\\e086\";\n}\n.glyphicon-screenshot:before {\n content: \"\\e087\";\n}\n.glyphicon-remove-circle:before {\n content: \"\\e088\";\n}\n.glyphicon-ok-circle:before {\n content: \"\\e089\";\n}\n.glyphicon-ban-circle:before {\n content: \"\\e090\";\n}\n.glyphicon-arrow-left:before {\n content: \"\\e091\";\n}\n.glyphicon-arrow-right:before {\n content: \"\\e092\";\n}\n.glyphicon-arrow-up:before {\n content: \"\\e093\";\n}\n.glyphicon-arrow-down:before {\n content: \"\\e094\";\n}\n.glyphicon-share-alt:before {\n content: \"\\e095\";\n}\n.glyphicon-resize-full:before {\n content: \"\\e096\";\n}\n.glyphicon-resize-small:before {\n content: \"\\e097\";\n}\n.glyphicon-exclamation-sign:before {\n content: \"\\e101\";\n}\n.glyphicon-gift:before {\n content: \"\\e102\";\n}\n.glyphicon-leaf:before {\n content: \"\\e103\";\n}\n.glyphicon-fire:before {\n content: \"\\e104\";\n}\n.glyphicon-eye-open:before {\n content: \"\\e105\";\n}\n.glyphicon-eye-close:before {\n content: \"\\e106\";\n}\n.glyphicon-warning-sign:before {\n content: \"\\e107\";\n}\n.glyphicon-plane:before {\n content: \"\\e108\";\n}\n.glyphicon-calendar:before {\n content: \"\\e109\";\n}\n.glyphicon-random:before {\n content: \"\\e110\";\n}\n.glyphicon-comment:before {\n content: \"\\e111\";\n}\n.glyphicon-magnet:before {\n content: \"\\e112\";\n}\n.glyphicon-chevron-up:before {\n content: \"\\e113\";\n}\n.glyphicon-chevron-down:before {\n content: \"\\e114\";\n}\n.glyphicon-retweet:before {\n content: \"\\e115\";\n}\n.glyphicon-shopping-cart:before {\n content: \"\\e116\";\n}\n.glyphicon-folder-close:before {\n content: \"\\e117\";\n}\n.glyphicon-folder-open:before {\n content: \"\\e118\";\n}\n.glyphicon-resize-vertical:before {\n content: \"\\e119\";\n}\n.glyphicon-resize-horizontal:before {\n content: \"\\e120\";\n}\n.glyphicon-hdd:before {\n content: \"\\e121\";\n}\n.glyphicon-bullhorn:before {\n content: \"\\e122\";\n}\n.glyphicon-bell:before {\n content: \"\\e123\";\n}\n.glyphicon-certificate:before {\n content: \"\\e124\";\n}\n.glyphicon-thumbs-up:before {\n content: \"\\e125\";\n}\n.glyphicon-thumbs-down:before {\n content: \"\\e126\";\n}\n.glyphicon-hand-right:before {\n content: \"\\e127\";\n}\n.glyphicon-hand-left:before {\n content: \"\\e128\";\n}\n.glyphicon-hand-up:before {\n content: \"\\e129\";\n}\n.glyphicon-hand-down:before {\n content: \"\\e130\";\n}\n.glyphicon-circle-arrow-right:before {\n content: \"\\e131\";\n}\n.glyphicon-circle-arrow-left:before {\n content: \"\\e132\";\n}\n.glyphicon-circle-arrow-up:before {\n content: \"\\e133\";\n}\n.glyphicon-circle-arrow-down:before {\n content: \"\\e134\";\n}\n.glyphicon-globe:before {\n content: \"\\e135\";\n}\n.glyphicon-wrench:before {\n content: \"\\e136\";\n}\n.glyphicon-tasks:before {\n content: \"\\e137\";\n}\n.glyphicon-filter:before {\n content: \"\\e138\";\n}\n.glyphicon-briefcase:before {\n content: \"\\e139\";\n}\n.glyphicon-fullscreen:before {\n content: \"\\e140\";\n}\n.glyphicon-dashboard:before {\n content: \"\\e141\";\n}\n.glyphicon-paperclip:before {\n content: \"\\e142\";\n}\n.glyphicon-heart-empty:before {\n content: \"\\e143\";\n}\n.glyphicon-link:before {\n content: \"\\e144\";\n}\n.glyphicon-phone:before {\n content: \"\\e145\";\n}\n.glyphicon-pushpin:before {\n content: \"\\e146\";\n}\n.glyphicon-usd:before {\n content: \"\\e148\";\n}\n.glyphicon-gbp:before {\n content: \"\\e149\";\n}\n.glyphicon-sort:before {\n content: \"\\e150\";\n}\n.glyphicon-sort-by-alphabet:before {\n content: \"\\e151\";\n}\n.glyphicon-sort-by-alphabet-alt:before {\n content: \"\\e152\";\n}\n.glyphicon-sort-by-order:before {\n content: \"\\e153\";\n}\n.glyphicon-sort-by-order-alt:before {\n content: \"\\e154\";\n}\n.glyphicon-sort-by-attributes:before {\n content: \"\\e155\";\n}\n.glyphicon-sort-by-attributes-alt:before {\n content: \"\\e156\";\n}\n.glyphicon-unchecked:before {\n content: \"\\e157\";\n}\n.glyphicon-expand:before {\n content: \"\\e158\";\n}\n.glyphicon-collapse-down:before {\n content: \"\\e159\";\n}\n.glyphicon-collapse-up:before {\n content: \"\\e160\";\n}\n.glyphicon-log-in:before {\n content: \"\\e161\";\n}\n.glyphicon-flash:before {\n content: \"\\e162\";\n}\n.glyphicon-log-out:before {\n content: \"\\e163\";\n}\n.glyphicon-new-window:before {\n content: \"\\e164\";\n}\n.glyphicon-record:before {\n content: \"\\e165\";\n}\n.glyphicon-save:before {\n content: \"\\e166\";\n}\n.glyphicon-open:before {\n content: \"\\e167\";\n}\n.glyphicon-saved:before {\n content: \"\\e168\";\n}\n.glyphicon-import:before {\n content: \"\\e169\";\n}\n.glyphicon-export:before {\n content: \"\\e170\";\n}\n.glyphicon-send:before {\n content: \"\\e171\";\n}\n.glyphicon-floppy-disk:before {\n content: \"\\e172\";\n}\n.glyphicon-floppy-saved:before {\n content: \"\\e173\";\n}\n.glyphicon-floppy-remove:before {\n content: \"\\e174\";\n}\n.glyphicon-floppy-save:before {\n content: \"\\e175\";\n}\n.glyphicon-floppy-open:before {\n content: \"\\e176\";\n}\n.glyphicon-credit-card:before {\n content: \"\\e177\";\n}\n.glyphicon-transfer:before {\n content: \"\\e178\";\n}\n.glyphicon-cutlery:before {\n content: \"\\e179\";\n}\n.glyphicon-header:before {\n content: \"\\e180\";\n}\n.glyphicon-compressed:before {\n content: \"\\e181\";\n}\n.glyphicon-earphone:before {\n content: \"\\e182\";\n}\n.glyphicon-phone-alt:before {\n content: \"\\e183\";\n}\n.glyphicon-tower:before {\n content: \"\\e184\";\n}\n.glyphicon-stats:before {\n content: \"\\e185\";\n}\n.glyphicon-sd-video:before {\n content: \"\\e186\";\n}\n.glyphicon-hd-video:before {\n content: \"\\e187\";\n}\n.glyphicon-subtitles:before {\n content: \"\\e188\";\n}\n.glyphicon-sound-stereo:before {\n content: \"\\e189\";\n}\n.glyphicon-sound-dolby:before {\n content: \"\\e190\";\n}\n.glyphicon-sound-5-1:before {\n content: \"\\e191\";\n}\n.glyphicon-sound-6-1:before {\n content: \"\\e192\";\n}\n.glyphicon-sound-7-1:before {\n content: \"\\e193\";\n}\n.glyphicon-copyright-mark:before {\n content: \"\\e194\";\n}\n.glyphicon-registration-mark:before {\n content: \"\\e195\";\n}\n.glyphicon-cloud-download:before {\n content: \"\\e197\";\n}\n.glyphicon-cloud-upload:before {\n content: \"\\e198\";\n}\n.glyphicon-tree-conifer:before {\n content: \"\\e199\";\n}\n.glyphicon-tree-deciduous:before {\n content: \"\\e200\";\n}\n.glyphicon-cd:before {\n content: \"\\e201\";\n}\n.glyphicon-save-file:before {\n content: \"\\e202\";\n}\n.glyphicon-open-file:before {\n content: \"\\e203\";\n}\n.glyphicon-level-up:before {\n content: \"\\e204\";\n}\n.glyphicon-copy:before {\n content: \"\\e205\";\n}\n.glyphicon-paste:before {\n content: \"\\e206\";\n}\n.glyphicon-alert:before {\n content: \"\\e209\";\n}\n.glyphicon-equalizer:before {\n content: \"\\e210\";\n}\n.glyphicon-king:before {\n content: \"\\e211\";\n}\n.glyphicon-queen:before {\n content: \"\\e212\";\n}\n.glyphicon-pawn:before {\n content: \"\\e213\";\n}\n.glyphicon-bishop:before {\n content: \"\\e214\";\n}\n.glyphicon-knight:before {\n content: \"\\e215\";\n}\n.glyphicon-baby-formula:before {\n content: \"\\e216\";\n}\n.glyphicon-tent:before {\n content: \"\\26fa\";\n}\n.glyphicon-blackboard:before {\n content: \"\\e218\";\n}\n.glyphicon-bed:before {\n content: \"\\e219\";\n}\n.glyphicon-apple:before {\n content: \"\\f8ff\";\n}\n.glyphicon-erase:before {\n content: \"\\e221\";\n}\n.glyphicon-hourglass:before {\n content: \"\\231b\";\n}\n.glyphicon-lamp:before {\n content: \"\\e223\";\n}\n.glyphicon-duplicate:before {\n content: \"\\e224\";\n}\n.glyphicon-piggy-bank:before {\n content: \"\\e225\";\n}\n.glyphicon-scissors:before {\n content: \"\\e226\";\n}\n.glyphicon-bitcoin:before {\n content: \"\\e227\";\n}\n.glyphicon-btc:before {\n content: \"\\e227\";\n}\n.glyphicon-xbt:before {\n content: \"\\e227\";\n}\n.glyphicon-yen:before {\n content: \"\\00a5\";\n}\n.glyphicon-jpy:before {\n content: \"\\00a5\";\n}\n.glyphicon-ruble:before {\n content: \"\\20bd\";\n}\n.glyphicon-rub:before {\n content: \"\\20bd\";\n}\n.glyphicon-scale:before {\n content: \"\\e230\";\n}\n.glyphicon-ice-lolly:before {\n content: \"\\e231\";\n}\n.glyphicon-ice-lolly-tasted:before {\n content: \"\\e232\";\n}\n.glyphicon-education:before {\n content: \"\\e233\";\n}\n.glyphicon-option-horizontal:before {\n content: \"\\e234\";\n}\n.glyphicon-option-vertical:before {\n content: \"\\e235\";\n}\n.glyphicon-menu-hamburger:before {\n content: \"\\e236\";\n}\n.glyphicon-modal-window:before {\n content: \"\\e237\";\n}\n.glyphicon-oil:before {\n content: \"\\e238\";\n}\n.glyphicon-grain:before {\n content: \"\\e239\";\n}\n.glyphicon-sunglasses:before {\n content: \"\\e240\";\n}\n.glyphicon-text-size:before {\n content: \"\\e241\";\n}\n.glyphicon-text-color:before {\n content: \"\\e242\";\n}\n.glyphicon-text-background:before {\n content: \"\\e243\";\n}\n.glyphicon-object-align-top:before {\n content: \"\\e244\";\n}\n.glyphicon-object-align-bottom:before {\n content: \"\\e245\";\n}\n.glyphicon-object-align-horizontal:before {\n content: \"\\e246\";\n}\n.glyphicon-object-align-left:before {\n content: \"\\e247\";\n}\n.glyphicon-object-align-vertical:before {\n content: \"\\e248\";\n}\n.glyphicon-object-align-right:before {\n content: \"\\e249\";\n}\n.glyphicon-triangle-right:before {\n content: \"\\e250\";\n}\n.glyphicon-triangle-left:before {\n content: \"\\e251\";\n}\n.glyphicon-triangle-bottom:before {\n content: \"\\e252\";\n}\n.glyphicon-triangle-top:before {\n content: \"\\e253\";\n}\n.glyphicon-console:before {\n content: \"\\e254\";\n}\n.glyphicon-superscript:before {\n content: \"\\e255\";\n}\n.glyphicon-subscript:before {\n content: \"\\e256\";\n}\n.glyphicon-menu-left:before {\n content: \"\\e257\";\n}\n.glyphicon-menu-right:before {\n content: \"\\e258\";\n}\n.glyphicon-menu-down:before {\n content: \"\\e259\";\n}\n.glyphicon-menu-up:before {\n content: \"\\e260\";\n}\n* {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\n*:before,\n*:after {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\nhtml {\n font-size: 10px;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\nbody {\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-size: 14px;\n line-height: 1.42857143;\n color: #333333;\n background-color: #ffffff;\n}\ninput,\nbutton,\nselect,\ntextarea {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\na {\n color: #337ab7;\n text-decoration: none;\n}\na:hover,\na:focus {\n color: #23527c;\n text-decoration: underline;\n}\na:focus {\n outline: thin dotted;\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\nfigure {\n margin: 0;\n}\nimg {\n vertical-align: middle;\n}\n.img-responsive,\n.thumbnail > img,\n.thumbnail a > img,\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n display: block;\n max-width: 100%;\n height: auto;\n}\n.img-rounded {\n border-radius: 6px;\n}\n.img-thumbnail {\n padding: 4px;\n line-height: 1.42857143;\n background-color: #ffffff;\n border: 1px solid #dddddd;\n border-radius: 4px;\n -webkit-transition: all 0.2s ease-in-out;\n -o-transition: all 0.2s ease-in-out;\n transition: all 0.2s ease-in-out;\n display: inline-block;\n max-width: 100%;\n height: auto;\n}\n.img-circle {\n border-radius: 50%;\n}\nhr {\n margin-top: 20px;\n margin-bottom: 20px;\n border: 0;\n border-top: 1px solid #eeeeee;\n}\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n}\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n}\n[role=\"button\"] {\n cursor: pointer;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n.h1,\n.h2,\n.h3,\n.h4,\n.h5,\n.h6 {\n font-family: inherit;\n font-weight: 500;\n line-height: 1.1;\n color: inherit;\n}\nh1 small,\nh2 small,\nh3 small,\nh4 small,\nh5 small,\nh6 small,\n.h1 small,\n.h2 small,\n.h3 small,\n.h4 small,\n.h5 small,\n.h6 small,\nh1 .small,\nh2 .small,\nh3 .small,\nh4 .small,\nh5 .small,\nh6 .small,\n.h1 .small,\n.h2 .small,\n.h3 .small,\n.h4 .small,\n.h5 .small,\n.h6 .small {\n font-weight: normal;\n line-height: 1;\n color: #777777;\n}\nh1,\n.h1,\nh2,\n.h2,\nh3,\n.h3 {\n margin-top: 20px;\n margin-bottom: 10px;\n}\nh1 small,\n.h1 small,\nh2 small,\n.h2 small,\nh3 small,\n.h3 small,\nh1 .small,\n.h1 .small,\nh2 .small,\n.h2 .small,\nh3 .small,\n.h3 .small {\n font-size: 65%;\n}\nh4,\n.h4,\nh5,\n.h5,\nh6,\n.h6 {\n margin-top: 10px;\n margin-bottom: 10px;\n}\nh4 small,\n.h4 small,\nh5 small,\n.h5 small,\nh6 small,\n.h6 small,\nh4 .small,\n.h4 .small,\nh5 .small,\n.h5 .small,\nh6 .small,\n.h6 .small {\n font-size: 75%;\n}\nh1,\n.h1 {\n font-size: 36px;\n}\nh2,\n.h2 {\n font-size: 30px;\n}\nh3,\n.h3 {\n font-size: 24px;\n}\nh4,\n.h4 {\n font-size: 18px;\n}\nh5,\n.h5 {\n font-size: 14px;\n}\nh6,\n.h6 {\n font-size: 12px;\n}\np {\n margin: 0 0 10px;\n}\n.lead {\n margin-bottom: 20px;\n font-size: 16px;\n font-weight: 300;\n line-height: 1.4;\n}\n@media (min-width: 768px) {\n .lead {\n font-size: 21px;\n }\n}\nsmall,\n.small {\n font-size: 85%;\n}\nmark,\n.mark {\n background-color: #fcf8e3;\n padding: .2em;\n}\n.text-left {\n text-align: left;\n}\n.text-right {\n text-align: right;\n}\n.text-center {\n text-align: center;\n}\n.text-justify {\n text-align: justify;\n}\n.text-nowrap {\n white-space: nowrap;\n}\n.text-lowercase {\n text-transform: lowercase;\n}\n.text-uppercase {\n text-transform: uppercase;\n}\n.text-capitalize {\n text-transform: capitalize;\n}\n.text-muted {\n color: #777777;\n}\n.text-primary {\n color: #337ab7;\n}\na.text-primary:hover,\na.text-primary:focus {\n color: #286090;\n}\n.text-success {\n color: #3c763d;\n}\na.text-success:hover,\na.text-success:focus {\n color: #2b542c;\n}\n.text-info {\n color: #31708f;\n}\na.text-info:hover,\na.text-info:focus {\n color: #245269;\n}\n.text-warning {\n color: #8a6d3b;\n}\na.text-warning:hover,\na.text-warning:focus {\n color: #66512c;\n}\n.text-danger {\n color: #a94442;\n}\na.text-danger:hover,\na.text-danger:focus {\n color: #843534;\n}\n.bg-primary {\n color: #fff;\n background-color: #337ab7;\n}\na.bg-primary:hover,\na.bg-primary:focus {\n background-color: #286090;\n}\n.bg-success {\n background-color: #dff0d8;\n}\na.bg-success:hover,\na.bg-success:focus {\n background-color: #c1e2b3;\n}\n.bg-info {\n background-color: #d9edf7;\n}\na.bg-info:hover,\na.bg-info:focus {\n background-color: #afd9ee;\n}\n.bg-warning {\n background-color: #fcf8e3;\n}\na.bg-warning:hover,\na.bg-warning:focus {\n background-color: #f7ecb5;\n}\n.bg-danger {\n background-color: #f2dede;\n}\na.bg-danger:hover,\na.bg-danger:focus {\n background-color: #e4b9b9;\n}\n.page-header {\n padding-bottom: 9px;\n margin: 40px 0 20px;\n border-bottom: 1px solid #eeeeee;\n}\nul,\nol {\n margin-top: 0;\n margin-bottom: 10px;\n}\nul ul,\nol ul,\nul ol,\nol ol {\n margin-bottom: 0;\n}\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n.list-inline {\n padding-left: 0;\n list-style: none;\n margin-left: -5px;\n}\n.list-inline > li {\n display: inline-block;\n padding-left: 5px;\n padding-right: 5px;\n}\ndl {\n margin-top: 0;\n margin-bottom: 20px;\n}\ndt,\ndd {\n line-height: 1.42857143;\n}\ndt {\n font-weight: bold;\n}\ndd {\n margin-left: 0;\n}\n@media (min-width: 768px) {\n .dl-horizontal dt {\n float: left;\n width: 160px;\n clear: left;\n text-align: right;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .dl-horizontal dd {\n margin-left: 180px;\n }\n}\nabbr[title],\nabbr[data-original-title] {\n cursor: help;\n border-bottom: 1px dotted #777777;\n}\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\nblockquote {\n padding: 10px 20px;\n margin: 0 0 20px;\n font-size: 17.5px;\n border-left: 5px solid #eeeeee;\n}\nblockquote p:last-child,\nblockquote ul:last-child,\nblockquote ol:last-child {\n margin-bottom: 0;\n}\nblockquote footer,\nblockquote small,\nblockquote .small {\n display: block;\n font-size: 80%;\n line-height: 1.42857143;\n color: #777777;\n}\nblockquote footer:before,\nblockquote small:before,\nblockquote .small:before {\n content: '\\2014 \\00A0';\n}\n.blockquote-reverse,\nblockquote.pull-right {\n padding-right: 15px;\n padding-left: 0;\n border-right: 5px solid #eeeeee;\n border-left: 0;\n text-align: right;\n}\n.blockquote-reverse footer:before,\nblockquote.pull-right footer:before,\n.blockquote-reverse small:before,\nblockquote.pull-right small:before,\n.blockquote-reverse .small:before,\nblockquote.pull-right .small:before {\n content: '';\n}\n.blockquote-reverse footer:after,\nblockquote.pull-right footer:after,\n.blockquote-reverse small:after,\nblockquote.pull-right small:after,\n.blockquote-reverse .small:after,\nblockquote.pull-right .small:after {\n content: '\\00A0 \\2014';\n}\naddress {\n margin-bottom: 20px;\n font-style: normal;\n line-height: 1.42857143;\n}\ncode,\nkbd,\npre,\nsamp {\n font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace;\n}\ncode {\n padding: 2px 4px;\n font-size: 90%;\n color: #c7254e;\n background-color: #f9f2f4;\n border-radius: 4px;\n}\nkbd {\n padding: 2px 4px;\n font-size: 90%;\n color: #ffffff;\n background-color: #333333;\n border-radius: 3px;\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: bold;\n box-shadow: none;\n}\npre {\n display: block;\n padding: 9.5px;\n margin: 0 0 10px;\n font-size: 13px;\n line-height: 1.42857143;\n word-break: break-all;\n word-wrap: break-word;\n color: #333333;\n background-color: #f5f5f5;\n border: 1px solid #cccccc;\n border-radius: 4px;\n}\npre code {\n padding: 0;\n font-size: inherit;\n color: inherit;\n white-space: pre-wrap;\n background-color: transparent;\n border-radius: 0;\n}\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n.container {\n margin-right: auto;\n margin-left: auto;\n padding-left: 15px;\n padding-right: 15px;\n}\n@media (min-width: 768px) {\n .container {\n width: 750px;\n }\n}\n@media (min-width: 992px) {\n .container {\n width: 970px;\n }\n}\n@media (min-width: 1200px) {\n .container {\n width: 1170px;\n }\n}\n.container-fluid {\n margin-right: auto;\n margin-left: auto;\n padding-left: 15px;\n padding-right: 15px;\n}\n.row {\n margin-left: -15px;\n margin-right: -15px;\n}\n.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {\n position: relative;\n min-height: 1px;\n padding-left: 15px;\n padding-right: 15px;\n}\n.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {\n float: left;\n}\n.col-xs-12 {\n width: 100%;\n}\n.col-xs-11 {\n width: 91.66666667%;\n}\n.col-xs-10 {\n width: 83.33333333%;\n}\n.col-xs-9 {\n width: 75%;\n}\n.col-xs-8 {\n width: 66.66666667%;\n}\n.col-xs-7 {\n width: 58.33333333%;\n}\n.col-xs-6 {\n width: 50%;\n}\n.col-xs-5 {\n width: 41.66666667%;\n}\n.col-xs-4 {\n width: 33.33333333%;\n}\n.col-xs-3 {\n width: 25%;\n}\n.col-xs-2 {\n width: 16.66666667%;\n}\n.col-xs-1 {\n width: 8.33333333%;\n}\n.col-xs-pull-12 {\n right: 100%;\n}\n.col-xs-pull-11 {\n right: 91.66666667%;\n}\n.col-xs-pull-10 {\n right: 83.33333333%;\n}\n.col-xs-pull-9 {\n right: 75%;\n}\n.col-xs-pull-8 {\n right: 66.66666667%;\n}\n.col-xs-pull-7 {\n right: 58.33333333%;\n}\n.col-xs-pull-6 {\n right: 50%;\n}\n.col-xs-pull-5 {\n right: 41.66666667%;\n}\n.col-xs-pull-4 {\n right: 33.33333333%;\n}\n.col-xs-pull-3 {\n right: 25%;\n}\n.col-xs-pull-2 {\n right: 16.66666667%;\n}\n.col-xs-pull-1 {\n right: 8.33333333%;\n}\n.col-xs-pull-0 {\n right: auto;\n}\n.col-xs-push-12 {\n left: 100%;\n}\n.col-xs-push-11 {\n left: 91.66666667%;\n}\n.col-xs-push-10 {\n left: 83.33333333%;\n}\n.col-xs-push-9 {\n left: 75%;\n}\n.col-xs-push-8 {\n left: 66.66666667%;\n}\n.col-xs-push-7 {\n left: 58.33333333%;\n}\n.col-xs-push-6 {\n left: 50%;\n}\n.col-xs-push-5 {\n left: 41.66666667%;\n}\n.col-xs-push-4 {\n left: 33.33333333%;\n}\n.col-xs-push-3 {\n left: 25%;\n}\n.col-xs-push-2 {\n left: 16.66666667%;\n}\n.col-xs-push-1 {\n left: 8.33333333%;\n}\n.col-xs-push-0 {\n left: auto;\n}\n.col-xs-offset-12 {\n margin-left: 100%;\n}\n.col-xs-offset-11 {\n margin-left: 91.66666667%;\n}\n.col-xs-offset-10 {\n margin-left: 83.33333333%;\n}\n.col-xs-offset-9 {\n margin-left: 75%;\n}\n.col-xs-offset-8 {\n margin-left: 66.66666667%;\n}\n.col-xs-offset-7 {\n margin-left: 58.33333333%;\n}\n.col-xs-offset-6 {\n margin-left: 50%;\n}\n.col-xs-offset-5 {\n margin-left: 41.66666667%;\n}\n.col-xs-offset-4 {\n margin-left: 33.33333333%;\n}\n.col-xs-offset-3 {\n margin-left: 25%;\n}\n.col-xs-offset-2 {\n margin-left: 16.66666667%;\n}\n.col-xs-offset-1 {\n margin-left: 8.33333333%;\n}\n.col-xs-offset-0 {\n margin-left: 0%;\n}\n@media (min-width: 768px) {\n .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {\n float: left;\n }\n .col-sm-12 {\n width: 100%;\n }\n .col-sm-11 {\n width: 91.66666667%;\n }\n .col-sm-10 {\n width: 83.33333333%;\n }\n .col-sm-9 {\n width: 75%;\n }\n .col-sm-8 {\n width: 66.66666667%;\n }\n .col-sm-7 {\n width: 58.33333333%;\n }\n .col-sm-6 {\n width: 50%;\n }\n .col-sm-5 {\n width: 41.66666667%;\n }\n .col-sm-4 {\n width: 33.33333333%;\n }\n .col-sm-3 {\n width: 25%;\n }\n .col-sm-2 {\n width: 16.66666667%;\n }\n .col-sm-1 {\n width: 8.33333333%;\n }\n .col-sm-pull-12 {\n right: 100%;\n }\n .col-sm-pull-11 {\n right: 91.66666667%;\n }\n .col-sm-pull-10 {\n right: 83.33333333%;\n }\n .col-sm-pull-9 {\n right: 75%;\n }\n .col-sm-pull-8 {\n right: 66.66666667%;\n }\n .col-sm-pull-7 {\n right: 58.33333333%;\n }\n .col-sm-pull-6 {\n right: 50%;\n }\n .col-sm-pull-5 {\n right: 41.66666667%;\n }\n .col-sm-pull-4 {\n right: 33.33333333%;\n }\n .col-sm-pull-3 {\n right: 25%;\n }\n .col-sm-pull-2 {\n right: 16.66666667%;\n }\n .col-sm-pull-1 {\n right: 8.33333333%;\n }\n .col-sm-pull-0 {\n right: auto;\n }\n .col-sm-push-12 {\n left: 100%;\n }\n .col-sm-push-11 {\n left: 91.66666667%;\n }\n .col-sm-push-10 {\n left: 83.33333333%;\n }\n .col-sm-push-9 {\n left: 75%;\n }\n .col-sm-push-8 {\n left: 66.66666667%;\n }\n .col-sm-push-7 {\n left: 58.33333333%;\n }\n .col-sm-push-6 {\n left: 50%;\n }\n .col-sm-push-5 {\n left: 41.66666667%;\n }\n .col-sm-push-4 {\n left: 33.33333333%;\n }\n .col-sm-push-3 {\n left: 25%;\n }\n .col-sm-push-2 {\n left: 16.66666667%;\n }\n .col-sm-push-1 {\n left: 8.33333333%;\n }\n .col-sm-push-0 {\n left: auto;\n }\n .col-sm-offset-12 {\n margin-left: 100%;\n }\n .col-sm-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-sm-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-sm-offset-9 {\n margin-left: 75%;\n }\n .col-sm-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-sm-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-sm-offset-6 {\n margin-left: 50%;\n }\n .col-sm-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-sm-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-sm-offset-3 {\n margin-left: 25%;\n }\n .col-sm-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-sm-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-sm-offset-0 {\n margin-left: 0%;\n }\n}\n@media (min-width: 992px) {\n .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {\n float: left;\n }\n .col-md-12 {\n width: 100%;\n }\n .col-md-11 {\n width: 91.66666667%;\n }\n .col-md-10 {\n width: 83.33333333%;\n }\n .col-md-9 {\n width: 75%;\n }\n .col-md-8 {\n width: 66.66666667%;\n }\n .col-md-7 {\n width: 58.33333333%;\n }\n .col-md-6 {\n width: 50%;\n }\n .col-md-5 {\n width: 41.66666667%;\n }\n .col-md-4 {\n width: 33.33333333%;\n }\n .col-md-3 {\n width: 25%;\n }\n .col-md-2 {\n width: 16.66666667%;\n }\n .col-md-1 {\n width: 8.33333333%;\n }\n .col-md-pull-12 {\n right: 100%;\n }\n .col-md-pull-11 {\n right: 91.66666667%;\n }\n .col-md-pull-10 {\n right: 83.33333333%;\n }\n .col-md-pull-9 {\n right: 75%;\n }\n .col-md-pull-8 {\n right: 66.66666667%;\n }\n .col-md-pull-7 {\n right: 58.33333333%;\n }\n .col-md-pull-6 {\n right: 50%;\n }\n .col-md-pull-5 {\n right: 41.66666667%;\n }\n .col-md-pull-4 {\n right: 33.33333333%;\n }\n .col-md-pull-3 {\n right: 25%;\n }\n .col-md-pull-2 {\n right: 16.66666667%;\n }\n .col-md-pull-1 {\n right: 8.33333333%;\n }\n .col-md-pull-0 {\n right: auto;\n }\n .col-md-push-12 {\n left: 100%;\n }\n .col-md-push-11 {\n left: 91.66666667%;\n }\n .col-md-push-10 {\n left: 83.33333333%;\n }\n .col-md-push-9 {\n left: 75%;\n }\n .col-md-push-8 {\n left: 66.66666667%;\n }\n .col-md-push-7 {\n left: 58.33333333%;\n }\n .col-md-push-6 {\n left: 50%;\n }\n .col-md-push-5 {\n left: 41.66666667%;\n }\n .col-md-push-4 {\n left: 33.33333333%;\n }\n .col-md-push-3 {\n left: 25%;\n }\n .col-md-push-2 {\n left: 16.66666667%;\n }\n .col-md-push-1 {\n left: 8.33333333%;\n }\n .col-md-push-0 {\n left: auto;\n }\n .col-md-offset-12 {\n margin-left: 100%;\n }\n .col-md-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-md-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-md-offset-9 {\n margin-left: 75%;\n }\n .col-md-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-md-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-md-offset-6 {\n margin-left: 50%;\n }\n .col-md-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-md-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-md-offset-3 {\n margin-left: 25%;\n }\n .col-md-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-md-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-md-offset-0 {\n margin-left: 0%;\n }\n}\n@media (min-width: 1200px) {\n .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {\n float: left;\n }\n .col-lg-12 {\n width: 100%;\n }\n .col-lg-11 {\n width: 91.66666667%;\n }\n .col-lg-10 {\n width: 83.33333333%;\n }\n .col-lg-9 {\n width: 75%;\n }\n .col-lg-8 {\n width: 66.66666667%;\n }\n .col-lg-7 {\n width: 58.33333333%;\n }\n .col-lg-6 {\n width: 50%;\n }\n .col-lg-5 {\n width: 41.66666667%;\n }\n .col-lg-4 {\n width: 33.33333333%;\n }\n .col-lg-3 {\n width: 25%;\n }\n .col-lg-2 {\n width: 16.66666667%;\n }\n .col-lg-1 {\n width: 8.33333333%;\n }\n .col-lg-pull-12 {\n right: 100%;\n }\n .col-lg-pull-11 {\n right: 91.66666667%;\n }\n .col-lg-pull-10 {\n right: 83.33333333%;\n }\n .col-lg-pull-9 {\n right: 75%;\n }\n .col-lg-pull-8 {\n right: 66.66666667%;\n }\n .col-lg-pull-7 {\n right: 58.33333333%;\n }\n .col-lg-pull-6 {\n right: 50%;\n }\n .col-lg-pull-5 {\n right: 41.66666667%;\n }\n .col-lg-pull-4 {\n right: 33.33333333%;\n }\n .col-lg-pull-3 {\n right: 25%;\n }\n .col-lg-pull-2 {\n right: 16.66666667%;\n }\n .col-lg-pull-1 {\n right: 8.33333333%;\n }\n .col-lg-pull-0 {\n right: auto;\n }\n .col-lg-push-12 {\n left: 100%;\n }\n .col-lg-push-11 {\n left: 91.66666667%;\n }\n .col-lg-push-10 {\n left: 83.33333333%;\n }\n .col-lg-push-9 {\n left: 75%;\n }\n .col-lg-push-8 {\n left: 66.66666667%;\n }\n .col-lg-push-7 {\n left: 58.33333333%;\n }\n .col-lg-push-6 {\n left: 50%;\n }\n .col-lg-push-5 {\n left: 41.66666667%;\n }\n .col-lg-push-4 {\n left: 33.33333333%;\n }\n .col-lg-push-3 {\n left: 25%;\n }\n .col-lg-push-2 {\n left: 16.66666667%;\n }\n .col-lg-push-1 {\n left: 8.33333333%;\n }\n .col-lg-push-0 {\n left: auto;\n }\n .col-lg-offset-12 {\n margin-left: 100%;\n }\n .col-lg-offset-11 {\n margin-left: 91.66666667%;\n }\n .col-lg-offset-10 {\n margin-left: 83.33333333%;\n }\n .col-lg-offset-9 {\n margin-left: 75%;\n }\n .col-lg-offset-8 {\n margin-left: 66.66666667%;\n }\n .col-lg-offset-7 {\n margin-left: 58.33333333%;\n }\n .col-lg-offset-6 {\n margin-left: 50%;\n }\n .col-lg-offset-5 {\n margin-left: 41.66666667%;\n }\n .col-lg-offset-4 {\n margin-left: 33.33333333%;\n }\n .col-lg-offset-3 {\n margin-left: 25%;\n }\n .col-lg-offset-2 {\n margin-left: 16.66666667%;\n }\n .col-lg-offset-1 {\n margin-left: 8.33333333%;\n }\n .col-lg-offset-0 {\n margin-left: 0%;\n }\n}\ntable {\n background-color: transparent;\n}\ncaption {\n padding-top: 8px;\n padding-bottom: 8px;\n color: #777777;\n text-align: left;\n}\nth {\n text-align: left;\n}\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: 20px;\n}\n.table > thead > tr > th,\n.table > tbody > tr > th,\n.table > tfoot > tr > th,\n.table > thead > tr > td,\n.table > tbody > tr > td,\n.table > tfoot > tr > td {\n padding: 8px;\n line-height: 1.42857143;\n vertical-align: top;\n border-top: 1px solid #dddddd;\n}\n.table > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid #dddddd;\n}\n.table > caption + thead > tr:first-child > th,\n.table > colgroup + thead > tr:first-child > th,\n.table > thead:first-child > tr:first-child > th,\n.table > caption + thead > tr:first-child > td,\n.table > colgroup + thead > tr:first-child > td,\n.table > thead:first-child > tr:first-child > td {\n border-top: 0;\n}\n.table > tbody + tbody {\n border-top: 2px solid #dddddd;\n}\n.table .table {\n background-color: #ffffff;\n}\n.table-condensed > thead > tr > th,\n.table-condensed > tbody > tr > th,\n.table-condensed > tfoot > tr > th,\n.table-condensed > thead > tr > td,\n.table-condensed > tbody > tr > td,\n.table-condensed > tfoot > tr > td {\n padding: 5px;\n}\n.table-bordered {\n border: 1px solid #dddddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > tbody > tr > th,\n.table-bordered > tfoot > tr > th,\n.table-bordered > thead > tr > td,\n.table-bordered > tbody > tr > td,\n.table-bordered > tfoot > tr > td {\n border: 1px solid #dddddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > thead > tr > td {\n border-bottom-width: 2px;\n}\n.table-striped > tbody > tr:nth-of-type(odd) {\n background-color: #f9f9f9;\n}\n.table-hover > tbody > tr:hover {\n background-color: #f5f5f5;\n}\ntable col[class*=\"col-\"] {\n position: static;\n float: none;\n display: table-column;\n}\ntable td[class*=\"col-\"],\ntable th[class*=\"col-\"] {\n position: static;\n float: none;\n display: table-cell;\n}\n.table > thead > tr > td.active,\n.table > tbody > tr > td.active,\n.table > tfoot > tr > td.active,\n.table > thead > tr > th.active,\n.table > tbody > tr > th.active,\n.table > tfoot > tr > th.active,\n.table > thead > tr.active > td,\n.table > tbody > tr.active > td,\n.table > tfoot > tr.active > td,\n.table > thead > tr.active > th,\n.table > tbody > tr.active > th,\n.table > tfoot > tr.active > th {\n background-color: #f5f5f5;\n}\n.table-hover > tbody > tr > td.active:hover,\n.table-hover > tbody > tr > th.active:hover,\n.table-hover > tbody > tr.active:hover > td,\n.table-hover > tbody > tr:hover > .active,\n.table-hover > tbody > tr.active:hover > th {\n background-color: #e8e8e8;\n}\n.table > thead > tr > td.success,\n.table > tbody > tr > td.success,\n.table > tfoot > tr > td.success,\n.table > thead > tr > th.success,\n.table > tbody > tr > th.success,\n.table > tfoot > tr > th.success,\n.table > thead > tr.success > td,\n.table > tbody > tr.success > td,\n.table > tfoot > tr.success > td,\n.table > thead > tr.success > th,\n.table > tbody > tr.success > th,\n.table > tfoot > tr.success > th {\n background-color: #dff0d8;\n}\n.table-hover > tbody > tr > td.success:hover,\n.table-hover > tbody > tr > th.success:hover,\n.table-hover > tbody > tr.success:hover > td,\n.table-hover > tbody > tr:hover > .success,\n.table-hover > tbody > tr.success:hover > th {\n background-color: #d0e9c6;\n}\n.table > thead > tr > td.info,\n.table > tbody > tr > td.info,\n.table > tfoot > tr > td.info,\n.table > thead > tr > th.info,\n.table > tbody > tr > th.info,\n.table > tfoot > tr > th.info,\n.table > thead > tr.info > td,\n.table > tbody > tr.info > td,\n.table > tfoot > tr.info > td,\n.table > thead > tr.info > th,\n.table > tbody > tr.info > th,\n.table > tfoot > tr.info > th {\n background-color: #d9edf7;\n}\n.table-hover > tbody > tr > td.info:hover,\n.table-hover > tbody > tr > th.info:hover,\n.table-hover > tbody > tr.info:hover > td,\n.table-hover > tbody > tr:hover > .info,\n.table-hover > tbody > tr.info:hover > th {\n background-color: #c4e3f3;\n}\n.table > thead > tr > td.warning,\n.table > tbody > tr > td.warning,\n.table > tfoot > tr > td.warning,\n.table > thead > tr > th.warning,\n.table > tbody > tr > th.warning,\n.table > tfoot > tr > th.warning,\n.table > thead > tr.warning > td,\n.table > tbody > tr.warning > td,\n.table > tfoot > tr.warning > td,\n.table > thead > tr.warning > th,\n.table > tbody > tr.warning > th,\n.table > tfoot > tr.warning > th {\n background-color: #fcf8e3;\n}\n.table-hover > tbody > tr > td.warning:hover,\n.table-hover > tbody > tr > th.warning:hover,\n.table-hover > tbody > tr.warning:hover > td,\n.table-hover > tbody > tr:hover > .warning,\n.table-hover > tbody > tr.warning:hover > th {\n background-color: #faf2cc;\n}\n.table > thead > tr > td.danger,\n.table > tbody > tr > td.danger,\n.table > tfoot > tr > td.danger,\n.table > thead > tr > th.danger,\n.table > tbody > tr > th.danger,\n.table > tfoot > tr > th.danger,\n.table > thead > tr.danger > td,\n.table > tbody > tr.danger > td,\n.table > tfoot > tr.danger > td,\n.table > thead > tr.danger > th,\n.table > tbody > tr.danger > th,\n.table > tfoot > tr.danger > th {\n background-color: #f2dede;\n}\n.table-hover > tbody > tr > td.danger:hover,\n.table-hover > tbody > tr > th.danger:hover,\n.table-hover > tbody > tr.danger:hover > td,\n.table-hover > tbody > tr:hover > .danger,\n.table-hover > tbody > tr.danger:hover > th {\n background-color: #ebcccc;\n}\n.table-responsive {\n overflow-x: auto;\n min-height: 0.01%;\n}\n@media screen and (max-width: 767px) {\n .table-responsive {\n width: 100%;\n margin-bottom: 15px;\n overflow-y: hidden;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n border: 1px solid #dddddd;\n }\n .table-responsive > .table {\n margin-bottom: 0;\n }\n .table-responsive > .table > thead > tr > th,\n .table-responsive > .table > tbody > tr > th,\n .table-responsive > .table > tfoot > tr > th,\n .table-responsive > .table > thead > tr > td,\n .table-responsive > .table > tbody > tr > td,\n .table-responsive > .table > tfoot > tr > td {\n white-space: nowrap;\n }\n .table-responsive > .table-bordered {\n border: 0;\n }\n .table-responsive > .table-bordered > thead > tr > th:first-child,\n .table-responsive > .table-bordered > tbody > tr > th:first-child,\n .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n .table-responsive > .table-bordered > thead > tr > td:first-child,\n .table-responsive > .table-bordered > tbody > tr > td:first-child,\n .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-left: 0;\n }\n .table-responsive > .table-bordered > thead > tr > th:last-child,\n .table-responsive > .table-bordered > tbody > tr > th:last-child,\n .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n .table-responsive > .table-bordered > thead > tr > td:last-child,\n .table-responsive > .table-bordered > tbody > tr > td:last-child,\n .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: 0;\n }\n .table-responsive > .table-bordered > tbody > tr:last-child > th,\n .table-responsive > .table-bordered > tfoot > tr:last-child > th,\n .table-responsive > .table-bordered > tbody > tr:last-child > td,\n .table-responsive > .table-bordered > tfoot > tr:last-child > td {\n border-bottom: 0;\n }\n}\nfieldset {\n padding: 0;\n margin: 0;\n border: 0;\n min-width: 0;\n}\nlegend {\n display: block;\n width: 100%;\n padding: 0;\n margin-bottom: 20px;\n font-size: 21px;\n line-height: inherit;\n color: #333333;\n border: 0;\n border-bottom: 1px solid #e5e5e5;\n}\nlabel {\n display: inline-block;\n max-width: 100%;\n margin-bottom: 5px;\n font-weight: bold;\n}\ninput[type=\"search\"] {\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box;\n}\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n margin: 4px 0 0;\n margin-top: 1px \\9;\n line-height: normal;\n}\ninput[type=\"file\"] {\n display: block;\n}\ninput[type=\"range\"] {\n display: block;\n width: 100%;\n}\nselect[multiple],\nselect[size] {\n height: auto;\n}\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n outline: thin dotted;\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\noutput {\n display: block;\n padding-top: 7px;\n font-size: 14px;\n line-height: 1.42857143;\n color: #555555;\n}\n.form-control {\n display: block;\n width: 100%;\n height: 34px;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857143;\n color: #555555;\n background-color: #ffffff;\n background-image: none;\n border: 1px solid #cccccc;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n}\n.form-control:focus {\n border-color: #66afe9;\n outline: 0;\n -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);\n box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);\n}\n.form-control::-moz-placeholder {\n color: #999999;\n opacity: 1;\n}\n.form-control:-ms-input-placeholder {\n color: #999999;\n}\n.form-control::-webkit-input-placeholder {\n color: #999999;\n}\n.form-control[disabled],\n.form-control[readonly],\nfieldset[disabled] .form-control {\n background-color: #eeeeee;\n opacity: 1;\n}\n.form-control[disabled],\nfieldset[disabled] .form-control {\n cursor: not-allowed;\n}\ntextarea.form-control {\n height: auto;\n}\ninput[type=\"search\"] {\n -webkit-appearance: none;\n}\n@media screen and (-webkit-min-device-pixel-ratio: 0) {\n input[type=\"date\"].form-control,\n input[type=\"time\"].form-control,\n input[type=\"datetime-local\"].form-control,\n input[type=\"month\"].form-control {\n line-height: 34px;\n }\n input[type=\"date\"].input-sm,\n input[type=\"time\"].input-sm,\n input[type=\"datetime-local\"].input-sm,\n input[type=\"month\"].input-sm,\n .input-group-sm input[type=\"date\"],\n .input-group-sm input[type=\"time\"],\n .input-group-sm input[type=\"datetime-local\"],\n .input-group-sm input[type=\"month\"] {\n line-height: 30px;\n }\n input[type=\"date\"].input-lg,\n input[type=\"time\"].input-lg,\n input[type=\"datetime-local\"].input-lg,\n input[type=\"month\"].input-lg,\n .input-group-lg input[type=\"date\"],\n .input-group-lg input[type=\"time\"],\n .input-group-lg input[type=\"datetime-local\"],\n .input-group-lg input[type=\"month\"] {\n line-height: 46px;\n }\n}\n.form-group {\n margin-bottom: 15px;\n}\n.radio,\n.checkbox {\n position: relative;\n display: block;\n margin-top: 10px;\n margin-bottom: 10px;\n}\n.radio label,\n.checkbox label {\n min-height: 20px;\n padding-left: 20px;\n margin-bottom: 0;\n font-weight: normal;\n cursor: pointer;\n}\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n position: absolute;\n margin-left: -20px;\n margin-top: 4px \\9;\n}\n.radio + .radio,\n.checkbox + .checkbox {\n margin-top: -5px;\n}\n.radio-inline,\n.checkbox-inline {\n position: relative;\n display: inline-block;\n padding-left: 20px;\n margin-bottom: 0;\n vertical-align: middle;\n font-weight: normal;\n cursor: pointer;\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n margin-top: 0;\n margin-left: 10px;\n}\ninput[type=\"radio\"][disabled],\ninput[type=\"checkbox\"][disabled],\ninput[type=\"radio\"].disabled,\ninput[type=\"checkbox\"].disabled,\nfieldset[disabled] input[type=\"radio\"],\nfieldset[disabled] input[type=\"checkbox\"] {\n cursor: not-allowed;\n}\n.radio-inline.disabled,\n.checkbox-inline.disabled,\nfieldset[disabled] .radio-inline,\nfieldset[disabled] .checkbox-inline {\n cursor: not-allowed;\n}\n.radio.disabled label,\n.checkbox.disabled label,\nfieldset[disabled] .radio label,\nfieldset[disabled] .checkbox label {\n cursor: not-allowed;\n}\n.form-control-static {\n padding-top: 7px;\n padding-bottom: 7px;\n margin-bottom: 0;\n min-height: 34px;\n}\n.form-control-static.input-lg,\n.form-control-static.input-sm {\n padding-left: 0;\n padding-right: 0;\n}\n.input-sm {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.input-sm {\n height: 30px;\n line-height: 30px;\n}\ntextarea.input-sm,\nselect[multiple].input-sm {\n height: auto;\n}\n.form-group-sm .form-control {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.form-group-sm select.form-control {\n height: 30px;\n line-height: 30px;\n}\n.form-group-sm textarea.form-control,\n.form-group-sm select[multiple].form-control {\n height: auto;\n}\n.form-group-sm .form-control-static {\n height: 30px;\n min-height: 32px;\n padding: 6px 10px;\n font-size: 12px;\n line-height: 1.5;\n}\n.input-lg {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\nselect.input-lg {\n height: 46px;\n line-height: 46px;\n}\ntextarea.input-lg,\nselect[multiple].input-lg {\n height: auto;\n}\n.form-group-lg .form-control {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\n.form-group-lg select.form-control {\n height: 46px;\n line-height: 46px;\n}\n.form-group-lg textarea.form-control,\n.form-group-lg select[multiple].form-control {\n height: auto;\n}\n.form-group-lg .form-control-static {\n height: 46px;\n min-height: 38px;\n padding: 11px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n}\n.has-feedback {\n position: relative;\n}\n.has-feedback .form-control {\n padding-right: 42.5px;\n}\n.form-control-feedback {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n display: block;\n width: 34px;\n height: 34px;\n line-height: 34px;\n text-align: center;\n pointer-events: none;\n}\n.input-lg + .form-control-feedback,\n.input-group-lg + .form-control-feedback,\n.form-group-lg .form-control + .form-control-feedback {\n width: 46px;\n height: 46px;\n line-height: 46px;\n}\n.input-sm + .form-control-feedback,\n.input-group-sm + .form-control-feedback,\n.form-group-sm .form-control + .form-control-feedback {\n width: 30px;\n height: 30px;\n line-height: 30px;\n}\n.has-success .help-block,\n.has-success .control-label,\n.has-success .radio,\n.has-success .checkbox,\n.has-success .radio-inline,\n.has-success .checkbox-inline,\n.has-success.radio label,\n.has-success.checkbox label,\n.has-success.radio-inline label,\n.has-success.checkbox-inline label {\n color: #3c763d;\n}\n.has-success .form-control {\n border-color: #3c763d;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-success .form-control:focus {\n border-color: #2b542c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n}\n.has-success .input-group-addon {\n color: #3c763d;\n border-color: #3c763d;\n background-color: #dff0d8;\n}\n.has-success .form-control-feedback {\n color: #3c763d;\n}\n.has-warning .help-block,\n.has-warning .control-label,\n.has-warning .radio,\n.has-warning .checkbox,\n.has-warning .radio-inline,\n.has-warning .checkbox-inline,\n.has-warning.radio label,\n.has-warning.checkbox label,\n.has-warning.radio-inline label,\n.has-warning.checkbox-inline label {\n color: #8a6d3b;\n}\n.has-warning .form-control {\n border-color: #8a6d3b;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-warning .form-control:focus {\n border-color: #66512c;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n}\n.has-warning .input-group-addon {\n color: #8a6d3b;\n border-color: #8a6d3b;\n background-color: #fcf8e3;\n}\n.has-warning .form-control-feedback {\n color: #8a6d3b;\n}\n.has-error .help-block,\n.has-error .control-label,\n.has-error .radio,\n.has-error .checkbox,\n.has-error .radio-inline,\n.has-error .checkbox-inline,\n.has-error.radio label,\n.has-error.checkbox label,\n.has-error.radio-inline label,\n.has-error.checkbox-inline label {\n color: #a94442;\n}\n.has-error .form-control {\n border-color: #a94442;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-error .form-control:focus {\n border-color: #843534;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n}\n.has-error .input-group-addon {\n color: #a94442;\n border-color: #a94442;\n background-color: #f2dede;\n}\n.has-error .form-control-feedback {\n color: #a94442;\n}\n.has-feedback label ~ .form-control-feedback {\n top: 25px;\n}\n.has-feedback label.sr-only ~ .form-control-feedback {\n top: 0;\n}\n.help-block {\n display: block;\n margin-top: 5px;\n margin-bottom: 10px;\n color: #737373;\n}\n@media (min-width: 768px) {\n .form-inline .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-static {\n display: inline-block;\n }\n .form-inline .input-group {\n display: inline-table;\n vertical-align: middle;\n }\n .form-inline .input-group .input-group-addon,\n .form-inline .input-group .input-group-btn,\n .form-inline .input-group .form-control {\n width: auto;\n }\n .form-inline .input-group > .form-control {\n width: 100%;\n }\n .form-inline .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .radio,\n .form-inline .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .form-inline .radio label,\n .form-inline .checkbox label {\n padding-left: 0;\n }\n .form-inline .radio input[type=\"radio\"],\n .form-inline .checkbox input[type=\"checkbox\"] {\n position: relative;\n margin-left: 0;\n }\n .form-inline .has-feedback .form-control-feedback {\n top: 0;\n }\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox,\n.form-horizontal .radio-inline,\n.form-horizontal .checkbox-inline {\n margin-top: 0;\n margin-bottom: 0;\n padding-top: 7px;\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox {\n min-height: 27px;\n}\n.form-horizontal .form-group {\n margin-left: -15px;\n margin-right: -15px;\n}\n@media (min-width: 768px) {\n .form-horizontal .control-label {\n text-align: right;\n margin-bottom: 0;\n padding-top: 7px;\n }\n}\n.form-horizontal .has-feedback .form-control-feedback {\n right: 15px;\n}\n@media (min-width: 768px) {\n .form-horizontal .form-group-lg .control-label {\n padding-top: 14.333333px;\n font-size: 18px;\n }\n}\n@media (min-width: 768px) {\n .form-horizontal .form-group-sm .control-label {\n padding-top: 6px;\n font-size: 12px;\n }\n}\n.btn {\n display: inline-block;\n margin-bottom: 0;\n font-weight: normal;\n text-align: center;\n vertical-align: middle;\n touch-action: manipulation;\n cursor: pointer;\n background-image: none;\n border: 1px solid transparent;\n white-space: nowrap;\n padding: 6px 12px;\n font-size: 14px;\n line-height: 1.42857143;\n border-radius: 4px;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.btn:focus,\n.btn:active:focus,\n.btn.active:focus,\n.btn.focus,\n.btn:active.focus,\n.btn.active.focus {\n outline: thin dotted;\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\n.btn:hover,\n.btn:focus,\n.btn.focus {\n color: #333333;\n text-decoration: none;\n}\n.btn:active,\n.btn.active {\n outline: 0;\n background-image: none;\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn.disabled,\n.btn[disabled],\nfieldset[disabled] .btn {\n cursor: not-allowed;\n opacity: 0.65;\n filter: alpha(opacity=65);\n -webkit-box-shadow: none;\n box-shadow: none;\n}\na.btn.disabled,\nfieldset[disabled] a.btn {\n pointer-events: none;\n}\n.btn-default {\n color: #333333;\n background-color: #ffffff;\n border-color: #cccccc;\n}\n.btn-default:focus,\n.btn-default.focus {\n color: #333333;\n background-color: #e6e6e6;\n border-color: #8c8c8c;\n}\n.btn-default:hover {\n color: #333333;\n background-color: #e6e6e6;\n border-color: #adadad;\n}\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n color: #333333;\n background-color: #e6e6e6;\n border-color: #adadad;\n}\n.btn-default:active:hover,\n.btn-default.active:hover,\n.open > .dropdown-toggle.btn-default:hover,\n.btn-default:active:focus,\n.btn-default.active:focus,\n.open > .dropdown-toggle.btn-default:focus,\n.btn-default:active.focus,\n.btn-default.active.focus,\n.open > .dropdown-toggle.btn-default.focus {\n color: #333333;\n background-color: #d4d4d4;\n border-color: #8c8c8c;\n}\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n background-image: none;\n}\n.btn-default.disabled,\n.btn-default[disabled],\nfieldset[disabled] .btn-default,\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled.focus,\n.btn-default[disabled].focus,\nfieldset[disabled] .btn-default.focus,\n.btn-default.disabled:active,\n.btn-default[disabled]:active,\nfieldset[disabled] .btn-default:active,\n.btn-default.disabled.active,\n.btn-default[disabled].active,\nfieldset[disabled] .btn-default.active {\n background-color: #ffffff;\n border-color: #cccccc;\n}\n.btn-default .badge {\n color: #ffffff;\n background-color: #333333;\n}\n.btn-primary {\n color: #ffffff;\n background-color: #337ab7;\n border-color: #2e6da4;\n}\n.btn-primary:focus,\n.btn-primary.focus {\n color: #ffffff;\n background-color: #286090;\n border-color: #122b40;\n}\n.btn-primary:hover {\n color: #ffffff;\n background-color: #286090;\n border-color: #204d74;\n}\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n color: #ffffff;\n background-color: #286090;\n border-color: #204d74;\n}\n.btn-primary:active:hover,\n.btn-primary.active:hover,\n.open > .dropdown-toggle.btn-primary:hover,\n.btn-primary:active:focus,\n.btn-primary.active:focus,\n.open > .dropdown-toggle.btn-primary:focus,\n.btn-primary:active.focus,\n.btn-primary.active.focus,\n.open > .dropdown-toggle.btn-primary.focus {\n color: #ffffff;\n background-color: #204d74;\n border-color: #122b40;\n}\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n background-image: none;\n}\n.btn-primary.disabled,\n.btn-primary[disabled],\nfieldset[disabled] .btn-primary,\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled.focus,\n.btn-primary[disabled].focus,\nfieldset[disabled] .btn-primary.focus,\n.btn-primary.disabled:active,\n.btn-primary[disabled]:active,\nfieldset[disabled] .btn-primary:active,\n.btn-primary.disabled.active,\n.btn-primary[disabled].active,\nfieldset[disabled] .btn-primary.active {\n background-color: #337ab7;\n border-color: #2e6da4;\n}\n.btn-primary .badge {\n color: #337ab7;\n background-color: #ffffff;\n}\n.btn-success {\n color: #ffffff;\n background-color: #5cb85c;\n border-color: #4cae4c;\n}\n.btn-success:focus,\n.btn-success.focus {\n color: #ffffff;\n background-color: #449d44;\n border-color: #255625;\n}\n.btn-success:hover {\n color: #ffffff;\n background-color: #449d44;\n border-color: #398439;\n}\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n color: #ffffff;\n background-color: #449d44;\n border-color: #398439;\n}\n.btn-success:active:hover,\n.btn-success.active:hover,\n.open > .dropdown-toggle.btn-success:hover,\n.btn-success:active:focus,\n.btn-success.active:focus,\n.open > .dropdown-toggle.btn-success:focus,\n.btn-success:active.focus,\n.btn-success.active.focus,\n.open > .dropdown-toggle.btn-success.focus {\n color: #ffffff;\n background-color: #398439;\n border-color: #255625;\n}\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n background-image: none;\n}\n.btn-success.disabled,\n.btn-success[disabled],\nfieldset[disabled] .btn-success,\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled.focus,\n.btn-success[disabled].focus,\nfieldset[disabled] .btn-success.focus,\n.btn-success.disabled:active,\n.btn-success[disabled]:active,\nfieldset[disabled] .btn-success:active,\n.btn-success.disabled.active,\n.btn-success[disabled].active,\nfieldset[disabled] .btn-success.active {\n background-color: #5cb85c;\n border-color: #4cae4c;\n}\n.btn-success .badge {\n color: #5cb85c;\n background-color: #ffffff;\n}\n.btn-info {\n color: #ffffff;\n background-color: #5bc0de;\n border-color: #46b8da;\n}\n.btn-info:focus,\n.btn-info.focus {\n color: #ffffff;\n background-color: #31b0d5;\n border-color: #1b6d85;\n}\n.btn-info:hover {\n color: #ffffff;\n background-color: #31b0d5;\n border-color: #269abc;\n}\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n color: #ffffff;\n background-color: #31b0d5;\n border-color: #269abc;\n}\n.btn-info:active:hover,\n.btn-info.active:hover,\n.open > .dropdown-toggle.btn-info:hover,\n.btn-info:active:focus,\n.btn-info.active:focus,\n.open > .dropdown-toggle.btn-info:focus,\n.btn-info:active.focus,\n.btn-info.active.focus,\n.open > .dropdown-toggle.btn-info.focus {\n color: #ffffff;\n background-color: #269abc;\n border-color: #1b6d85;\n}\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n background-image: none;\n}\n.btn-info.disabled,\n.btn-info[disabled],\nfieldset[disabled] .btn-info,\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled.focus,\n.btn-info[disabled].focus,\nfieldset[disabled] .btn-info.focus,\n.btn-info.disabled:active,\n.btn-info[disabled]:active,\nfieldset[disabled] .btn-info:active,\n.btn-info.disabled.active,\n.btn-info[disabled].active,\nfieldset[disabled] .btn-info.active {\n background-color: #5bc0de;\n border-color: #46b8da;\n}\n.btn-info .badge {\n color: #5bc0de;\n background-color: #ffffff;\n}\n.btn-warning {\n color: #ffffff;\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.btn-warning:focus,\n.btn-warning.focus {\n color: #ffffff;\n background-color: #ec971f;\n border-color: #985f0d;\n}\n.btn-warning:hover {\n color: #ffffff;\n background-color: #ec971f;\n border-color: #d58512;\n}\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n color: #ffffff;\n background-color: #ec971f;\n border-color: #d58512;\n}\n.btn-warning:active:hover,\n.btn-warning.active:hover,\n.open > .dropdown-toggle.btn-warning:hover,\n.btn-warning:active:focus,\n.btn-warning.active:focus,\n.open > .dropdown-toggle.btn-warning:focus,\n.btn-warning:active.focus,\n.btn-warning.active.focus,\n.open > .dropdown-toggle.btn-warning.focus {\n color: #ffffff;\n background-color: #d58512;\n border-color: #985f0d;\n}\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n background-image: none;\n}\n.btn-warning.disabled,\n.btn-warning[disabled],\nfieldset[disabled] .btn-warning,\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled.focus,\n.btn-warning[disabled].focus,\nfieldset[disabled] .btn-warning.focus,\n.btn-warning.disabled:active,\n.btn-warning[disabled]:active,\nfieldset[disabled] .btn-warning:active,\n.btn-warning.disabled.active,\n.btn-warning[disabled].active,\nfieldset[disabled] .btn-warning.active {\n background-color: #f0ad4e;\n border-color: #eea236;\n}\n.btn-warning .badge {\n color: #f0ad4e;\n background-color: #ffffff;\n}\n.btn-danger {\n color: #ffffff;\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n.btn-danger:focus,\n.btn-danger.focus {\n color: #ffffff;\n background-color: #c9302c;\n border-color: #761c19;\n}\n.btn-danger:hover {\n color: #ffffff;\n background-color: #c9302c;\n border-color: #ac2925;\n}\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n color: #ffffff;\n background-color: #c9302c;\n border-color: #ac2925;\n}\n.btn-danger:active:hover,\n.btn-danger.active:hover,\n.open > .dropdown-toggle.btn-danger:hover,\n.btn-danger:active:focus,\n.btn-danger.active:focus,\n.open > .dropdown-toggle.btn-danger:focus,\n.btn-danger:active.focus,\n.btn-danger.active.focus,\n.open > .dropdown-toggle.btn-danger.focus {\n color: #ffffff;\n background-color: #ac2925;\n border-color: #761c19;\n}\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n background-image: none;\n}\n.btn-danger.disabled,\n.btn-danger[disabled],\nfieldset[disabled] .btn-danger,\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled.focus,\n.btn-danger[disabled].focus,\nfieldset[disabled] .btn-danger.focus,\n.btn-danger.disabled:active,\n.btn-danger[disabled]:active,\nfieldset[disabled] .btn-danger:active,\n.btn-danger.disabled.active,\n.btn-danger[disabled].active,\nfieldset[disabled] .btn-danger.active {\n background-color: #d9534f;\n border-color: #d43f3a;\n}\n.btn-danger .badge {\n color: #d9534f;\n background-color: #ffffff;\n}\n.btn-link {\n color: #337ab7;\n font-weight: normal;\n border-radius: 0;\n}\n.btn-link,\n.btn-link:active,\n.btn-link.active,\n.btn-link[disabled],\nfieldset[disabled] .btn-link {\n background-color: transparent;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn-link,\n.btn-link:hover,\n.btn-link:focus,\n.btn-link:active {\n border-color: transparent;\n}\n.btn-link:hover,\n.btn-link:focus {\n color: #23527c;\n text-decoration: underline;\n background-color: transparent;\n}\n.btn-link[disabled]:hover,\nfieldset[disabled] .btn-link:hover,\n.btn-link[disabled]:focus,\nfieldset[disabled] .btn-link:focus {\n color: #777777;\n text-decoration: none;\n}\n.btn-lg,\n.btn-group-lg > .btn {\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\n.btn-sm,\n.btn-group-sm > .btn {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.btn-xs,\n.btn-group-xs > .btn {\n padding: 1px 5px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\n.btn-block {\n display: block;\n width: 100%;\n}\n.btn-block + .btn-block {\n margin-top: 5px;\n}\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n.fade {\n opacity: 0;\n -webkit-transition: opacity 0.15s linear;\n -o-transition: opacity 0.15s linear;\n transition: opacity 0.15s linear;\n}\n.fade.in {\n opacity: 1;\n}\n.collapse {\n display: none;\n}\n.collapse.in {\n display: block;\n}\ntr.collapse.in {\n display: table-row;\n}\ntbody.collapse.in {\n display: table-row-group;\n}\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n -webkit-transition-property: height, visibility;\n transition-property: height, visibility;\n -webkit-transition-duration: 0.35s;\n transition-duration: 0.35s;\n -webkit-transition-timing-function: ease;\n transition-timing-function: ease;\n}\n.caret {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 2px;\n vertical-align: middle;\n border-top: 4px dashed;\n border-top: 4px solid \\9;\n border-right: 4px solid transparent;\n border-left: 4px solid transparent;\n}\n.dropup,\n.dropdown {\n position: relative;\n}\n.dropdown-toggle:focus {\n outline: 0;\n}\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 160px;\n padding: 5px 0;\n margin: 2px 0 0;\n list-style: none;\n font-size: 14px;\n text-align: left;\n background-color: #ffffff;\n border: 1px solid #cccccc;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 4px;\n -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n background-clip: padding-box;\n}\n.dropdown-menu.pull-right {\n right: 0;\n left: auto;\n}\n.dropdown-menu .divider {\n height: 1px;\n margin: 9px 0;\n overflow: hidden;\n background-color: #e5e5e5;\n}\n.dropdown-menu > li > a {\n display: block;\n padding: 3px 20px;\n clear: both;\n font-weight: normal;\n line-height: 1.42857143;\n color: #333333;\n white-space: nowrap;\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n text-decoration: none;\n color: #262626;\n background-color: #f5f5f5;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n color: #ffffff;\n text-decoration: none;\n outline: 0;\n background-color: #337ab7;\n}\n.dropdown-menu > .disabled > a,\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n color: #777777;\n}\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n text-decoration: none;\n background-color: transparent;\n background-image: none;\n filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n cursor: not-allowed;\n}\n.open > .dropdown-menu {\n display: block;\n}\n.open > a {\n outline: 0;\n}\n.dropdown-menu-right {\n left: auto;\n right: 0;\n}\n.dropdown-menu-left {\n left: 0;\n right: auto;\n}\n.dropdown-header {\n display: block;\n padding: 3px 20px;\n font-size: 12px;\n line-height: 1.42857143;\n color: #777777;\n white-space: nowrap;\n}\n.dropdown-backdrop {\n position: fixed;\n left: 0;\n right: 0;\n bottom: 0;\n top: 0;\n z-index: 990;\n}\n.pull-right > .dropdown-menu {\n right: 0;\n left: auto;\n}\n.dropup .caret,\n.navbar-fixed-bottom .dropdown .caret {\n border-top: 0;\n border-bottom: 4px dashed;\n border-bottom: 4px solid \\9;\n content: \"\";\n}\n.dropup .dropdown-menu,\n.navbar-fixed-bottom .dropdown .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-bottom: 2px;\n}\n@media (min-width: 768px) {\n .navbar-right .dropdown-menu {\n left: auto;\n right: 0;\n }\n .navbar-right .dropdown-menu-left {\n left: 0;\n right: auto;\n }\n}\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-block;\n vertical-align: middle;\n}\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n float: left;\n}\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover,\n.btn-group > .btn:focus,\n.btn-group-vertical > .btn:focus,\n.btn-group > .btn:active,\n.btn-group-vertical > .btn:active,\n.btn-group > .btn.active,\n.btn-group-vertical > .btn.active {\n z-index: 2;\n}\n.btn-group .btn + .btn,\n.btn-group .btn + .btn-group,\n.btn-group .btn-group + .btn,\n.btn-group .btn-group + .btn-group {\n margin-left: -1px;\n}\n.btn-toolbar {\n margin-left: -5px;\n}\n.btn-toolbar .btn,\n.btn-toolbar .btn-group,\n.btn-toolbar .input-group {\n float: left;\n}\n.btn-toolbar > .btn,\n.btn-toolbar > .btn-group,\n.btn-toolbar > .input-group {\n margin-left: 5px;\n}\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n border-radius: 0;\n}\n.btn-group > .btn:first-child {\n margin-left: 0;\n}\n.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n}\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n}\n.btn-group > .btn-group {\n float: left;\n}\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n}\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n}\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n outline: 0;\n}\n.btn-group > .btn + .dropdown-toggle {\n padding-left: 8px;\n padding-right: 8px;\n}\n.btn-group > .btn-lg + .dropdown-toggle {\n padding-left: 12px;\n padding-right: 12px;\n}\n.btn-group.open .dropdown-toggle {\n -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn-group.open .dropdown-toggle.btn-link {\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.btn .caret {\n margin-left: 0;\n}\n.btn-lg .caret {\n border-width: 5px 5px 0;\n border-bottom-width: 0;\n}\n.dropup .btn-lg .caret {\n border-width: 0 5px 5px;\n}\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group,\n.btn-group-vertical > .btn-group > .btn {\n display: block;\n float: none;\n width: 100%;\n max-width: 100%;\n}\n.btn-group-vertical > .btn-group > .btn {\n float: none;\n}\n.btn-group-vertical > .btn + .btn,\n.btn-group-vertical > .btn + .btn-group,\n.btn-group-vertical > .btn-group + .btn,\n.btn-group-vertical > .btn-group + .btn-group {\n margin-top: -1px;\n margin-left: 0;\n}\n.btn-group-vertical > .btn:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.btn-group-vertical > .btn:first-child:not(:last-child) {\n border-top-right-radius: 4px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn:last-child:not(:first-child) {\n border-bottom-left-radius: 4px;\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n border-radius: 0;\n}\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.btn-group-justified {\n display: table;\n width: 100%;\n table-layout: fixed;\n border-collapse: separate;\n}\n.btn-group-justified > .btn,\n.btn-group-justified > .btn-group {\n float: none;\n display: table-cell;\n width: 1%;\n}\n.btn-group-justified > .btn-group .btn {\n width: 100%;\n}\n.btn-group-justified > .btn-group .dropdown-menu {\n left: auto;\n}\n[data-toggle=\"buttons\"] > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn input[type=\"checkbox\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n.input-group {\n position: relative;\n display: table;\n border-collapse: separate;\n}\n.input-group[class*=\"col-\"] {\n float: none;\n padding-left: 0;\n padding-right: 0;\n}\n.input-group .form-control {\n position: relative;\n z-index: 2;\n float: left;\n width: 100%;\n margin-bottom: 0;\n}\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n height: 46px;\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n border-radius: 6px;\n}\nselect.input-group-lg > .form-control,\nselect.input-group-lg > .input-group-addon,\nselect.input-group-lg > .input-group-btn > .btn {\n height: 46px;\n line-height: 46px;\n}\ntextarea.input-group-lg > .form-control,\ntextarea.input-group-lg > .input-group-addon,\ntextarea.input-group-lg > .input-group-btn > .btn,\nselect[multiple].input-group-lg > .form-control,\nselect[multiple].input-group-lg > .input-group-addon,\nselect[multiple].input-group-lg > .input-group-btn > .btn {\n height: auto;\n}\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n height: 30px;\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n border-radius: 3px;\n}\nselect.input-group-sm > .form-control,\nselect.input-group-sm > .input-group-addon,\nselect.input-group-sm > .input-group-btn > .btn {\n height: 30px;\n line-height: 30px;\n}\ntextarea.input-group-sm > .form-control,\ntextarea.input-group-sm > .input-group-addon,\ntextarea.input-group-sm > .input-group-btn > .btn,\nselect[multiple].input-group-sm > .form-control,\nselect[multiple].input-group-sm > .input-group-addon,\nselect[multiple].input-group-sm > .input-group-btn > .btn {\n height: auto;\n}\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n display: table-cell;\n}\n.input-group-addon:not(:first-child):not(:last-child),\n.input-group-btn:not(:first-child):not(:last-child),\n.input-group .form-control:not(:first-child):not(:last-child) {\n border-radius: 0;\n}\n.input-group-addon,\n.input-group-btn {\n width: 1%;\n white-space: nowrap;\n vertical-align: middle;\n}\n.input-group-addon {\n padding: 6px 12px;\n font-size: 14px;\n font-weight: normal;\n line-height: 1;\n color: #555555;\n text-align: center;\n background-color: #eeeeee;\n border: 1px solid #cccccc;\n border-radius: 4px;\n}\n.input-group-addon.input-sm {\n padding: 5px 10px;\n font-size: 12px;\n border-radius: 3px;\n}\n.input-group-addon.input-lg {\n padding: 10px 16px;\n font-size: 18px;\n border-radius: 6px;\n}\n.input-group-addon input[type=\"radio\"],\n.input-group-addon input[type=\"checkbox\"] {\n margin-top: 0;\n}\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n}\n.input-group-addon:first-child {\n border-right: 0;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n}\n.input-group-addon:last-child {\n border-left: 0;\n}\n.input-group-btn {\n position: relative;\n font-size: 0;\n white-space: nowrap;\n}\n.input-group-btn > .btn {\n position: relative;\n}\n.input-group-btn > .btn + .btn {\n margin-left: -1px;\n}\n.input-group-btn > .btn:hover,\n.input-group-btn > .btn:focus,\n.input-group-btn > .btn:active {\n z-index: 2;\n}\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group {\n margin-right: -1px;\n}\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group {\n z-index: 2;\n margin-left: -1px;\n}\n.nav {\n margin-bottom: 0;\n padding-left: 0;\n list-style: none;\n}\n.nav > li {\n position: relative;\n display: block;\n}\n.nav > li > a {\n position: relative;\n display: block;\n padding: 10px 15px;\n}\n.nav > li > a:hover,\n.nav > li > a:focus {\n text-decoration: none;\n background-color: #eeeeee;\n}\n.nav > li.disabled > a {\n color: #777777;\n}\n.nav > li.disabled > a:hover,\n.nav > li.disabled > a:focus {\n color: #777777;\n text-decoration: none;\n background-color: transparent;\n cursor: not-allowed;\n}\n.nav .open > a,\n.nav .open > a:hover,\n.nav .open > a:focus {\n background-color: #eeeeee;\n border-color: #337ab7;\n}\n.nav .nav-divider {\n height: 1px;\n margin: 9px 0;\n overflow: hidden;\n background-color: #e5e5e5;\n}\n.nav > li > a > img {\n max-width: none;\n}\n.nav-tabs {\n border-bottom: 1px solid #dddddd;\n}\n.nav-tabs > li {\n float: left;\n margin-bottom: -1px;\n}\n.nav-tabs > li > a {\n margin-right: 2px;\n line-height: 1.42857143;\n border: 1px solid transparent;\n border-radius: 4px 4px 0 0;\n}\n.nav-tabs > li > a:hover {\n border-color: #eeeeee #eeeeee #dddddd;\n}\n.nav-tabs > li.active > a,\n.nav-tabs > li.active > a:hover,\n.nav-tabs > li.active > a:focus {\n color: #555555;\n background-color: #ffffff;\n border: 1px solid #dddddd;\n border-bottom-color: transparent;\n cursor: default;\n}\n.nav-tabs.nav-justified {\n width: 100%;\n border-bottom: 0;\n}\n.nav-tabs.nav-justified > li {\n float: none;\n}\n.nav-tabs.nav-justified > li > a {\n text-align: center;\n margin-bottom: 5px;\n}\n.nav-tabs.nav-justified > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n}\n@media (min-width: 768px) {\n .nav-tabs.nav-justified > li {\n display: table-cell;\n width: 1%;\n }\n .nav-tabs.nav-justified > li > a {\n margin-bottom: 0;\n }\n}\n.nav-tabs.nav-justified > li > a {\n margin-right: 0;\n border-radius: 4px;\n}\n.nav-tabs.nav-justified > .active > a,\n.nav-tabs.nav-justified > .active > a:hover,\n.nav-tabs.nav-justified > .active > a:focus {\n border: 1px solid #dddddd;\n}\n@media (min-width: 768px) {\n .nav-tabs.nav-justified > li > a {\n border-bottom: 1px solid #dddddd;\n border-radius: 4px 4px 0 0;\n }\n .nav-tabs.nav-justified > .active > a,\n .nav-tabs.nav-justified > .active > a:hover,\n .nav-tabs.nav-justified > .active > a:focus {\n border-bottom-color: #ffffff;\n }\n}\n.nav-pills > li {\n float: left;\n}\n.nav-pills > li > a {\n border-radius: 4px;\n}\n.nav-pills > li + li {\n margin-left: 2px;\n}\n.nav-pills > li.active > a,\n.nav-pills > li.active > a:hover,\n.nav-pills > li.active > a:focus {\n color: #ffffff;\n background-color: #337ab7;\n}\n.nav-stacked > li {\n float: none;\n}\n.nav-stacked > li + li {\n margin-top: 2px;\n margin-left: 0;\n}\n.nav-justified {\n width: 100%;\n}\n.nav-justified > li {\n float: none;\n}\n.nav-justified > li > a {\n text-align: center;\n margin-bottom: 5px;\n}\n.nav-justified > .dropdown .dropdown-menu {\n top: auto;\n left: auto;\n}\n@media (min-width: 768px) {\n .nav-justified > li {\n display: table-cell;\n width: 1%;\n }\n .nav-justified > li > a {\n margin-bottom: 0;\n }\n}\n.nav-tabs-justified {\n border-bottom: 0;\n}\n.nav-tabs-justified > li > a {\n margin-right: 0;\n border-radius: 4px;\n}\n.nav-tabs-justified > .active > a,\n.nav-tabs-justified > .active > a:hover,\n.nav-tabs-justified > .active > a:focus {\n border: 1px solid #dddddd;\n}\n@media (min-width: 768px) {\n .nav-tabs-justified > li > a {\n border-bottom: 1px solid #dddddd;\n border-radius: 4px 4px 0 0;\n }\n .nav-tabs-justified > .active > a,\n .nav-tabs-justified > .active > a:hover,\n .nav-tabs-justified > .active > a:focus {\n border-bottom-color: #ffffff;\n }\n}\n.tab-content > .tab-pane {\n display: none;\n}\n.tab-content > .active {\n display: block;\n}\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.navbar {\n position: relative;\n min-height: 50px;\n margin-bottom: 20px;\n border: 1px solid transparent;\n}\n@media (min-width: 768px) {\n .navbar {\n border-radius: 4px;\n }\n}\n@media (min-width: 768px) {\n .navbar-header {\n float: left;\n }\n}\n.navbar-collapse {\n overflow-x: visible;\n padding-right: 15px;\n padding-left: 15px;\n border-top: 1px solid transparent;\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);\n -webkit-overflow-scrolling: touch;\n}\n.navbar-collapse.in {\n overflow-y: auto;\n}\n@media (min-width: 768px) {\n .navbar-collapse {\n width: auto;\n border-top: 0;\n box-shadow: none;\n }\n .navbar-collapse.collapse {\n display: block !important;\n height: auto !important;\n padding-bottom: 0;\n overflow: visible !important;\n }\n .navbar-collapse.in {\n overflow-y: visible;\n }\n .navbar-fixed-top .navbar-collapse,\n .navbar-static-top .navbar-collapse,\n .navbar-fixed-bottom .navbar-collapse {\n padding-left: 0;\n padding-right: 0;\n }\n}\n.navbar-fixed-top .navbar-collapse,\n.navbar-fixed-bottom .navbar-collapse {\n max-height: 340px;\n}\n@media (max-device-width: 480px) and (orientation: landscape) {\n .navbar-fixed-top .navbar-collapse,\n .navbar-fixed-bottom .navbar-collapse {\n max-height: 200px;\n }\n}\n.container > .navbar-header,\n.container-fluid > .navbar-header,\n.container > .navbar-collapse,\n.container-fluid > .navbar-collapse {\n margin-right: -15px;\n margin-left: -15px;\n}\n@media (min-width: 768px) {\n .container > .navbar-header,\n .container-fluid > .navbar-header,\n .container > .navbar-collapse,\n .container-fluid > .navbar-collapse {\n margin-right: 0;\n margin-left: 0;\n }\n}\n.navbar-static-top {\n z-index: 1000;\n border-width: 0 0 1px;\n}\n@media (min-width: 768px) {\n .navbar-static-top {\n border-radius: 0;\n }\n}\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n position: fixed;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n@media (min-width: 768px) {\n .navbar-fixed-top,\n .navbar-fixed-bottom {\n border-radius: 0;\n }\n}\n.navbar-fixed-top {\n top: 0;\n border-width: 0 0 1px;\n}\n.navbar-fixed-bottom {\n bottom: 0;\n margin-bottom: 0;\n border-width: 1px 0 0;\n}\n.navbar-brand {\n float: left;\n padding: 15px 15px;\n font-size: 18px;\n line-height: 20px;\n height: 50px;\n}\n.navbar-brand:hover,\n.navbar-brand:focus {\n text-decoration: none;\n}\n.navbar-brand > img {\n display: block;\n}\n@media (min-width: 768px) {\n .navbar > .container .navbar-brand,\n .navbar > .container-fluid .navbar-brand {\n margin-left: -15px;\n }\n}\n.navbar-toggle {\n position: relative;\n float: right;\n margin-right: 15px;\n padding: 9px 10px;\n margin-top: 8px;\n margin-bottom: 8px;\n background-color: transparent;\n background-image: none;\n border: 1px solid transparent;\n border-radius: 4px;\n}\n.navbar-toggle:focus {\n outline: 0;\n}\n.navbar-toggle .icon-bar {\n display: block;\n width: 22px;\n height: 2px;\n border-radius: 1px;\n}\n.navbar-toggle .icon-bar + .icon-bar {\n margin-top: 4px;\n}\n@media (min-width: 768px) {\n .navbar-toggle {\n display: none;\n }\n}\n.navbar-nav {\n margin: 7.5px -15px;\n}\n.navbar-nav > li > a {\n padding-top: 10px;\n padding-bottom: 10px;\n line-height: 20px;\n}\n@media (max-width: 767px) {\n .navbar-nav .open .dropdown-menu {\n position: static;\n float: none;\n width: auto;\n margin-top: 0;\n background-color: transparent;\n border: 0;\n box-shadow: none;\n }\n .navbar-nav .open .dropdown-menu > li > a,\n .navbar-nav .open .dropdown-menu .dropdown-header {\n padding: 5px 15px 5px 25px;\n }\n .navbar-nav .open .dropdown-menu > li > a {\n line-height: 20px;\n }\n .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-nav .open .dropdown-menu > li > a:focus {\n background-image: none;\n }\n}\n@media (min-width: 768px) {\n .navbar-nav {\n float: left;\n margin: 0;\n }\n .navbar-nav > li {\n float: left;\n }\n .navbar-nav > li > a {\n padding-top: 15px;\n padding-bottom: 15px;\n }\n}\n.navbar-form {\n margin-left: -15px;\n margin-right: -15px;\n padding: 10px 15px;\n border-top: 1px solid transparent;\n border-bottom: 1px solid transparent;\n -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n margin-top: 8px;\n margin-bottom: 8px;\n}\n@media (min-width: 768px) {\n .navbar-form .form-group {\n display: inline-block;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .navbar-form .form-control-static {\n display: inline-block;\n }\n .navbar-form .input-group {\n display: inline-table;\n vertical-align: middle;\n }\n .navbar-form .input-group .input-group-addon,\n .navbar-form .input-group .input-group-btn,\n .navbar-form .input-group .form-control {\n width: auto;\n }\n .navbar-form .input-group > .form-control {\n width: 100%;\n }\n .navbar-form .control-label {\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .radio,\n .navbar-form .checkbox {\n display: inline-block;\n margin-top: 0;\n margin-bottom: 0;\n vertical-align: middle;\n }\n .navbar-form .radio label,\n .navbar-form .checkbox label {\n padding-left: 0;\n }\n .navbar-form .radio input[type=\"radio\"],\n .navbar-form .checkbox input[type=\"checkbox\"] {\n position: relative;\n margin-left: 0;\n }\n .navbar-form .has-feedback .form-control-feedback {\n top: 0;\n }\n}\n@media (max-width: 767px) {\n .navbar-form .form-group {\n margin-bottom: 5px;\n }\n .navbar-form .form-group:last-child {\n margin-bottom: 0;\n }\n}\n@media (min-width: 768px) {\n .navbar-form {\n width: auto;\n border: 0;\n margin-left: 0;\n margin-right: 0;\n padding-top: 0;\n padding-bottom: 0;\n -webkit-box-shadow: none;\n box-shadow: none;\n }\n}\n.navbar-nav > li > .dropdown-menu {\n margin-top: 0;\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n margin-bottom: 0;\n border-top-right-radius: 4px;\n border-top-left-radius: 4px;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n.navbar-btn {\n margin-top: 8px;\n margin-bottom: 8px;\n}\n.navbar-btn.btn-sm {\n margin-top: 10px;\n margin-bottom: 10px;\n}\n.navbar-btn.btn-xs {\n margin-top: 14px;\n margin-bottom: 14px;\n}\n.navbar-text {\n margin-top: 15px;\n margin-bottom: 15px;\n}\n@media (min-width: 768px) {\n .navbar-text {\n float: left;\n margin-left: 15px;\n margin-right: 15px;\n }\n}\n@media (min-width: 768px) {\n .navbar-left {\n float: left !important;\n }\n .navbar-right {\n float: right !important;\n margin-right: -15px;\n }\n .navbar-right ~ .navbar-right {\n margin-right: 0;\n }\n}\n.navbar-default {\n background-color: #f8f8f8;\n border-color: #e7e7e7;\n}\n.navbar-default .navbar-brand {\n color: #777777;\n}\n.navbar-default .navbar-brand:hover,\n.navbar-default .navbar-brand:focus {\n color: #5e5e5e;\n background-color: transparent;\n}\n.navbar-default .navbar-text {\n color: #777777;\n}\n.navbar-default .navbar-nav > li > a {\n color: #777777;\n}\n.navbar-default .navbar-nav > li > a:hover,\n.navbar-default .navbar-nav > li > a:focus {\n color: #333333;\n background-color: transparent;\n}\n.navbar-default .navbar-nav > .active > a,\n.navbar-default .navbar-nav > .active > a:hover,\n.navbar-default .navbar-nav > .active > a:focus {\n color: #555555;\n background-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .disabled > a,\n.navbar-default .navbar-nav > .disabled > a:hover,\n.navbar-default .navbar-nav > .disabled > a:focus {\n color: #cccccc;\n background-color: transparent;\n}\n.navbar-default .navbar-toggle {\n border-color: #dddddd;\n}\n.navbar-default .navbar-toggle:hover,\n.navbar-default .navbar-toggle:focus {\n background-color: #dddddd;\n}\n.navbar-default .navbar-toggle .icon-bar {\n background-color: #888888;\n}\n.navbar-default .navbar-collapse,\n.navbar-default .navbar-form {\n border-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .open > a:hover,\n.navbar-default .navbar-nav > .open > a:focus {\n background-color: #e7e7e7;\n color: #555555;\n}\n@media (max-width: 767px) {\n .navbar-default .navbar-nav .open .dropdown-menu > li > a {\n color: #777777;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #333333;\n background-color: transparent;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a,\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #555555;\n background-color: #e7e7e7;\n }\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n color: #cccccc;\n background-color: transparent;\n }\n}\n.navbar-default .navbar-link {\n color: #777777;\n}\n.navbar-default .navbar-link:hover {\n color: #333333;\n}\n.navbar-default .btn-link {\n color: #777777;\n}\n.navbar-default .btn-link:hover,\n.navbar-default .btn-link:focus {\n color: #333333;\n}\n.navbar-default .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-default .btn-link:hover,\n.navbar-default .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-default .btn-link:focus {\n color: #cccccc;\n}\n.navbar-inverse {\n background-color: #222222;\n border-color: #080808;\n}\n.navbar-inverse .navbar-brand {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-brand:hover,\n.navbar-inverse .navbar-brand:focus {\n color: #ffffff;\n background-color: transparent;\n}\n.navbar-inverse .navbar-text {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a:hover,\n.navbar-inverse .navbar-nav > li > a:focus {\n color: #ffffff;\n background-color: transparent;\n}\n.navbar-inverse .navbar-nav > .active > a,\n.navbar-inverse .navbar-nav > .active > a:hover,\n.navbar-inverse .navbar-nav > .active > a:focus {\n color: #ffffff;\n background-color: #080808;\n}\n.navbar-inverse .navbar-nav > .disabled > a,\n.navbar-inverse .navbar-nav > .disabled > a:hover,\n.navbar-inverse .navbar-nav > .disabled > a:focus {\n color: #444444;\n background-color: transparent;\n}\n.navbar-inverse .navbar-toggle {\n border-color: #333333;\n}\n.navbar-inverse .navbar-toggle:hover,\n.navbar-inverse .navbar-toggle:focus {\n background-color: #333333;\n}\n.navbar-inverse .navbar-toggle .icon-bar {\n background-color: #ffffff;\n}\n.navbar-inverse .navbar-collapse,\n.navbar-inverse .navbar-form {\n border-color: #101010;\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .open > a:hover,\n.navbar-inverse .navbar-nav > .open > a:focus {\n background-color: #080808;\n color: #ffffff;\n}\n@media (max-width: 767px) {\n .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {\n border-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu .divider {\n background-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {\n color: #9d9d9d;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {\n color: #ffffff;\n background-color: transparent;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {\n color: #ffffff;\n background-color: #080808;\n }\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n color: #444444;\n background-color: transparent;\n }\n}\n.navbar-inverse .navbar-link {\n color: #9d9d9d;\n}\n.navbar-inverse .navbar-link:hover {\n color: #ffffff;\n}\n.navbar-inverse .btn-link {\n color: #9d9d9d;\n}\n.navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link:focus {\n color: #ffffff;\n}\n.navbar-inverse .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-inverse .btn-link:focus {\n color: #444444;\n}\n.breadcrumb {\n padding: 8px 15px;\n margin-bottom: 20px;\n list-style: none;\n background-color: #f5f5f5;\n border-radius: 4px;\n}\n.breadcrumb > li {\n display: inline-block;\n}\n.breadcrumb > li + li:before {\n content: \"/\\00a0\";\n padding: 0 5px;\n color: #cccccc;\n}\n.breadcrumb > .active {\n color: #777777;\n}\n.pagination {\n display: inline-block;\n padding-left: 0;\n margin: 20px 0;\n border-radius: 4px;\n}\n.pagination > li {\n display: inline;\n}\n.pagination > li > a,\n.pagination > li > span {\n position: relative;\n float: left;\n padding: 6px 12px;\n line-height: 1.42857143;\n text-decoration: none;\n color: #337ab7;\n background-color: #ffffff;\n border: 1px solid #dddddd;\n margin-left: -1px;\n}\n.pagination > li:first-child > a,\n.pagination > li:first-child > span {\n margin-left: 0;\n border-bottom-left-radius: 4px;\n border-top-left-radius: 4px;\n}\n.pagination > li:last-child > a,\n.pagination > li:last-child > span {\n border-bottom-right-radius: 4px;\n border-top-right-radius: 4px;\n}\n.pagination > li > a:hover,\n.pagination > li > span:hover,\n.pagination > li > a:focus,\n.pagination > li > span:focus {\n z-index: 3;\n color: #23527c;\n background-color: #eeeeee;\n border-color: #dddddd;\n}\n.pagination > .active > a,\n.pagination > .active > span,\n.pagination > .active > a:hover,\n.pagination > .active > span:hover,\n.pagination > .active > a:focus,\n.pagination > .active > span:focus {\n z-index: 2;\n color: #ffffff;\n background-color: #337ab7;\n border-color: #337ab7;\n cursor: default;\n}\n.pagination > .disabled > span,\n.pagination > .disabled > span:hover,\n.pagination > .disabled > span:focus,\n.pagination > .disabled > a,\n.pagination > .disabled > a:hover,\n.pagination > .disabled > a:focus {\n color: #777777;\n background-color: #ffffff;\n border-color: #dddddd;\n cursor: not-allowed;\n}\n.pagination-lg > li > a,\n.pagination-lg > li > span {\n padding: 10px 16px;\n font-size: 18px;\n line-height: 1.3333333;\n}\n.pagination-lg > li:first-child > a,\n.pagination-lg > li:first-child > span {\n border-bottom-left-radius: 6px;\n border-top-left-radius: 6px;\n}\n.pagination-lg > li:last-child > a,\n.pagination-lg > li:last-child > span {\n border-bottom-right-radius: 6px;\n border-top-right-radius: 6px;\n}\n.pagination-sm > li > a,\n.pagination-sm > li > span {\n padding: 5px 10px;\n font-size: 12px;\n line-height: 1.5;\n}\n.pagination-sm > li:first-child > a,\n.pagination-sm > li:first-child > span {\n border-bottom-left-radius: 3px;\n border-top-left-radius: 3px;\n}\n.pagination-sm > li:last-child > a,\n.pagination-sm > li:last-child > span {\n border-bottom-right-radius: 3px;\n border-top-right-radius: 3px;\n}\n.pager {\n padding-left: 0;\n margin: 20px 0;\n list-style: none;\n text-align: center;\n}\n.pager li {\n display: inline;\n}\n.pager li > a,\n.pager li > span {\n display: inline-block;\n padding: 5px 14px;\n background-color: #ffffff;\n border: 1px solid #dddddd;\n border-radius: 15px;\n}\n.pager li > a:hover,\n.pager li > a:focus {\n text-decoration: none;\n background-color: #eeeeee;\n}\n.pager .next > a,\n.pager .next > span {\n float: right;\n}\n.pager .previous > a,\n.pager .previous > span {\n float: left;\n}\n.pager .disabled > a,\n.pager .disabled > a:hover,\n.pager .disabled > a:focus,\n.pager .disabled > span {\n color: #777777;\n background-color: #ffffff;\n cursor: not-allowed;\n}\n.label {\n display: inline;\n padding: .2em .6em .3em;\n font-size: 75%;\n font-weight: bold;\n line-height: 1;\n color: #ffffff;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: .25em;\n}\na.label:hover,\na.label:focus {\n color: #ffffff;\n text-decoration: none;\n cursor: pointer;\n}\n.label:empty {\n display: none;\n}\n.btn .label {\n position: relative;\n top: -1px;\n}\n.label-default {\n background-color: #777777;\n}\n.label-default[href]:hover,\n.label-default[href]:focus {\n background-color: #5e5e5e;\n}\n.label-primary {\n background-color: #337ab7;\n}\n.label-primary[href]:hover,\n.label-primary[href]:focus {\n background-color: #286090;\n}\n.label-success {\n background-color: #5cb85c;\n}\n.label-success[href]:hover,\n.label-success[href]:focus {\n background-color: #449d44;\n}\n.label-info {\n background-color: #5bc0de;\n}\n.label-info[href]:hover,\n.label-info[href]:focus {\n background-color: #31b0d5;\n}\n.label-warning {\n background-color: #f0ad4e;\n}\n.label-warning[href]:hover,\n.label-warning[href]:focus {\n background-color: #ec971f;\n}\n.label-danger {\n background-color: #d9534f;\n}\n.label-danger[href]:hover,\n.label-danger[href]:focus {\n background-color: #c9302c;\n}\n.badge {\n display: inline-block;\n min-width: 10px;\n padding: 3px 7px;\n font-size: 12px;\n font-weight: bold;\n color: #ffffff;\n line-height: 1;\n vertical-align: middle;\n white-space: nowrap;\n text-align: center;\n background-color: #777777;\n border-radius: 10px;\n}\n.badge:empty {\n display: none;\n}\n.btn .badge {\n position: relative;\n top: -1px;\n}\n.btn-xs .badge,\n.btn-group-xs > .btn .badge {\n top: 0;\n padding: 1px 5px;\n}\na.badge:hover,\na.badge:focus {\n color: #ffffff;\n text-decoration: none;\n cursor: pointer;\n}\n.list-group-item.active > .badge,\n.nav-pills > .active > a > .badge {\n color: #337ab7;\n background-color: #ffffff;\n}\n.list-group-item > .badge {\n float: right;\n}\n.list-group-item > .badge + .badge {\n margin-right: 5px;\n}\n.nav-pills > li > a > .badge {\n margin-left: 3px;\n}\n.jumbotron {\n padding-top: 30px;\n padding-bottom: 30px;\n margin-bottom: 30px;\n color: inherit;\n background-color: #eeeeee;\n}\n.jumbotron h1,\n.jumbotron .h1 {\n color: inherit;\n}\n.jumbotron p {\n margin-bottom: 15px;\n font-size: 21px;\n font-weight: 200;\n}\n.jumbotron > hr {\n border-top-color: #d5d5d5;\n}\n.container .jumbotron,\n.container-fluid .jumbotron {\n border-radius: 6px;\n}\n.jumbotron .container {\n max-width: 100%;\n}\n@media screen and (min-width: 768px) {\n .jumbotron {\n padding-top: 48px;\n padding-bottom: 48px;\n }\n .container .jumbotron,\n .container-fluid .jumbotron {\n padding-left: 60px;\n padding-right: 60px;\n }\n .jumbotron h1,\n .jumbotron .h1 {\n font-size: 63px;\n }\n}\n.thumbnail {\n display: block;\n padding: 4px;\n margin-bottom: 20px;\n line-height: 1.42857143;\n background-color: #ffffff;\n border: 1px solid #dddddd;\n border-radius: 4px;\n -webkit-transition: border 0.2s ease-in-out;\n -o-transition: border 0.2s ease-in-out;\n transition: border 0.2s ease-in-out;\n}\n.thumbnail > img,\n.thumbnail a > img {\n margin-left: auto;\n margin-right: auto;\n}\na.thumbnail:hover,\na.thumbnail:focus,\na.thumbnail.active {\n border-color: #337ab7;\n}\n.thumbnail .caption {\n padding: 9px;\n color: #333333;\n}\n.alert {\n padding: 15px;\n margin-bottom: 20px;\n border: 1px solid transparent;\n border-radius: 4px;\n}\n.alert h4 {\n margin-top: 0;\n color: inherit;\n}\n.alert .alert-link {\n font-weight: bold;\n}\n.alert > p,\n.alert > ul {\n margin-bottom: 0;\n}\n.alert > p + p {\n margin-top: 5px;\n}\n.alert-dismissable,\n.alert-dismissible {\n padding-right: 35px;\n}\n.alert-dismissable .close,\n.alert-dismissible .close {\n position: relative;\n top: -2px;\n right: -21px;\n color: inherit;\n}\n.alert-success {\n background-color: #dff0d8;\n border-color: #d6e9c6;\n color: #3c763d;\n}\n.alert-success hr {\n border-top-color: #c9e2b3;\n}\n.alert-success .alert-link {\n color: #2b542c;\n}\n.alert-info {\n background-color: #d9edf7;\n border-color: #bce8f1;\n color: #31708f;\n}\n.alert-info hr {\n border-top-color: #a6e1ec;\n}\n.alert-info .alert-link {\n color: #245269;\n}\n.alert-warning {\n background-color: #fcf8e3;\n border-color: #faebcc;\n color: #8a6d3b;\n}\n.alert-warning hr {\n border-top-color: #f7e1b5;\n}\n.alert-warning .alert-link {\n color: #66512c;\n}\n.alert-danger {\n background-color: #f2dede;\n border-color: #ebccd1;\n color: #a94442;\n}\n.alert-danger hr {\n border-top-color: #e4b9c0;\n}\n.alert-danger .alert-link {\n color: #843534;\n}\n@-webkit-keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n@keyframes progress-bar-stripes {\n from {\n background-position: 40px 0;\n }\n to {\n background-position: 0 0;\n }\n}\n.progress {\n overflow: hidden;\n height: 20px;\n margin-bottom: 20px;\n background-color: #f5f5f5;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n.progress-bar {\n float: left;\n width: 0%;\n height: 100%;\n font-size: 12px;\n line-height: 20px;\n color: #ffffff;\n text-align: center;\n background-color: #337ab7;\n -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n -webkit-transition: width 0.6s ease;\n -o-transition: width 0.6s ease;\n transition: width 0.6s ease;\n}\n.progress-striped .progress-bar,\n.progress-bar-striped {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 40px 40px;\n}\n.progress.active .progress-bar,\n.progress-bar.active {\n -webkit-animation: progress-bar-stripes 2s linear infinite;\n -o-animation: progress-bar-stripes 2s linear infinite;\n animation: progress-bar-stripes 2s linear infinite;\n}\n.progress-bar-success {\n background-color: #5cb85c;\n}\n.progress-striped .progress-bar-success {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-info {\n background-color: #5bc0de;\n}\n.progress-striped .progress-bar-info {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-warning {\n background-color: #f0ad4e;\n}\n.progress-striped .progress-bar-warning {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-danger {\n background-color: #d9534f;\n}\n.progress-striped .progress-bar-danger {\n background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.media {\n margin-top: 15px;\n}\n.media:first-child {\n margin-top: 0;\n}\n.media,\n.media-body {\n zoom: 1;\n overflow: hidden;\n}\n.media-body {\n width: 10000px;\n}\n.media-object {\n display: block;\n}\n.media-object.img-thumbnail {\n max-width: none;\n}\n.media-right,\n.media > .pull-right {\n padding-left: 10px;\n}\n.media-left,\n.media > .pull-left {\n padding-right: 10px;\n}\n.media-left,\n.media-right,\n.media-body {\n display: table-cell;\n vertical-align: top;\n}\n.media-middle {\n vertical-align: middle;\n}\n.media-bottom {\n vertical-align: bottom;\n}\n.media-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.media-list {\n padding-left: 0;\n list-style: none;\n}\n.list-group {\n margin-bottom: 20px;\n padding-left: 0;\n}\n.list-group-item {\n position: relative;\n display: block;\n padding: 10px 15px;\n margin-bottom: -1px;\n background-color: #ffffff;\n border: 1px solid #dddddd;\n}\n.list-group-item:first-child {\n border-top-right-radius: 4px;\n border-top-left-radius: 4px;\n}\n.list-group-item:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 4px;\n border-bottom-left-radius: 4px;\n}\na.list-group-item,\nbutton.list-group-item {\n color: #555555;\n}\na.list-group-item .list-group-item-heading,\nbutton.list-group-item .list-group-item-heading {\n color: #333333;\n}\na.list-group-item:hover,\nbutton.list-group-item:hover,\na.list-group-item:focus,\nbutton.list-group-item:focus {\n text-decoration: none;\n color: #555555;\n background-color: #f5f5f5;\n}\nbutton.list-group-item {\n width: 100%;\n text-align: left;\n}\n.list-group-item.disabled,\n.list-group-item.disabled:hover,\n.list-group-item.disabled:focus {\n background-color: #eeeeee;\n color: #777777;\n cursor: not-allowed;\n}\n.list-group-item.disabled .list-group-item-heading,\n.list-group-item.disabled:hover .list-group-item-heading,\n.list-group-item.disabled:focus .list-group-item-heading {\n color: inherit;\n}\n.list-group-item.disabled .list-group-item-text,\n.list-group-item.disabled:hover .list-group-item-text,\n.list-group-item.disabled:focus .list-group-item-text {\n color: #777777;\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n z-index: 2;\n color: #ffffff;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.list-group-item.active .list-group-item-heading,\n.list-group-item.active:hover .list-group-item-heading,\n.list-group-item.active:focus .list-group-item-heading,\n.list-group-item.active .list-group-item-heading > small,\n.list-group-item.active:hover .list-group-item-heading > small,\n.list-group-item.active:focus .list-group-item-heading > small,\n.list-group-item.active .list-group-item-heading > .small,\n.list-group-item.active:hover .list-group-item-heading > .small,\n.list-group-item.active:focus .list-group-item-heading > .small {\n color: inherit;\n}\n.list-group-item.active .list-group-item-text,\n.list-group-item.active:hover .list-group-item-text,\n.list-group-item.active:focus .list-group-item-text {\n color: #c7ddef;\n}\n.list-group-item-success {\n color: #3c763d;\n background-color: #dff0d8;\n}\na.list-group-item-success,\nbutton.list-group-item-success {\n color: #3c763d;\n}\na.list-group-item-success .list-group-item-heading,\nbutton.list-group-item-success .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-success:hover,\nbutton.list-group-item-success:hover,\na.list-group-item-success:focus,\nbutton.list-group-item-success:focus {\n color: #3c763d;\n background-color: #d0e9c6;\n}\na.list-group-item-success.active,\nbutton.list-group-item-success.active,\na.list-group-item-success.active:hover,\nbutton.list-group-item-success.active:hover,\na.list-group-item-success.active:focus,\nbutton.list-group-item-success.active:focus {\n color: #fff;\n background-color: #3c763d;\n border-color: #3c763d;\n}\n.list-group-item-info {\n color: #31708f;\n background-color: #d9edf7;\n}\na.list-group-item-info,\nbutton.list-group-item-info {\n color: #31708f;\n}\na.list-group-item-info .list-group-item-heading,\nbutton.list-group-item-info .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-info:hover,\nbutton.list-group-item-info:hover,\na.list-group-item-info:focus,\nbutton.list-group-item-info:focus {\n color: #31708f;\n background-color: #c4e3f3;\n}\na.list-group-item-info.active,\nbutton.list-group-item-info.active,\na.list-group-item-info.active:hover,\nbutton.list-group-item-info.active:hover,\na.list-group-item-info.active:focus,\nbutton.list-group-item-info.active:focus {\n color: #fff;\n background-color: #31708f;\n border-color: #31708f;\n}\n.list-group-item-warning {\n color: #8a6d3b;\n background-color: #fcf8e3;\n}\na.list-group-item-warning,\nbutton.list-group-item-warning {\n color: #8a6d3b;\n}\na.list-group-item-warning .list-group-item-heading,\nbutton.list-group-item-warning .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-warning:hover,\nbutton.list-group-item-warning:hover,\na.list-group-item-warning:focus,\nbutton.list-group-item-warning:focus {\n color: #8a6d3b;\n background-color: #faf2cc;\n}\na.list-group-item-warning.active,\nbutton.list-group-item-warning.active,\na.list-group-item-warning.active:hover,\nbutton.list-group-item-warning.active:hover,\na.list-group-item-warning.active:focus,\nbutton.list-group-item-warning.active:focus {\n color: #fff;\n background-color: #8a6d3b;\n border-color: #8a6d3b;\n}\n.list-group-item-danger {\n color: #a94442;\n background-color: #f2dede;\n}\na.list-group-item-danger,\nbutton.list-group-item-danger {\n color: #a94442;\n}\na.list-group-item-danger .list-group-item-heading,\nbutton.list-group-item-danger .list-group-item-heading {\n color: inherit;\n}\na.list-group-item-danger:hover,\nbutton.list-group-item-danger:hover,\na.list-group-item-danger:focus,\nbutton.list-group-item-danger:focus {\n color: #a94442;\n background-color: #ebcccc;\n}\na.list-group-item-danger.active,\nbutton.list-group-item-danger.active,\na.list-group-item-danger.active:hover,\nbutton.list-group-item-danger.active:hover,\na.list-group-item-danger.active:focus,\nbutton.list-group-item-danger.active:focus {\n color: #fff;\n background-color: #a94442;\n border-color: #a94442;\n}\n.list-group-item-heading {\n margin-top: 0;\n margin-bottom: 5px;\n}\n.list-group-item-text {\n margin-bottom: 0;\n line-height: 1.3;\n}\n.panel {\n margin-bottom: 20px;\n background-color: #ffffff;\n border: 1px solid transparent;\n border-radius: 4px;\n -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.panel-body {\n padding: 15px;\n}\n.panel-heading {\n padding: 10px 15px;\n border-bottom: 1px solid transparent;\n border-top-right-radius: 3px;\n border-top-left-radius: 3px;\n}\n.panel-heading > .dropdown .dropdown-toggle {\n color: inherit;\n}\n.panel-title {\n margin-top: 0;\n margin-bottom: 0;\n font-size: 16px;\n color: inherit;\n}\n.panel-title > a,\n.panel-title > small,\n.panel-title > .small,\n.panel-title > small > a,\n.panel-title > .small > a {\n color: inherit;\n}\n.panel-footer {\n padding: 10px 15px;\n background-color: #f5f5f5;\n border-top: 1px solid #dddddd;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .list-group,\n.panel > .panel-collapse > .list-group {\n margin-bottom: 0;\n}\n.panel > .list-group .list-group-item,\n.panel > .panel-collapse > .list-group .list-group-item {\n border-width: 1px 0;\n border-radius: 0;\n}\n.panel > .list-group:first-child .list-group-item:first-child,\n.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {\n border-top: 0;\n border-top-right-radius: 3px;\n border-top-left-radius: 3px;\n}\n.panel > .list-group:last-child .list-group-item:last-child,\n.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {\n border-bottom: 0;\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n}\n.panel-heading + .list-group .list-group-item:first-child {\n border-top-width: 0;\n}\n.list-group + .panel-footer {\n border-top-width: 0;\n}\n.panel > .table,\n.panel > .table-responsive > .table,\n.panel > .panel-collapse > .table {\n margin-bottom: 0;\n}\n.panel > .table caption,\n.panel > .table-responsive > .table caption,\n.panel > .panel-collapse > .table caption {\n padding-left: 15px;\n padding-right: 15px;\n}\n.panel > .table:first-child,\n.panel > .table-responsive:first-child > .table:first-child {\n border-top-right-radius: 3px;\n border-top-left-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {\n border-top-left-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {\n border-top-right-radius: 3px;\n}\n.panel > .table:last-child,\n.panel > .table-responsive:last-child > .table:last-child {\n border-bottom-right-radius: 3px;\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {\n border-bottom-left-radius: 3px;\n border-bottom-right-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {\n border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {\n border-bottom-right-radius: 3px;\n}\n.panel > .panel-body + .table,\n.panel > .panel-body + .table-responsive,\n.panel > .table + .panel-body,\n.panel > .table-responsive + .panel-body {\n border-top: 1px solid #dddddd;\n}\n.panel > .table > tbody:first-child > tr:first-child th,\n.panel > .table > tbody:first-child > tr:first-child td {\n border-top: 0;\n}\n.panel > .table-bordered,\n.panel > .table-responsive > .table-bordered {\n border: 0;\n}\n.panel > .table-bordered > thead > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,\n.panel > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-bordered > thead > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,\n.panel > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-bordered > tfoot > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n border-left: 0;\n}\n.panel > .table-bordered > thead > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,\n.panel > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-bordered > thead > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,\n.panel > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-bordered > tfoot > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n border-right: 0;\n}\n.panel > .table-bordered > thead > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,\n.panel > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-bordered > thead > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,\n.panel > .table-bordered > tbody > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {\n border-bottom: 0;\n}\n.panel > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-bordered > tfoot > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {\n border-bottom: 0;\n}\n.panel > .table-responsive {\n border: 0;\n margin-bottom: 0;\n}\n.panel-group {\n margin-bottom: 20px;\n}\n.panel-group .panel {\n margin-bottom: 0;\n border-radius: 4px;\n}\n.panel-group .panel + .panel {\n margin-top: 5px;\n}\n.panel-group .panel-heading {\n border-bottom: 0;\n}\n.panel-group .panel-heading + .panel-collapse > .panel-body,\n.panel-group .panel-heading + .panel-collapse > .list-group {\n border-top: 1px solid #dddddd;\n}\n.panel-group .panel-footer {\n border-top: 0;\n}\n.panel-group .panel-footer + .panel-collapse .panel-body {\n border-bottom: 1px solid #dddddd;\n}\n.panel-default {\n border-color: #dddddd;\n}\n.panel-default > .panel-heading {\n color: #333333;\n background-color: #f5f5f5;\n border-color: #dddddd;\n}\n.panel-default > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #dddddd;\n}\n.panel-default > .panel-heading .badge {\n color: #f5f5f5;\n background-color: #333333;\n}\n.panel-default > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #dddddd;\n}\n.panel-primary {\n border-color: #337ab7;\n}\n.panel-primary > .panel-heading {\n color: #ffffff;\n background-color: #337ab7;\n border-color: #337ab7;\n}\n.panel-primary > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #337ab7;\n}\n.panel-primary > .panel-heading .badge {\n color: #337ab7;\n background-color: #ffffff;\n}\n.panel-primary > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #337ab7;\n}\n.panel-success {\n border-color: #d6e9c6;\n}\n.panel-success > .panel-heading {\n color: #3c763d;\n background-color: #dff0d8;\n border-color: #d6e9c6;\n}\n.panel-success > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #d6e9c6;\n}\n.panel-success > .panel-heading .badge {\n color: #dff0d8;\n background-color: #3c763d;\n}\n.panel-success > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #d6e9c6;\n}\n.panel-info {\n border-color: #bce8f1;\n}\n.panel-info > .panel-heading {\n color: #31708f;\n background-color: #d9edf7;\n border-color: #bce8f1;\n}\n.panel-info > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #bce8f1;\n}\n.panel-info > .panel-heading .badge {\n color: #d9edf7;\n background-color: #31708f;\n}\n.panel-info > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #bce8f1;\n}\n.panel-warning {\n border-color: #faebcc;\n}\n.panel-warning > .panel-heading {\n color: #8a6d3b;\n background-color: #fcf8e3;\n border-color: #faebcc;\n}\n.panel-warning > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #faebcc;\n}\n.panel-warning > .panel-heading .badge {\n color: #fcf8e3;\n background-color: #8a6d3b;\n}\n.panel-warning > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #faebcc;\n}\n.panel-danger {\n border-color: #ebccd1;\n}\n.panel-danger > .panel-heading {\n color: #a94442;\n background-color: #f2dede;\n border-color: #ebccd1;\n}\n.panel-danger > .panel-heading + .panel-collapse > .panel-body {\n border-top-color: #ebccd1;\n}\n.panel-danger > .panel-heading .badge {\n color: #f2dede;\n background-color: #a94442;\n}\n.panel-danger > .panel-footer + .panel-collapse > .panel-body {\n border-bottom-color: #ebccd1;\n}\n.embed-responsive {\n position: relative;\n display: block;\n height: 0;\n padding: 0;\n overflow: hidden;\n}\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n height: 100%;\n width: 100%;\n border: 0;\n}\n.embed-responsive-16by9 {\n padding-bottom: 56.25%;\n}\n.embed-responsive-4by3 {\n padding-bottom: 75%;\n}\n.well {\n min-height: 20px;\n padding: 19px;\n margin-bottom: 20px;\n background-color: #f5f5f5;\n border: 1px solid #e3e3e3;\n border-radius: 4px;\n -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.well blockquote {\n border-color: #ddd;\n border-color: rgba(0, 0, 0, 0.15);\n}\n.well-lg {\n padding: 24px;\n border-radius: 6px;\n}\n.well-sm {\n padding: 9px;\n border-radius: 3px;\n}\n.close {\n float: right;\n font-size: 21px;\n font-weight: bold;\n line-height: 1;\n color: #000000;\n text-shadow: 0 1px 0 #ffffff;\n opacity: 0.2;\n filter: alpha(opacity=20);\n}\n.close:hover,\n.close:focus {\n color: #000000;\n text-decoration: none;\n cursor: pointer;\n opacity: 0.5;\n filter: alpha(opacity=50);\n}\nbutton.close {\n padding: 0;\n cursor: pointer;\n background: transparent;\n border: 0;\n -webkit-appearance: none;\n}\n.modal-open {\n overflow: hidden;\n}\n.modal {\n display: none;\n overflow: hidden;\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1050;\n -webkit-overflow-scrolling: touch;\n outline: 0;\n}\n.modal.fade .modal-dialog {\n -webkit-transform: translate(0, -25%);\n -ms-transform: translate(0, -25%);\n -o-transform: translate(0, -25%);\n transform: translate(0, -25%);\n -webkit-transition: -webkit-transform 0.3s ease-out;\n -moz-transition: -moz-transform 0.3s ease-out;\n -o-transition: -o-transform 0.3s ease-out;\n transition: transform 0.3s ease-out;\n}\n.modal.in .modal-dialog {\n -webkit-transform: translate(0, 0);\n -ms-transform: translate(0, 0);\n -o-transform: translate(0, 0);\n transform: translate(0, 0);\n}\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 10px;\n}\n.modal-content {\n position: relative;\n background-color: #ffffff;\n border: 1px solid #999999;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 6px;\n -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n background-clip: padding-box;\n outline: 0;\n}\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1040;\n background-color: #000000;\n}\n.modal-backdrop.fade {\n opacity: 0;\n filter: alpha(opacity=0);\n}\n.modal-backdrop.in {\n opacity: 0.5;\n filter: alpha(opacity=50);\n}\n.modal-header {\n padding: 15px;\n border-bottom: 1px solid #e5e5e5;\n min-height: 16.42857143px;\n}\n.modal-header .close {\n margin-top: -2px;\n}\n.modal-title {\n margin: 0;\n line-height: 1.42857143;\n}\n.modal-body {\n position: relative;\n padding: 15px;\n}\n.modal-footer {\n padding: 15px;\n text-align: right;\n border-top: 1px solid #e5e5e5;\n}\n.modal-footer .btn + .btn {\n margin-left: 5px;\n margin-bottom: 0;\n}\n.modal-footer .btn-group .btn + .btn {\n margin-left: -1px;\n}\n.modal-footer .btn-block + .btn-block {\n margin-left: 0;\n}\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n@media (min-width: 768px) {\n .modal-dialog {\n width: 600px;\n margin: 30px auto;\n }\n .modal-content {\n -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n }\n .modal-sm {\n width: 300px;\n }\n}\n@media (min-width: 992px) {\n .modal-lg {\n width: 900px;\n }\n}\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n line-break: auto;\n line-height: 1.42857143;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n white-space: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n font-size: 12px;\n opacity: 0;\n filter: alpha(opacity=0);\n}\n.tooltip.in {\n opacity: 0.9;\n filter: alpha(opacity=90);\n}\n.tooltip.top {\n margin-top: -3px;\n padding: 5px 0;\n}\n.tooltip.right {\n margin-left: 3px;\n padding: 0 5px;\n}\n.tooltip.bottom {\n margin-top: 3px;\n padding: 5px 0;\n}\n.tooltip.left {\n margin-left: -3px;\n padding: 0 5px;\n}\n.tooltip-inner {\n max-width: 200px;\n padding: 3px 8px;\n color: #ffffff;\n text-align: center;\n background-color: #000000;\n border-radius: 4px;\n}\n.tooltip-arrow {\n position: absolute;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n.tooltip.top .tooltip-arrow {\n bottom: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000000;\n}\n.tooltip.top-left .tooltip-arrow {\n bottom: 0;\n right: 5px;\n margin-bottom: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000000;\n}\n.tooltip.top-right .tooltip-arrow {\n bottom: 0;\n left: 5px;\n margin-bottom: -5px;\n border-width: 5px 5px 0;\n border-top-color: #000000;\n}\n.tooltip.right .tooltip-arrow {\n top: 50%;\n left: 0;\n margin-top: -5px;\n border-width: 5px 5px 5px 0;\n border-right-color: #000000;\n}\n.tooltip.left .tooltip-arrow {\n top: 50%;\n right: 0;\n margin-top: -5px;\n border-width: 5px 0 5px 5px;\n border-left-color: #000000;\n}\n.tooltip.bottom .tooltip-arrow {\n top: 0;\n left: 50%;\n margin-left: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000000;\n}\n.tooltip.bottom-left .tooltip-arrow {\n top: 0;\n right: 5px;\n margin-top: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000000;\n}\n.tooltip.bottom-right .tooltip-arrow {\n top: 0;\n left: 5px;\n margin-top: -5px;\n border-width: 0 5px 5px;\n border-bottom-color: #000000;\n}\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: none;\n max-width: 276px;\n padding: 1px;\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-style: normal;\n font-weight: normal;\n letter-spacing: normal;\n line-break: auto;\n line-height: 1.42857143;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n white-space: normal;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n font-size: 14px;\n background-color: #ffffff;\n background-clip: padding-box;\n border: 1px solid #cccccc;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 6px;\n -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n}\n.popover.top {\n margin-top: -10px;\n}\n.popover.right {\n margin-left: 10px;\n}\n.popover.bottom {\n margin-top: 10px;\n}\n.popover.left {\n margin-left: -10px;\n}\n.popover-title {\n margin: 0;\n padding: 8px 14px;\n font-size: 14px;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-radius: 5px 5px 0 0;\n}\n.popover-content {\n padding: 9px 14px;\n}\n.popover > .arrow,\n.popover > .arrow:after {\n position: absolute;\n display: block;\n width: 0;\n height: 0;\n border-color: transparent;\n border-style: solid;\n}\n.popover > .arrow {\n border-width: 11px;\n}\n.popover > .arrow:after {\n border-width: 10px;\n content: \"\";\n}\n.popover.top > .arrow {\n left: 50%;\n margin-left: -11px;\n border-bottom-width: 0;\n border-top-color: #999999;\n border-top-color: rgba(0, 0, 0, 0.25);\n bottom: -11px;\n}\n.popover.top > .arrow:after {\n content: \" \";\n bottom: 1px;\n margin-left: -10px;\n border-bottom-width: 0;\n border-top-color: #ffffff;\n}\n.popover.right > .arrow {\n top: 50%;\n left: -11px;\n margin-top: -11px;\n border-left-width: 0;\n border-right-color: #999999;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n.popover.right > .arrow:after {\n content: \" \";\n left: 1px;\n bottom: -10px;\n border-left-width: 0;\n border-right-color: #ffffff;\n}\n.popover.bottom > .arrow {\n left: 50%;\n margin-left: -11px;\n border-top-width: 0;\n border-bottom-color: #999999;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n top: -11px;\n}\n.popover.bottom > .arrow:after {\n content: \" \";\n top: 1px;\n margin-left: -10px;\n border-top-width: 0;\n border-bottom-color: #ffffff;\n}\n.popover.left > .arrow {\n top: 50%;\n right: -11px;\n margin-top: -11px;\n border-right-width: 0;\n border-left-color: #999999;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n.popover.left > .arrow:after {\n content: \" \";\n right: 1px;\n border-right-width: 0;\n border-left-color: #ffffff;\n bottom: -10px;\n}\n.carousel {\n position: relative;\n}\n.carousel-inner {\n position: relative;\n overflow: hidden;\n width: 100%;\n}\n.carousel-inner > .item {\n display: none;\n position: relative;\n -webkit-transition: 0.6s ease-in-out left;\n -o-transition: 0.6s ease-in-out left;\n transition: 0.6s ease-in-out left;\n}\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n line-height: 1;\n}\n@media all and (transform-3d), (-webkit-transform-3d) {\n .carousel-inner > .item {\n -webkit-transition: -webkit-transform 0.6s ease-in-out;\n -moz-transition: -moz-transform 0.6s ease-in-out;\n -o-transition: -o-transform 0.6s ease-in-out;\n transition: transform 0.6s ease-in-out;\n -webkit-backface-visibility: hidden;\n -moz-backface-visibility: hidden;\n backface-visibility: hidden;\n -webkit-perspective: 1000px;\n -moz-perspective: 1000px;\n perspective: 1000px;\n }\n .carousel-inner > .item.next,\n .carousel-inner > .item.active.right {\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n left: 0;\n }\n .carousel-inner > .item.prev,\n .carousel-inner > .item.active.left {\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n left: 0;\n }\n .carousel-inner > .item.next.left,\n .carousel-inner > .item.prev.right,\n .carousel-inner > .item.active {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n left: 0;\n }\n}\n.carousel-inner > .active,\n.carousel-inner > .next,\n.carousel-inner > .prev {\n display: block;\n}\n.carousel-inner > .active {\n left: 0;\n}\n.carousel-inner > .next,\n.carousel-inner > .prev {\n position: absolute;\n top: 0;\n width: 100%;\n}\n.carousel-inner > .next {\n left: 100%;\n}\n.carousel-inner > .prev {\n left: -100%;\n}\n.carousel-inner > .next.left,\n.carousel-inner > .prev.right {\n left: 0;\n}\n.carousel-inner > .active.left {\n left: -100%;\n}\n.carousel-inner > .active.right {\n left: 100%;\n}\n.carousel-control {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n width: 15%;\n opacity: 0.5;\n filter: alpha(opacity=50);\n font-size: 20px;\n color: #ffffff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n}\n.carousel-control.left {\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);\n}\n.carousel-control.right {\n left: auto;\n right: 0;\n background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n background-repeat: repeat-x;\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);\n}\n.carousel-control:hover,\n.carousel-control:focus {\n outline: 0;\n color: #ffffff;\n text-decoration: none;\n opacity: 0.9;\n filter: alpha(opacity=90);\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-left,\n.carousel-control .glyphicon-chevron-right {\n position: absolute;\n top: 50%;\n margin-top: -10px;\n z-index: 5;\n display: inline-block;\n}\n.carousel-control .icon-prev,\n.carousel-control .glyphicon-chevron-left {\n left: 50%;\n margin-left: -10px;\n}\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-right {\n right: 50%;\n margin-right: -10px;\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next {\n width: 20px;\n height: 20px;\n line-height: 1;\n font-family: serif;\n}\n.carousel-control .icon-prev:before {\n content: '\\2039';\n}\n.carousel-control .icon-next:before {\n content: '\\203a';\n}\n.carousel-indicators {\n position: absolute;\n bottom: 10px;\n left: 50%;\n z-index: 15;\n width: 60%;\n margin-left: -30%;\n padding-left: 0;\n list-style: none;\n text-align: center;\n}\n.carousel-indicators li {\n display: inline-block;\n width: 10px;\n height: 10px;\n margin: 1px;\n text-indent: -999px;\n border: 1px solid #ffffff;\n border-radius: 10px;\n cursor: pointer;\n background-color: #000 \\9;\n background-color: rgba(0, 0, 0, 0);\n}\n.carousel-indicators .active {\n margin: 0;\n width: 12px;\n height: 12px;\n background-color: #ffffff;\n}\n.carousel-caption {\n position: absolute;\n left: 15%;\n right: 15%;\n bottom: 20px;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #ffffff;\n text-align: center;\n text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n}\n.carousel-caption .btn {\n text-shadow: none;\n}\n@media screen and (min-width: 768px) {\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-prev,\n .carousel-control .icon-next {\n width: 30px;\n height: 30px;\n margin-top: -15px;\n font-size: 30px;\n }\n .carousel-control .glyphicon-chevron-left,\n .carousel-control .icon-prev {\n margin-left: -15px;\n }\n .carousel-control .glyphicon-chevron-right,\n .carousel-control .icon-next {\n margin-right: -15px;\n }\n .carousel-caption {\n left: 20%;\n right: 20%;\n padding-bottom: 30px;\n }\n .carousel-indicators {\n bottom: 20px;\n }\n}\n.clearfix:before,\n.clearfix:after,\n.dl-horizontal dd:before,\n.dl-horizontal dd:after,\n.container:before,\n.container:after,\n.container-fluid:before,\n.container-fluid:after,\n.row:before,\n.row:after,\n.form-horizontal .form-group:before,\n.form-horizontal .form-group:after,\n.btn-toolbar:before,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:before,\n.btn-group-vertical > .btn-group:after,\n.nav:before,\n.nav:after,\n.navbar:before,\n.navbar:after,\n.navbar-header:before,\n.navbar-header:after,\n.navbar-collapse:before,\n.navbar-collapse:after,\n.pager:before,\n.pager:after,\n.panel-body:before,\n.panel-body:after,\n.modal-footer:before,\n.modal-footer:after {\n content: \" \";\n display: table;\n}\n.clearfix:after,\n.dl-horizontal dd:after,\n.container:after,\n.container-fluid:after,\n.row:after,\n.form-horizontal .form-group:after,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:after,\n.nav:after,\n.navbar:after,\n.navbar-header:after,\n.navbar-collapse:after,\n.pager:after,\n.panel-body:after,\n.modal-footer:after {\n clear: both;\n}\n.center-block {\n display: block;\n margin-left: auto;\n margin-right: auto;\n}\n.pull-right {\n float: right !important;\n}\n.pull-left {\n float: left !important;\n}\n.hide {\n display: none !important;\n}\n.show {\n display: block !important;\n}\n.invisible {\n visibility: hidden;\n}\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n.hidden {\n display: none !important;\n}\n.affix {\n position: fixed;\n}\n@-ms-viewport {\n width: device-width;\n}\n.visible-xs,\n.visible-sm,\n.visible-md,\n.visible-lg {\n display: none !important;\n}\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n display: none !important;\n}\n@media (max-width: 767px) {\n .visible-xs {\n display: block !important;\n }\n table.visible-xs {\n display: table !important;\n }\n tr.visible-xs {\n display: table-row !important;\n }\n th.visible-xs,\n td.visible-xs {\n display: table-cell !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-block {\n display: block !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-inline {\n display: inline !important;\n }\n}\n@media (max-width: 767px) {\n .visible-xs-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm {\n display: block !important;\n }\n table.visible-sm {\n display: table !important;\n }\n tr.visible-sm {\n display: table-row !important;\n }\n th.visible-sm,\n td.visible-sm {\n display: table-cell !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-block {\n display: block !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-inline {\n display: inline !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .visible-sm-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md {\n display: block !important;\n }\n table.visible-md {\n display: table !important;\n }\n tr.visible-md {\n display: table-row !important;\n }\n th.visible-md,\n td.visible-md {\n display: table-cell !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-block {\n display: block !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-inline {\n display: inline !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .visible-md-inline-block {\n display: inline-block !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg {\n display: block !important;\n }\n table.visible-lg {\n display: table !important;\n }\n tr.visible-lg {\n display: table-row !important;\n }\n th.visible-lg,\n td.visible-lg {\n display: table-cell !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-block {\n display: block !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-inline {\n display: inline !important;\n }\n}\n@media (min-width: 1200px) {\n .visible-lg-inline-block {\n display: inline-block !important;\n }\n}\n@media (max-width: 767px) {\n .hidden-xs {\n display: none !important;\n }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n .hidden-sm {\n display: none !important;\n }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n .hidden-md {\n display: none !important;\n }\n}\n@media (min-width: 1200px) {\n .hidden-lg {\n display: none !important;\n }\n}\n.visible-print {\n display: none !important;\n}\n@media print {\n .visible-print {\n display: block !important;\n }\n table.visible-print {\n display: table !important;\n }\n tr.visible-print {\n display: table-row !important;\n }\n th.visible-print,\n td.visible-print {\n display: table-cell !important;\n }\n}\n.visible-print-block {\n display: none !important;\n}\n@media print {\n .visible-print-block {\n display: block !important;\n }\n}\n.visible-print-inline {\n display: none !important;\n}\n@media print {\n .visible-print-inline {\n display: inline !important;\n }\n}\n.visible-print-inline-block {\n display: none !important;\n}\n@media print {\n .visible-print-inline-block {\n display: inline-block !important;\n }\n}\n@media print {\n .hidden-print {\n display: none !important;\n }\n}\n/*# sourceMappingURL=bootstrap.css.map */","/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\n\n//\n// 1. Set default font family to sans-serif.\n// 2. Prevent iOS and IE text size adjust after device orientation change,\n// without disabling user zoom.\n//\n\nhtml {\n font-family: sans-serif; // 1\n -ms-text-size-adjust: 100%; // 2\n -webkit-text-size-adjust: 100%; // 2\n}\n\n//\n// Remove default margin.\n//\n\nbody {\n margin: 0;\n}\n\n// HTML5 display definitions\n// ==========================================================================\n\n//\n// Correct `block` display not defined for any HTML5 element in IE 8/9.\n// Correct `block` display not defined for `details` or `summary` in IE 10/11\n// and Firefox.\n// Correct `block` display not defined for `main` in IE 11.\n//\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n display: block;\n}\n\n//\n// 1. Correct `inline-block` display not defined in IE 8/9.\n// 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n//\n\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block; // 1\n vertical-align: baseline; // 2\n}\n\n//\n// Prevent modern browsers from displaying `audio` without controls.\n// Remove excess height in iOS 5 devices.\n//\n\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n\n//\n// Address `[hidden]` styling not present in IE 8/9/10.\n// Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.\n//\n\n[hidden],\ntemplate {\n display: none;\n}\n\n// Links\n// ==========================================================================\n\n//\n// Remove the gray background color from active links in IE 10.\n//\n\na {\n background-color: transparent;\n}\n\n//\n// Improve readability of focused elements when they are also in an\n// active/hover state.\n//\n\na:active,\na:hover {\n outline: 0;\n}\n\n// Text-level semantics\n// ==========================================================================\n\n//\n// Address styling not present in IE 8/9/10/11, Safari, and Chrome.\n//\n\nabbr[title] {\n border-bottom: 1px dotted;\n}\n\n//\n// Address style set to `bolder` in Firefox 4+, Safari, and Chrome.\n//\n\nb,\nstrong {\n font-weight: bold;\n}\n\n//\n// Address styling not present in Safari and Chrome.\n//\n\ndfn {\n font-style: italic;\n}\n\n//\n// Address variable `h1` font-size and margin within `section` and `article`\n// contexts in Firefox 4+, Safari, and Chrome.\n//\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n//\n// Address styling not present in IE 8/9.\n//\n\nmark {\n background: #ff0;\n color: #000;\n}\n\n//\n// Address inconsistent and variable font size in all browsers.\n//\n\nsmall {\n font-size: 80%;\n}\n\n//\n// Prevent `sub` and `sup` affecting `line-height` in all browsers.\n//\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsup {\n top: -0.5em;\n}\n\nsub {\n bottom: -0.25em;\n}\n\n// Embedded content\n// ==========================================================================\n\n//\n// Remove border when inside `a` element in IE 8/9/10.\n//\n\nimg {\n border: 0;\n}\n\n//\n// Correct overflow not hidden in IE 9/10/11.\n//\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\n// Grouping content\n// ==========================================================================\n\n//\n// Address margin not present in IE 8/9 and Safari.\n//\n\nfigure {\n margin: 1em 40px;\n}\n\n//\n// Address differences between Firefox and other browsers.\n//\n\nhr {\n box-sizing: content-box;\n height: 0;\n}\n\n//\n// Contain overflow in all browsers.\n//\n\npre {\n overflow: auto;\n}\n\n//\n// Address odd `em`-unit font size rendering in all browsers.\n//\n\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\n// Forms\n// ==========================================================================\n\n//\n// Known limitation: by default, Chrome and Safari on OS X allow very limited\n// styling of `select`, unless a `border` property is set.\n//\n\n//\n// 1. Correct color not being inherited.\n// Known issue: affects color of disabled elements.\n// 2. Correct font properties not being inherited.\n// 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\n//\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit; // 1\n font: inherit; // 2\n margin: 0; // 3\n}\n\n//\n// Address `overflow` set to `hidden` in IE 8/9/10/11.\n//\n\nbutton {\n overflow: visible;\n}\n\n//\n// Address inconsistent `text-transform` inheritance for `button` and `select`.\n// All other form control elements do not inherit `text-transform` values.\n// Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\n// Correct `select` style inheritance in Firefox.\n//\n\nbutton,\nselect {\n text-transform: none;\n}\n\n//\n// 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n// and `video` controls.\n// 2. Correct inability to style clickable `input` types in iOS.\n// 3. Improve usability and consistency of cursor style between image-type\n// `input` and others.\n//\n\nbutton,\nhtml input[type=\"button\"], // 1\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button; // 2\n cursor: pointer; // 3\n}\n\n//\n// Re-set default cursor for disabled elements.\n//\n\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\n\n//\n// Remove inner padding and border in Firefox 4+.\n//\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n\n//\n// Address Firefox 4+ setting `line-height` on `input` using `!important` in\n// the UA stylesheet.\n//\n\ninput {\n line-height: normal;\n}\n\n//\n// It's recommended that you don't attempt to style these elements.\n// Firefox's implementation doesn't respect box-sizing, padding, or width.\n//\n// 1. Address box sizing set to `content-box` in IE 8/9/10.\n// 2. Remove excess padding in IE 8/9/10.\n//\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box; // 1\n padding: 0; // 2\n}\n\n//\n// Fix the cursor style for Chrome's increment/decrement buttons. For certain\n// `font-size` values of the `input`, it causes the cursor style of the\n// decrement button to change from `default` to `text`.\n//\n\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n//\n// 1. Address `appearance` set to `searchfield` in Safari and Chrome.\n// 2. Address `box-sizing` set to `border-box` in Safari and Chrome.\n//\n\ninput[type=\"search\"] {\n -webkit-appearance: textfield; // 1\n box-sizing: content-box; //2\n}\n\n//\n// Remove inner padding and search cancel button in Safari and Chrome on OS X.\n// Safari (but not Chrome) clips the cancel button when the search input has\n// padding (and `textfield` appearance).\n//\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// Define consistent border, margin, and padding.\n//\n\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\n\n//\n// 1. Correct `color` not being inherited in IE 8/9/10/11.\n// 2. Remove padding so people aren't caught out if they zero out fieldsets.\n//\n\nlegend {\n border: 0; // 1\n padding: 0; // 2\n}\n\n//\n// Remove default vertical scrollbar in IE 8/9/10/11.\n//\n\ntextarea {\n overflow: auto;\n}\n\n//\n// Don't inherit the `font-weight` (applied by a rule above).\n// NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n//\n\noptgroup {\n font-weight: bold;\n}\n\n// Tables\n// ==========================================================================\n\n//\n// Remove most spacing between table cells.\n//\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\ntd,\nth {\n padding: 0;\n}\n","/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n\n// ==========================================================================\n// Print styles.\n// Inlined to avoid the additional HTTP request: h5bp.com/r\n// ==========================================================================\n\n@media print {\n *,\n *:before,\n *:after {\n background: transparent !important;\n color: #000 !important; // Black prints faster: h5bp.com/s\n box-shadow: none !important;\n text-shadow: none !important;\n }\n\n a,\n a:visited {\n text-decoration: underline;\n }\n\n a[href]:after {\n content: \" (\" attr(href) \")\";\n }\n\n abbr[title]:after {\n content: \" (\" attr(title) \")\";\n }\n\n // Don't show links that are fragment identifiers,\n // or use the `javascript:` pseudo protocol\n a[href^=\"#\"]:after,\n a[href^=\"javascript:\"]:after {\n content: \"\";\n }\n\n pre,\n blockquote {\n border: 1px solid #999;\n page-break-inside: avoid;\n }\n\n thead {\n display: table-header-group; // h5bp.com/t\n }\n\n tr,\n img {\n page-break-inside: avoid;\n }\n\n img {\n max-width: 100% !important;\n }\n\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n\n h2,\n h3 {\n page-break-after: avoid;\n }\n\n // Bootstrap specific changes start\n\n // Bootstrap components\n .navbar {\n display: none;\n }\n .btn,\n .dropup > .btn {\n > .caret {\n border-top-color: #000 !important;\n }\n }\n .label {\n border: 1px solid #000;\n }\n\n .table {\n border-collapse: collapse !important;\n\n td,\n th {\n background-color: #fff !important;\n }\n }\n .table-bordered {\n th,\n td {\n border: 1px solid #ddd !important;\n }\n }\n\n // Bootstrap specific changes end\n}\n","//\n// Glyphicons for Bootstrap\n//\n// Since icons are fonts, they can be placed anywhere text is placed and are\n// thus automatically sized to match the surrounding child. To use, create an\n// inline element with the appropriate classes, like so:\n//\n// Star\n\n// Import the fonts\n@font-face {\n font-family: 'Glyphicons Halflings';\n src: url('@{icon-font-path}@{icon-font-name}.eot');\n src: url('@{icon-font-path}@{icon-font-name}.eot?#iefix') format('embedded-opentype'),\n url('@{icon-font-path}@{icon-font-name}.woff2') format('woff2'),\n url('@{icon-font-path}@{icon-font-name}.woff') format('woff'),\n url('@{icon-font-path}@{icon-font-name}.ttf') format('truetype'),\n url('@{icon-font-path}@{icon-font-name}.svg#@{icon-font-svg-id}') format('svg');\n}\n\n// Catchall baseclass\n.glyphicon {\n position: relative;\n top: 1px;\n display: inline-block;\n font-family: 'Glyphicons Halflings';\n font-style: normal;\n font-weight: normal;\n line-height: 1;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n// Individual icons\n.glyphicon-asterisk { &:before { content: \"\\2a\"; } }\n.glyphicon-plus { &:before { content: \"\\2b\"; } }\n.glyphicon-euro,\n.glyphicon-eur { &:before { content: \"\\20ac\"; } }\n.glyphicon-minus { &:before { content: \"\\2212\"; } }\n.glyphicon-cloud { &:before { content: \"\\2601\"; } }\n.glyphicon-envelope { &:before { content: \"\\2709\"; } }\n.glyphicon-pencil { &:before { content: \"\\270f\"; } }\n.glyphicon-glass { &:before { content: \"\\e001\"; } }\n.glyphicon-music { &:before { content: \"\\e002\"; } }\n.glyphicon-search { &:before { content: \"\\e003\"; } }\n.glyphicon-heart { &:before { content: \"\\e005\"; } }\n.glyphicon-star { &:before { content: \"\\e006\"; } }\n.glyphicon-star-empty { &:before { content: \"\\e007\"; } }\n.glyphicon-user { &:before { content: \"\\e008\"; } }\n.glyphicon-film { &:before { content: \"\\e009\"; } }\n.glyphicon-th-large { &:before { content: \"\\e010\"; } }\n.glyphicon-th { &:before { content: \"\\e011\"; } }\n.glyphicon-th-list { &:before { content: \"\\e012\"; } }\n.glyphicon-ok { &:before { content: \"\\e013\"; } }\n.glyphicon-remove { &:before { content: \"\\e014\"; } }\n.glyphicon-zoom-in { &:before { content: \"\\e015\"; } }\n.glyphicon-zoom-out { &:before { content: \"\\e016\"; } }\n.glyphicon-off { &:before { content: \"\\e017\"; } }\n.glyphicon-signal { &:before { content: \"\\e018\"; } }\n.glyphicon-cog { &:before { content: \"\\e019\"; } }\n.glyphicon-trash { &:before { content: \"\\e020\"; } }\n.glyphicon-home { &:before { content: \"\\e021\"; } }\n.glyphicon-file { &:before { content: \"\\e022\"; } }\n.glyphicon-time { &:before { content: \"\\e023\"; } }\n.glyphicon-road { &:before { content: \"\\e024\"; } }\n.glyphicon-download-alt { &:before { content: \"\\e025\"; } }\n.glyphicon-download { &:before { content: \"\\e026\"; } }\n.glyphicon-upload { &:before { content: \"\\e027\"; } }\n.glyphicon-inbox { &:before { content: \"\\e028\"; } }\n.glyphicon-play-circle { &:before { content: \"\\e029\"; } }\n.glyphicon-repeat { &:before { content: \"\\e030\"; } }\n.glyphicon-refresh { &:before { content: \"\\e031\"; } }\n.glyphicon-list-alt { &:before { content: \"\\e032\"; } }\n.glyphicon-lock { &:before { content: \"\\e033\"; } }\n.glyphicon-flag { &:before { content: \"\\e034\"; } }\n.glyphicon-headphones { &:before { content: \"\\e035\"; } }\n.glyphicon-volume-off { &:before { content: \"\\e036\"; } }\n.glyphicon-volume-down { &:before { content: \"\\e037\"; } }\n.glyphicon-volume-up { &:before { content: \"\\e038\"; } }\n.glyphicon-qrcode { &:before { content: \"\\e039\"; } }\n.glyphicon-barcode { &:before { content: \"\\e040\"; } }\n.glyphicon-tag { &:before { content: \"\\e041\"; } }\n.glyphicon-tags { &:before { content: \"\\e042\"; } }\n.glyphicon-book { &:before { content: \"\\e043\"; } }\n.glyphicon-bookmark { &:before { content: \"\\e044\"; } }\n.glyphicon-print { &:before { content: \"\\e045\"; } }\n.glyphicon-camera { &:before { content: \"\\e046\"; } }\n.glyphicon-font { &:before { content: \"\\e047\"; } }\n.glyphicon-bold { &:before { content: \"\\e048\"; } }\n.glyphicon-italic { &:before { content: \"\\e049\"; } }\n.glyphicon-text-height { &:before { content: \"\\e050\"; } }\n.glyphicon-text-width { &:before { content: \"\\e051\"; } }\n.glyphicon-align-left { &:before { content: \"\\e052\"; } }\n.glyphicon-align-center { &:before { content: \"\\e053\"; } }\n.glyphicon-align-right { &:before { content: \"\\e054\"; } }\n.glyphicon-align-justify { &:before { content: \"\\e055\"; } }\n.glyphicon-list { &:before { content: \"\\e056\"; } }\n.glyphicon-indent-left { &:before { content: \"\\e057\"; } }\n.glyphicon-indent-right { &:before { content: \"\\e058\"; } }\n.glyphicon-facetime-video { &:before { content: \"\\e059\"; } }\n.glyphicon-picture { &:before { content: \"\\e060\"; } }\n.glyphicon-map-marker { &:before { content: \"\\e062\"; } }\n.glyphicon-adjust { &:before { content: \"\\e063\"; } }\n.glyphicon-tint { &:before { content: \"\\e064\"; } }\n.glyphicon-edit { &:before { content: \"\\e065\"; } }\n.glyphicon-share { &:before { content: \"\\e066\"; } }\n.glyphicon-check { &:before { content: \"\\e067\"; } }\n.glyphicon-move { &:before { content: \"\\e068\"; } }\n.glyphicon-step-backward { &:before { content: \"\\e069\"; } }\n.glyphicon-fast-backward { &:before { content: \"\\e070\"; } }\n.glyphicon-backward { &:before { content: \"\\e071\"; } }\n.glyphicon-play { &:before { content: \"\\e072\"; } }\n.glyphicon-pause { &:before { content: \"\\e073\"; } }\n.glyphicon-stop { &:before { content: \"\\e074\"; } }\n.glyphicon-forward { &:before { content: \"\\e075\"; } }\n.glyphicon-fast-forward { &:before { content: \"\\e076\"; } }\n.glyphicon-step-forward { &:before { content: \"\\e077\"; } }\n.glyphicon-eject { &:before { content: \"\\e078\"; } }\n.glyphicon-chevron-left { &:before { content: \"\\e079\"; } }\n.glyphicon-chevron-right { &:before { content: \"\\e080\"; } }\n.glyphicon-plus-sign { &:before { content: \"\\e081\"; } }\n.glyphicon-minus-sign { &:before { content: \"\\e082\"; } }\n.glyphicon-remove-sign { &:before { content: \"\\e083\"; } }\n.glyphicon-ok-sign { &:before { content: \"\\e084\"; } }\n.glyphicon-question-sign { &:before { content: \"\\e085\"; } }\n.glyphicon-info-sign { &:before { content: \"\\e086\"; } }\n.glyphicon-screenshot { &:before { content: \"\\e087\"; } }\n.glyphicon-remove-circle { &:before { content: \"\\e088\"; } }\n.glyphicon-ok-circle { &:before { content: \"\\e089\"; } }\n.glyphicon-ban-circle { &:before { content: \"\\e090\"; } }\n.glyphicon-arrow-left { &:before { content: \"\\e091\"; } }\n.glyphicon-arrow-right { &:before { content: \"\\e092\"; } }\n.glyphicon-arrow-up { &:before { content: \"\\e093\"; } }\n.glyphicon-arrow-down { &:before { content: \"\\e094\"; } }\n.glyphicon-share-alt { &:before { content: \"\\e095\"; } }\n.glyphicon-resize-full { &:before { content: \"\\e096\"; } }\n.glyphicon-resize-small { &:before { content: \"\\e097\"; } }\n.glyphicon-exclamation-sign { &:before { content: \"\\e101\"; } }\n.glyphicon-gift { &:before { content: \"\\e102\"; } }\n.glyphicon-leaf { &:before { content: \"\\e103\"; } }\n.glyphicon-fire { &:before { content: \"\\e104\"; } }\n.glyphicon-eye-open { &:before { content: \"\\e105\"; } }\n.glyphicon-eye-close { &:before { content: \"\\e106\"; } }\n.glyphicon-warning-sign { &:before { content: \"\\e107\"; } }\n.glyphicon-plane { &:before { content: \"\\e108\"; } }\n.glyphicon-calendar { &:before { content: \"\\e109\"; } }\n.glyphicon-random { &:before { content: \"\\e110\"; } }\n.glyphicon-comment { &:before { content: \"\\e111\"; } }\n.glyphicon-magnet { &:before { content: \"\\e112\"; } }\n.glyphicon-chevron-up { &:before { content: \"\\e113\"; } }\n.glyphicon-chevron-down { &:before { content: \"\\e114\"; } }\n.glyphicon-retweet { &:before { content: \"\\e115\"; } }\n.glyphicon-shopping-cart { &:before { content: \"\\e116\"; } }\n.glyphicon-folder-close { &:before { content: \"\\e117\"; } }\n.glyphicon-folder-open { &:before { content: \"\\e118\"; } }\n.glyphicon-resize-vertical { &:before { content: \"\\e119\"; } }\n.glyphicon-resize-horizontal { &:before { content: \"\\e120\"; } }\n.glyphicon-hdd { &:before { content: \"\\e121\"; } }\n.glyphicon-bullhorn { &:before { content: \"\\e122\"; } }\n.glyphicon-bell { &:before { content: \"\\e123\"; } }\n.glyphicon-certificate { &:before { content: \"\\e124\"; } }\n.glyphicon-thumbs-up { &:before { content: \"\\e125\"; } }\n.glyphicon-thumbs-down { &:before { content: \"\\e126\"; } }\n.glyphicon-hand-right { &:before { content: \"\\e127\"; } }\n.glyphicon-hand-left { &:before { content: \"\\e128\"; } }\n.glyphicon-hand-up { &:before { content: \"\\e129\"; } }\n.glyphicon-hand-down { &:before { content: \"\\e130\"; } }\n.glyphicon-circle-arrow-right { &:before { content: \"\\e131\"; } }\n.glyphicon-circle-arrow-left { &:before { content: \"\\e132\"; } }\n.glyphicon-circle-arrow-up { &:before { content: \"\\e133\"; } }\n.glyphicon-circle-arrow-down { &:before { content: \"\\e134\"; } }\n.glyphicon-globe { &:before { content: \"\\e135\"; } }\n.glyphicon-wrench { &:before { content: \"\\e136\"; } }\n.glyphicon-tasks { &:before { content: \"\\e137\"; } }\n.glyphicon-filter { &:before { content: \"\\e138\"; } }\n.glyphicon-briefcase { &:before { content: \"\\e139\"; } }\n.glyphicon-fullscreen { &:before { content: \"\\e140\"; } }\n.glyphicon-dashboard { &:before { content: \"\\e141\"; } }\n.glyphicon-paperclip { &:before { content: \"\\e142\"; } }\n.glyphicon-heart-empty { &:before { content: \"\\e143\"; } }\n.glyphicon-link { &:before { content: \"\\e144\"; } }\n.glyphicon-phone { &:before { content: \"\\e145\"; } }\n.glyphicon-pushpin { &:before { content: \"\\e146\"; } }\n.glyphicon-usd { &:before { content: \"\\e148\"; } }\n.glyphicon-gbp { &:before { content: \"\\e149\"; } }\n.glyphicon-sort { &:before { content: \"\\e150\"; } }\n.glyphicon-sort-by-alphabet { &:before { content: \"\\e151\"; } }\n.glyphicon-sort-by-alphabet-alt { &:before { content: \"\\e152\"; } }\n.glyphicon-sort-by-order { &:before { content: \"\\e153\"; } }\n.glyphicon-sort-by-order-alt { &:before { content: \"\\e154\"; } }\n.glyphicon-sort-by-attributes { &:before { content: \"\\e155\"; } }\n.glyphicon-sort-by-attributes-alt { &:before { content: \"\\e156\"; } }\n.glyphicon-unchecked { &:before { content: \"\\e157\"; } }\n.glyphicon-expand { &:before { content: \"\\e158\"; } }\n.glyphicon-collapse-down { &:before { content: \"\\e159\"; } }\n.glyphicon-collapse-up { &:before { content: \"\\e160\"; } }\n.glyphicon-log-in { &:before { content: \"\\e161\"; } }\n.glyphicon-flash { &:before { content: \"\\e162\"; } }\n.glyphicon-log-out { &:before { content: \"\\e163\"; } }\n.glyphicon-new-window { &:before { content: \"\\e164\"; } }\n.glyphicon-record { &:before { content: \"\\e165\"; } }\n.glyphicon-save { &:before { content: \"\\e166\"; } }\n.glyphicon-open { &:before { content: \"\\e167\"; } }\n.glyphicon-saved { &:before { content: \"\\e168\"; } }\n.glyphicon-import { &:before { content: \"\\e169\"; } }\n.glyphicon-export { &:before { content: \"\\e170\"; } }\n.glyphicon-send { &:before { content: \"\\e171\"; } }\n.glyphicon-floppy-disk { &:before { content: \"\\e172\"; } }\n.glyphicon-floppy-saved { &:before { content: \"\\e173\"; } }\n.glyphicon-floppy-remove { &:before { content: \"\\e174\"; } }\n.glyphicon-floppy-save { &:before { content: \"\\e175\"; } }\n.glyphicon-floppy-open { &:before { content: \"\\e176\"; } }\n.glyphicon-credit-card { &:before { content: \"\\e177\"; } }\n.glyphicon-transfer { &:before { content: \"\\e178\"; } }\n.glyphicon-cutlery { &:before { content: \"\\e179\"; } }\n.glyphicon-header { &:before { content: \"\\e180\"; } }\n.glyphicon-compressed { &:before { content: \"\\e181\"; } }\n.glyphicon-earphone { &:before { content: \"\\e182\"; } }\n.glyphicon-phone-alt { &:before { content: \"\\e183\"; } }\n.glyphicon-tower { &:before { content: \"\\e184\"; } }\n.glyphicon-stats { &:before { content: \"\\e185\"; } }\n.glyphicon-sd-video { &:before { content: \"\\e186\"; } }\n.glyphicon-hd-video { &:before { content: \"\\e187\"; } }\n.glyphicon-subtitles { &:before { content: \"\\e188\"; } }\n.glyphicon-sound-stereo { &:before { content: \"\\e189\"; } }\n.glyphicon-sound-dolby { &:before { content: \"\\e190\"; } }\n.glyphicon-sound-5-1 { &:before { content: \"\\e191\"; } }\n.glyphicon-sound-6-1 { &:before { content: \"\\e192\"; } }\n.glyphicon-sound-7-1 { &:before { content: \"\\e193\"; } }\n.glyphicon-copyright-mark { &:before { content: \"\\e194\"; } }\n.glyphicon-registration-mark { &:before { content: \"\\e195\"; } }\n.glyphicon-cloud-download { &:before { content: \"\\e197\"; } }\n.glyphicon-cloud-upload { &:before { content: \"\\e198\"; } }\n.glyphicon-tree-conifer { &:before { content: \"\\e199\"; } }\n.glyphicon-tree-deciduous { &:before { content: \"\\e200\"; } }\n.glyphicon-cd { &:before { content: \"\\e201\"; } }\n.glyphicon-save-file { &:before { content: \"\\e202\"; } }\n.glyphicon-open-file { &:before { content: \"\\e203\"; } }\n.glyphicon-level-up { &:before { content: \"\\e204\"; } }\n.glyphicon-copy { &:before { content: \"\\e205\"; } }\n.glyphicon-paste { &:before { content: \"\\e206\"; } }\n// The following 2 Glyphicons are omitted for the time being because\n// they currently use Unicode codepoints that are outside the\n// Basic Multilingual Plane (BMP). Older buggy versions of WebKit can't handle\n// non-BMP codepoints in CSS string escapes, and thus can't display these two icons.\n// Notably, the bug affects some older versions of the Android Browser.\n// More info: https://github.com/twbs/bootstrap/issues/10106\n// .glyphicon-door { &:before { content: \"\\1f6aa\"; } }\n// .glyphicon-key { &:before { content: \"\\1f511\"; } }\n.glyphicon-alert { &:before { content: \"\\e209\"; } }\n.glyphicon-equalizer { &:before { content: \"\\e210\"; } }\n.glyphicon-king { &:before { content: \"\\e211\"; } }\n.glyphicon-queen { &:before { content: \"\\e212\"; } }\n.glyphicon-pawn { &:before { content: \"\\e213\"; } }\n.glyphicon-bishop { &:before { content: \"\\e214\"; } }\n.glyphicon-knight { &:before { content: \"\\e215\"; } }\n.glyphicon-baby-formula { &:before { content: \"\\e216\"; } }\n.glyphicon-tent { &:before { content: \"\\26fa\"; } }\n.glyphicon-blackboard { &:before { content: \"\\e218\"; } }\n.glyphicon-bed { &:before { content: \"\\e219\"; } }\n.glyphicon-apple { &:before { content: \"\\f8ff\"; } }\n.glyphicon-erase { &:before { content: \"\\e221\"; } }\n.glyphicon-hourglass { &:before { content: \"\\231b\"; } }\n.glyphicon-lamp { &:before { content: \"\\e223\"; } }\n.glyphicon-duplicate { &:before { content: \"\\e224\"; } }\n.glyphicon-piggy-bank { &:before { content: \"\\e225\"; } }\n.glyphicon-scissors { &:before { content: \"\\e226\"; } }\n.glyphicon-bitcoin { &:before { content: \"\\e227\"; } }\n.glyphicon-btc { &:before { content: \"\\e227\"; } }\n.glyphicon-xbt { &:before { content: \"\\e227\"; } }\n.glyphicon-yen { &:before { content: \"\\00a5\"; } }\n.glyphicon-jpy { &:before { content: \"\\00a5\"; } }\n.glyphicon-ruble { &:before { content: \"\\20bd\"; } }\n.glyphicon-rub { &:before { content: \"\\20bd\"; } }\n.glyphicon-scale { &:before { content: \"\\e230\"; } }\n.glyphicon-ice-lolly { &:before { content: \"\\e231\"; } }\n.glyphicon-ice-lolly-tasted { &:before { content: \"\\e232\"; } }\n.glyphicon-education { &:before { content: \"\\e233\"; } }\n.glyphicon-option-horizontal { &:before { content: \"\\e234\"; } }\n.glyphicon-option-vertical { &:before { content: \"\\e235\"; } }\n.glyphicon-menu-hamburger { &:before { content: \"\\e236\"; } }\n.glyphicon-modal-window { &:before { content: \"\\e237\"; } }\n.glyphicon-oil { &:before { content: \"\\e238\"; } }\n.glyphicon-grain { &:before { content: \"\\e239\"; } }\n.glyphicon-sunglasses { &:before { content: \"\\e240\"; } }\n.glyphicon-text-size { &:before { content: \"\\e241\"; } }\n.glyphicon-text-color { &:before { content: \"\\e242\"; } }\n.glyphicon-text-background { &:before { content: \"\\e243\"; } }\n.glyphicon-object-align-top { &:before { content: \"\\e244\"; } }\n.glyphicon-object-align-bottom { &:before { content: \"\\e245\"; } }\n.glyphicon-object-align-horizontal{ &:before { content: \"\\e246\"; } }\n.glyphicon-object-align-left { &:before { content: \"\\e247\"; } }\n.glyphicon-object-align-vertical { &:before { content: \"\\e248\"; } }\n.glyphicon-object-align-right { &:before { content: \"\\e249\"; } }\n.glyphicon-triangle-right { &:before { content: \"\\e250\"; } }\n.glyphicon-triangle-left { &:before { content: \"\\e251\"; } }\n.glyphicon-triangle-bottom { &:before { content: \"\\e252\"; } }\n.glyphicon-triangle-top { &:before { content: \"\\e253\"; } }\n.glyphicon-console { &:before { content: \"\\e254\"; } }\n.glyphicon-superscript { &:before { content: \"\\e255\"; } }\n.glyphicon-subscript { &:before { content: \"\\e256\"; } }\n.glyphicon-menu-left { &:before { content: \"\\e257\"; } }\n.glyphicon-menu-right { &:before { content: \"\\e258\"; } }\n.glyphicon-menu-down { &:before { content: \"\\e259\"; } }\n.glyphicon-menu-up { &:before { content: \"\\e260\"; } }\n","//\n// Scaffolding\n// --------------------------------------------------\n\n\n// Reset the box-sizing\n//\n// Heads up! This reset may cause conflicts with some third-party widgets.\n// For recommendations on resolving such conflicts, see\n// http://getbootstrap.com/getting-started/#third-box-sizing\n* {\n .box-sizing(border-box);\n}\n*:before,\n*:after {\n .box-sizing(border-box);\n}\n\n\n// Body reset\n\nhtml {\n font-size: 10px;\n -webkit-tap-highlight-color: rgba(0,0,0,0);\n}\n\nbody {\n font-family: @font-family-base;\n font-size: @font-size-base;\n line-height: @line-height-base;\n color: @text-color;\n background-color: @body-bg;\n}\n\n// Reset fonts for relevant elements\ninput,\nbutton,\nselect,\ntextarea {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\n\n// Links\n\na {\n color: @link-color;\n text-decoration: none;\n\n &:hover,\n &:focus {\n color: @link-hover-color;\n text-decoration: @link-hover-decoration;\n }\n\n &:focus {\n .tab-focus();\n }\n}\n\n\n// Figures\n//\n// We reset this here because previously Normalize had no `figure` margins. This\n// ensures we don't break anyone's use of the element.\n\nfigure {\n margin: 0;\n}\n\n\n// Images\n\nimg {\n vertical-align: middle;\n}\n\n// Responsive images (ensure images don't scale beyond their parents)\n.img-responsive {\n .img-responsive();\n}\n\n// Rounded corners\n.img-rounded {\n border-radius: @border-radius-large;\n}\n\n// Image thumbnails\n//\n// Heads up! This is mixin-ed into thumbnails.less for `.thumbnail`.\n.img-thumbnail {\n padding: @thumbnail-padding;\n line-height: @line-height-base;\n background-color: @thumbnail-bg;\n border: 1px solid @thumbnail-border;\n border-radius: @thumbnail-border-radius;\n .transition(all .2s ease-in-out);\n\n // Keep them at most 100% wide\n .img-responsive(inline-block);\n}\n\n// Perfect circle\n.img-circle {\n border-radius: 50%; // set radius in percents\n}\n\n\n// Horizontal rules\n\nhr {\n margin-top: @line-height-computed;\n margin-bottom: @line-height-computed;\n border: 0;\n border-top: 1px solid @hr-border;\n}\n\n\n// Only display content to screen readers\n//\n// See: http://a11yproject.com/posts/how-to-hide-content/\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0,0,0,0);\n border: 0;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n// Useful for \"Skip to main content\" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n// Credit: HTML5 Boilerplate\n\n.sr-only-focusable {\n &:active,\n &:focus {\n position: static;\n width: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n clip: auto;\n }\n}\n\n\n// iOS \"clickable elements\" fix for role=\"button\"\n//\n// Fixes \"clickability\" issue (and more generally, the firing of events such as focus as well)\n// for traditionally non-focusable elements with role=\"button\"\n// see https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n\n[role=\"button\"] {\n cursor: pointer;\n}\n","// Vendor Prefixes\n//\n// All vendor mixins are deprecated as of v3.2.0 due to the introduction of\n// Autoprefixer in our Gruntfile. They will be removed in v4.\n\n// - Animations\n// - Backface visibility\n// - Box shadow\n// - Box sizing\n// - Content columns\n// - Hyphens\n// - Placeholder text\n// - Transformations\n// - Transitions\n// - User Select\n\n\n// Animations\n.animation(@animation) {\n -webkit-animation: @animation;\n -o-animation: @animation;\n animation: @animation;\n}\n.animation-name(@name) {\n -webkit-animation-name: @name;\n animation-name: @name;\n}\n.animation-duration(@duration) {\n -webkit-animation-duration: @duration;\n animation-duration: @duration;\n}\n.animation-timing-function(@timing-function) {\n -webkit-animation-timing-function: @timing-function;\n animation-timing-function: @timing-function;\n}\n.animation-delay(@delay) {\n -webkit-animation-delay: @delay;\n animation-delay: @delay;\n}\n.animation-iteration-count(@iteration-count) {\n -webkit-animation-iteration-count: @iteration-count;\n animation-iteration-count: @iteration-count;\n}\n.animation-direction(@direction) {\n -webkit-animation-direction: @direction;\n animation-direction: @direction;\n}\n.animation-fill-mode(@fill-mode) {\n -webkit-animation-fill-mode: @fill-mode;\n animation-fill-mode: @fill-mode;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n\n.backface-visibility(@visibility){\n -webkit-backface-visibility: @visibility;\n -moz-backface-visibility: @visibility;\n backface-visibility: @visibility;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support it.\n\n.box-shadow(@shadow) {\n -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1\n box-shadow: @shadow;\n}\n\n// Box sizing\n.box-sizing(@boxmodel) {\n -webkit-box-sizing: @boxmodel;\n -moz-box-sizing: @boxmodel;\n box-sizing: @boxmodel;\n}\n\n// CSS3 Content Columns\n.content-columns(@column-count; @column-gap: @grid-gutter-width) {\n -webkit-column-count: @column-count;\n -moz-column-count: @column-count;\n column-count: @column-count;\n -webkit-column-gap: @column-gap;\n -moz-column-gap: @column-gap;\n column-gap: @column-gap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n word-wrap: break-word;\n -webkit-hyphens: @mode;\n -moz-hyphens: @mode;\n -ms-hyphens: @mode; // IE10+\n -o-hyphens: @mode;\n hyphens: @mode;\n}\n\n// Placeholder text\n.placeholder(@color: @input-color-placeholder) {\n // Firefox\n &::-moz-placeholder {\n color: @color;\n opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526\n }\n &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+\n &::-webkit-input-placeholder { color: @color; } // Safari and Chrome\n}\n\n// Transformations\n.scale(@ratio) {\n -webkit-transform: scale(@ratio);\n -ms-transform: scale(@ratio); // IE9 only\n -o-transform: scale(@ratio);\n transform: scale(@ratio);\n}\n.scale(@ratioX; @ratioY) {\n -webkit-transform: scale(@ratioX, @ratioY);\n -ms-transform: scale(@ratioX, @ratioY); // IE9 only\n -o-transform: scale(@ratioX, @ratioY);\n transform: scale(@ratioX, @ratioY);\n}\n.scaleX(@ratio) {\n -webkit-transform: scaleX(@ratio);\n -ms-transform: scaleX(@ratio); // IE9 only\n -o-transform: scaleX(@ratio);\n transform: scaleX(@ratio);\n}\n.scaleY(@ratio) {\n -webkit-transform: scaleY(@ratio);\n -ms-transform: scaleY(@ratio); // IE9 only\n -o-transform: scaleY(@ratio);\n transform: scaleY(@ratio);\n}\n.skew(@x; @y) {\n -webkit-transform: skewX(@x) skewY(@y);\n -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n -o-transform: skewX(@x) skewY(@y);\n transform: skewX(@x) skewY(@y);\n}\n.translate(@x; @y) {\n -webkit-transform: translate(@x, @y);\n -ms-transform: translate(@x, @y); // IE9 only\n -o-transform: translate(@x, @y);\n transform: translate(@x, @y);\n}\n.translate3d(@x; @y; @z) {\n -webkit-transform: translate3d(@x, @y, @z);\n transform: translate3d(@x, @y, @z);\n}\n.rotate(@degrees) {\n -webkit-transform: rotate(@degrees);\n -ms-transform: rotate(@degrees); // IE9 only\n -o-transform: rotate(@degrees);\n transform: rotate(@degrees);\n}\n.rotateX(@degrees) {\n -webkit-transform: rotateX(@degrees);\n -ms-transform: rotateX(@degrees); // IE9 only\n -o-transform: rotateX(@degrees);\n transform: rotateX(@degrees);\n}\n.rotateY(@degrees) {\n -webkit-transform: rotateY(@degrees);\n -ms-transform: rotateY(@degrees); // IE9 only\n -o-transform: rotateY(@degrees);\n transform: rotateY(@degrees);\n}\n.perspective(@perspective) {\n -webkit-perspective: @perspective;\n -moz-perspective: @perspective;\n perspective: @perspective;\n}\n.perspective-origin(@perspective) {\n -webkit-perspective-origin: @perspective;\n -moz-perspective-origin: @perspective;\n perspective-origin: @perspective;\n}\n.transform-origin(@origin) {\n -webkit-transform-origin: @origin;\n -moz-transform-origin: @origin;\n -ms-transform-origin: @origin; // IE9 only\n transform-origin: @origin;\n}\n\n\n// Transitions\n\n.transition(@transition) {\n -webkit-transition: @transition;\n -o-transition: @transition;\n transition: @transition;\n}\n.transition-property(@transition-property) {\n -webkit-transition-property: @transition-property;\n transition-property: @transition-property;\n}\n.transition-delay(@transition-delay) {\n -webkit-transition-delay: @transition-delay;\n transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n -webkit-transition-duration: @transition-duration;\n transition-duration: @transition-duration;\n}\n.transition-timing-function(@timing-function) {\n -webkit-transition-timing-function: @timing-function;\n transition-timing-function: @timing-function;\n}\n.transition-transform(@transition) {\n -webkit-transition: -webkit-transform @transition;\n -moz-transition: -moz-transform @transition;\n -o-transition: -o-transform @transition;\n transition: transform @transition;\n}\n\n\n// User select\n// For selecting text on the page\n\n.user-select(@select) {\n -webkit-user-select: @select;\n -moz-user-select: @select;\n -ms-user-select: @select; // IE10+\n user-select: @select;\n}\n","// WebKit-style focus\n\n.tab-focus() {\n // Default\n outline: thin dotted;\n // WebKit\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\n","// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n.img-responsive(@display: block) {\n display: @display;\n max-width: 100%; // Part 1: Set a maximum relative to the parent\n height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching\n}\n\n\n// Retina image\n//\n// Short retina mixin for setting background-image and -size. Note that the\n// spelling of `min--moz-device-pixel-ratio` is intentional.\n.img-retina(@file-1x; @file-2x; @width-1x; @height-1x) {\n background-image: url(\"@{file-1x}\");\n\n @media\n only screen and (-webkit-min-device-pixel-ratio: 2),\n only screen and ( min--moz-device-pixel-ratio: 2),\n only screen and ( -o-min-device-pixel-ratio: 2/1),\n only screen and ( min-device-pixel-ratio: 2),\n only screen and ( min-resolution: 192dpi),\n only screen and ( min-resolution: 2dppx) {\n background-image: url(\"@{file-2x}\");\n background-size: @width-1x @height-1x;\n }\n}\n","//\n// Typography\n// --------------------------------------------------\n\n\n// Headings\n// -------------------------\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n font-family: @headings-font-family;\n font-weight: @headings-font-weight;\n line-height: @headings-line-height;\n color: @headings-color;\n\n small,\n .small {\n font-weight: normal;\n line-height: 1;\n color: @headings-small-color;\n }\n}\n\nh1, .h1,\nh2, .h2,\nh3, .h3 {\n margin-top: @line-height-computed;\n margin-bottom: (@line-height-computed / 2);\n\n small,\n .small {\n font-size: 65%;\n }\n}\nh4, .h4,\nh5, .h5,\nh6, .h6 {\n margin-top: (@line-height-computed / 2);\n margin-bottom: (@line-height-computed / 2);\n\n small,\n .small {\n font-size: 75%;\n }\n}\n\nh1, .h1 { font-size: @font-size-h1; }\nh2, .h2 { font-size: @font-size-h2; }\nh3, .h3 { font-size: @font-size-h3; }\nh4, .h4 { font-size: @font-size-h4; }\nh5, .h5 { font-size: @font-size-h5; }\nh6, .h6 { font-size: @font-size-h6; }\n\n\n// Body text\n// -------------------------\n\np {\n margin: 0 0 (@line-height-computed / 2);\n}\n\n.lead {\n margin-bottom: @line-height-computed;\n font-size: floor((@font-size-base * 1.15));\n font-weight: 300;\n line-height: 1.4;\n\n @media (min-width: @screen-sm-min) {\n font-size: (@font-size-base * 1.5);\n }\n}\n\n\n// Emphasis & misc\n// -------------------------\n\n// Ex: (12px small font / 14px base font) * 100% = about 85%\nsmall,\n.small {\n font-size: floor((100% * @font-size-small / @font-size-base));\n}\n\nmark,\n.mark {\n background-color: @state-warning-bg;\n padding: .2em;\n}\n\n// Alignment\n.text-left { text-align: left; }\n.text-right { text-align: right; }\n.text-center { text-align: center; }\n.text-justify { text-align: justify; }\n.text-nowrap { white-space: nowrap; }\n\n// Transformation\n.text-lowercase { text-transform: lowercase; }\n.text-uppercase { text-transform: uppercase; }\n.text-capitalize { text-transform: capitalize; }\n\n// Contextual colors\n.text-muted {\n color: @text-muted;\n}\n.text-primary {\n .text-emphasis-variant(@brand-primary);\n}\n.text-success {\n .text-emphasis-variant(@state-success-text);\n}\n.text-info {\n .text-emphasis-variant(@state-info-text);\n}\n.text-warning {\n .text-emphasis-variant(@state-warning-text);\n}\n.text-danger {\n .text-emphasis-variant(@state-danger-text);\n}\n\n// Contextual backgrounds\n// For now we'll leave these alongside the text classes until v4 when we can\n// safely shift things around (per SemVer rules).\n.bg-primary {\n // Given the contrast here, this is the only class to have its color inverted\n // automatically.\n color: #fff;\n .bg-variant(@brand-primary);\n}\n.bg-success {\n .bg-variant(@state-success-bg);\n}\n.bg-info {\n .bg-variant(@state-info-bg);\n}\n.bg-warning {\n .bg-variant(@state-warning-bg);\n}\n.bg-danger {\n .bg-variant(@state-danger-bg);\n}\n\n\n// Page header\n// -------------------------\n\n.page-header {\n padding-bottom: ((@line-height-computed / 2) - 1);\n margin: (@line-height-computed * 2) 0 @line-height-computed;\n border-bottom: 1px solid @page-header-border-color;\n}\n\n\n// Lists\n// -------------------------\n\n// Unordered and Ordered lists\nul,\nol {\n margin-top: 0;\n margin-bottom: (@line-height-computed / 2);\n ul,\n ol {\n margin-bottom: 0;\n }\n}\n\n// List options\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n .list-unstyled();\n margin-left: -5px;\n\n > li {\n display: inline-block;\n padding-left: 5px;\n padding-right: 5px;\n }\n}\n\n// Description Lists\ndl {\n margin-top: 0; // Remove browser default\n margin-bottom: @line-height-computed;\n}\ndt,\ndd {\n line-height: @line-height-base;\n}\ndt {\n font-weight: bold;\n}\ndd {\n margin-left: 0; // Undo browser default\n}\n\n// Horizontal description lists\n//\n// Defaults to being stacked without any of the below styles applied, until the\n// grid breakpoint is reached (default of ~768px).\n\n.dl-horizontal {\n dd {\n &:extend(.clearfix all); // Clear the floated `dt` if an empty `dd` is present\n }\n\n @media (min-width: @grid-float-breakpoint) {\n dt {\n float: left;\n width: (@dl-horizontal-offset - 20);\n clear: left;\n text-align: right;\n .text-overflow();\n }\n dd {\n margin-left: @dl-horizontal-offset;\n }\n }\n}\n\n\n// Misc\n// -------------------------\n\n// Abbreviations and acronyms\nabbr[title],\n// Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257\nabbr[data-original-title] {\n cursor: help;\n border-bottom: 1px dotted @abbr-border-color;\n}\n.initialism {\n font-size: 90%;\n .text-uppercase();\n}\n\n// Blockquotes\nblockquote {\n padding: (@line-height-computed / 2) @line-height-computed;\n margin: 0 0 @line-height-computed;\n font-size: @blockquote-font-size;\n border-left: 5px solid @blockquote-border-color;\n\n p,\n ul,\n ol {\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n // Note: Deprecated small and .small as of v3.1.0\n // Context: https://github.com/twbs/bootstrap/issues/11660\n footer,\n small,\n .small {\n display: block;\n font-size: 80%; // back to default font-size\n line-height: @line-height-base;\n color: @blockquote-small-color;\n\n &:before {\n content: '\\2014 \\00A0'; // em dash, nbsp\n }\n }\n}\n\n// Opposite alignment of blockquote\n//\n// Heads up: `blockquote.pull-right` has been deprecated as of v3.1.0.\n.blockquote-reverse,\nblockquote.pull-right {\n padding-right: 15px;\n padding-left: 0;\n border-right: 5px solid @blockquote-border-color;\n border-left: 0;\n text-align: right;\n\n // Account for citation\n footer,\n small,\n .small {\n &:before { content: ''; }\n &:after {\n content: '\\00A0 \\2014'; // nbsp, em dash\n }\n }\n}\n\n// Addresses\naddress {\n margin-bottom: @line-height-computed;\n font-style: normal;\n line-height: @line-height-base;\n}\n","// Typography\n\n.text-emphasis-variant(@color) {\n color: @color;\n a&:hover,\n a&:focus {\n color: darken(@color, 10%);\n }\n}\n","// Contextual backgrounds\n\n.bg-variant(@color) {\n background-color: @color;\n a&:hover,\n a&:focus {\n background-color: darken(@color, 10%);\n }\n}\n","// Text overflow\n// Requires inline-block or block for proper styling\n\n.text-overflow() {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n","//\n// Code (inline and block)\n// --------------------------------------------------\n\n\n// Inline and block code styles\ncode,\nkbd,\npre,\nsamp {\n font-family: @font-family-monospace;\n}\n\n// Inline code\ncode {\n padding: 2px 4px;\n font-size: 90%;\n color: @code-color;\n background-color: @code-bg;\n border-radius: @border-radius-base;\n}\n\n// User input typically entered via keyboard\nkbd {\n padding: 2px 4px;\n font-size: 90%;\n color: @kbd-color;\n background-color: @kbd-bg;\n border-radius: @border-radius-small;\n box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);\n\n kbd {\n padding: 0;\n font-size: 100%;\n font-weight: bold;\n box-shadow: none;\n }\n}\n\n// Blocks of code\npre {\n display: block;\n padding: ((@line-height-computed - 1) / 2);\n margin: 0 0 (@line-height-computed / 2);\n font-size: (@font-size-base - 1); // 14px to 13px\n line-height: @line-height-base;\n word-break: break-all;\n word-wrap: break-word;\n color: @pre-color;\n background-color: @pre-bg;\n border: 1px solid @pre-border-color;\n border-radius: @border-radius-base;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n padding: 0;\n font-size: inherit;\n color: inherit;\n white-space: pre-wrap;\n background-color: transparent;\n border-radius: 0;\n }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n max-height: @pre-scrollable-max-height;\n overflow-y: scroll;\n}\n","//\n// Grid system\n// --------------------------------------------------\n\n\n// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n.container {\n .container-fixed();\n\n @media (min-width: @screen-sm-min) {\n width: @container-sm;\n }\n @media (min-width: @screen-md-min) {\n width: @container-md;\n }\n @media (min-width: @screen-lg-min) {\n width: @container-lg;\n }\n}\n\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but without any defined\n// width for fluid, full width layouts.\n\n.container-fluid {\n .container-fixed();\n}\n\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n.row {\n .make-row();\n}\n\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n.make-grid-columns();\n\n\n// Extra small grid\n//\n// Columns, offsets, pushes, and pulls for extra small devices like\n// smartphones.\n\n.make-grid(xs);\n\n\n// Small grid\n//\n// Columns, offsets, pushes, and pulls for the small device range, from phones\n// to tablets.\n\n@media (min-width: @screen-sm-min) {\n .make-grid(sm);\n}\n\n\n// Medium grid\n//\n// Columns, offsets, pushes, and pulls for the desktop device range.\n\n@media (min-width: @screen-md-min) {\n .make-grid(md);\n}\n\n\n// Large grid\n//\n// Columns, offsets, pushes, and pulls for the large desktop device range.\n\n@media (min-width: @screen-lg-min) {\n .make-grid(lg);\n}\n","// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n// Centered container element\n.container-fixed(@gutter: @grid-gutter-width) {\n margin-right: auto;\n margin-left: auto;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n &:extend(.clearfix all);\n}\n\n// Creates a wrapper for a series of columns\n.make-row(@gutter: @grid-gutter-width) {\n margin-left: ceil((@gutter / -2));\n margin-right: floor((@gutter / -2));\n &:extend(.clearfix all);\n}\n\n// Generate the extra small columns\n.make-xs-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n float: left;\n width: percentage((@columns / @grid-columns));\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n}\n.make-xs-column-offset(@columns) {\n margin-left: percentage((@columns / @grid-columns));\n}\n.make-xs-column-push(@columns) {\n left: percentage((@columns / @grid-columns));\n}\n.make-xs-column-pull(@columns) {\n right: percentage((@columns / @grid-columns));\n}\n\n// Generate the small columns\n.make-sm-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n\n @media (min-width: @screen-sm-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-offset(@columns) {\n @media (min-width: @screen-sm-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-push(@columns) {\n @media (min-width: @screen-sm-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-pull(@columns) {\n @media (min-width: @screen-sm-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n\n// Generate the medium columns\n.make-md-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n\n @media (min-width: @screen-md-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-offset(@columns) {\n @media (min-width: @screen-md-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-push(@columns) {\n @media (min-width: @screen-md-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-pull(@columns) {\n @media (min-width: @screen-md-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n\n// Generate the large columns\n.make-lg-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n\n @media (min-width: @screen-lg-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-offset(@columns) {\n @media (min-width: @screen-lg-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-push(@columns) {\n @media (min-width: @screen-lg-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-pull(@columns) {\n @media (min-width: @screen-lg-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `@grid-columns`.\n\n.make-grid-columns() {\n // Common styles for all sizes of grid columns, widths 1-12\n .col(@index) { // initial\n @item: ~\".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}\";\n .col((@index + 1), @item);\n }\n .col(@index, @list) when (@index =< @grid-columns) { // general; \"=<\" isn't a typo\n @item: ~\".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}\";\n .col((@index + 1), ~\"@{list}, @{item}\");\n }\n .col(@index, @list) when (@index > @grid-columns) { // terminal\n @{list} {\n position: relative;\n // Prevent columns from collapsing when empty\n min-height: 1px;\n // Inner gutter via padding\n padding-left: ceil((@grid-gutter-width / 2));\n padding-right: floor((@grid-gutter-width / 2));\n }\n }\n .col(1); // kickstart it\n}\n\n.float-grid-columns(@class) {\n .col(@index) { // initial\n @item: ~\".col-@{class}-@{index}\";\n .col((@index + 1), @item);\n }\n .col(@index, @list) when (@index =< @grid-columns) { // general\n @item: ~\".col-@{class}-@{index}\";\n .col((@index + 1), ~\"@{list}, @{item}\");\n }\n .col(@index, @list) when (@index > @grid-columns) { // terminal\n @{list} {\n float: left;\n }\n }\n .col(1); // kickstart it\n}\n\n.calc-grid-column(@index, @class, @type) when (@type = width) and (@index > 0) {\n .col-@{class}-@{index} {\n width: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = push) and (@index > 0) {\n .col-@{class}-push-@{index} {\n left: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = push) and (@index = 0) {\n .col-@{class}-push-0 {\n left: auto;\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index > 0) {\n .col-@{class}-pull-@{index} {\n right: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index = 0) {\n .col-@{class}-pull-0 {\n right: auto;\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = offset) {\n .col-@{class}-offset-@{index} {\n margin-left: percentage((@index / @grid-columns));\n }\n}\n\n// Basic looping in LESS\n.loop-grid-columns(@index, @class, @type) when (@index >= 0) {\n .calc-grid-column(@index, @class, @type);\n // next iteration\n .loop-grid-columns((@index - 1), @class, @type);\n}\n\n// Create grid for specific class\n.make-grid(@class) {\n .float-grid-columns(@class);\n .loop-grid-columns(@grid-columns, @class, width);\n .loop-grid-columns(@grid-columns, @class, pull);\n .loop-grid-columns(@grid-columns, @class, push);\n .loop-grid-columns(@grid-columns, @class, offset);\n}\n","//\n// Tables\n// --------------------------------------------------\n\n\ntable {\n background-color: @table-bg;\n}\ncaption {\n padding-top: @table-cell-padding;\n padding-bottom: @table-cell-padding;\n color: @text-muted;\n text-align: left;\n}\nth {\n text-align: left;\n}\n\n\n// Baseline styles\n\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: @line-height-computed;\n // Cells\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n padding: @table-cell-padding;\n line-height: @line-height-base;\n vertical-align: top;\n border-top: 1px solid @table-border-color;\n }\n }\n }\n // Bottom align for column headings\n > thead > tr > th {\n vertical-align: bottom;\n border-bottom: 2px solid @table-border-color;\n }\n // Remove top border from thead by default\n > caption + thead,\n > colgroup + thead,\n > thead:first-child {\n > tr:first-child {\n > th,\n > td {\n border-top: 0;\n }\n }\n }\n // Account for multiple tbody instances\n > tbody + tbody {\n border-top: 2px solid @table-border-color;\n }\n\n // Nesting\n .table {\n background-color: @body-bg;\n }\n}\n\n\n// Condensed table w/ half padding\n\n.table-condensed {\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n padding: @table-condensed-cell-padding;\n }\n }\n }\n}\n\n\n// Bordered version\n//\n// Add borders all around the table and between all the columns.\n\n.table-bordered {\n border: 1px solid @table-border-color;\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n border: 1px solid @table-border-color;\n }\n }\n }\n > thead > tr {\n > th,\n > td {\n border-bottom-width: 2px;\n }\n }\n}\n\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n > tbody > tr:nth-of-type(odd) {\n background-color: @table-bg-accent;\n }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n > tbody > tr:hover {\n background-color: @table-bg-hover;\n }\n}\n\n\n// Table cell sizing\n//\n// Reset default table behavior\n\ntable col[class*=\"col-\"] {\n position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)\n float: none;\n display: table-column;\n}\ntable {\n td,\n th {\n &[class*=\"col-\"] {\n position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)\n float: none;\n display: table-cell;\n }\n }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n// Generate the contextual variants\n.table-row-variant(active; @table-bg-active);\n.table-row-variant(success; @state-success-bg);\n.table-row-variant(info; @state-info-bg);\n.table-row-variant(warning; @state-warning-bg);\n.table-row-variant(danger; @state-danger-bg);\n\n\n// Responsive tables\n//\n// Wrap your tables in `.table-responsive` and we'll make them mobile friendly\n// by enabling horizontal scrolling. Only applies <768px. Everything above that\n// will display normally.\n\n.table-responsive {\n overflow-x: auto;\n min-height: 0.01%; // Workaround for IE9 bug (see https://github.com/twbs/bootstrap/issues/14837)\n\n @media screen and (max-width: @screen-xs-max) {\n width: 100%;\n margin-bottom: (@line-height-computed * 0.75);\n overflow-y: hidden;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n border: 1px solid @table-border-color;\n\n // Tighten up spacing\n > .table {\n margin-bottom: 0;\n\n // Ensure the content doesn't wrap\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th,\n > td {\n white-space: nowrap;\n }\n }\n }\n }\n\n // Special overrides for the bordered tables\n > .table-bordered {\n border: 0;\n\n // Nuke the appropriate borders so that the parent can handle them\n > thead,\n > tbody,\n > tfoot {\n > tr {\n > th:first-child,\n > td:first-child {\n border-left: 0;\n }\n > th:last-child,\n > td:last-child {\n border-right: 0;\n }\n }\n }\n\n // Only nuke the last row's bottom-border in `tbody` and `tfoot` since\n // chances are there will be only one `tr` in a `thead` and that would\n // remove the border altogether.\n > tbody,\n > tfoot {\n > tr:last-child {\n > th,\n > td {\n border-bottom: 0;\n }\n }\n }\n\n }\n }\n}\n","// Tables\n\n.table-row-variant(@state; @background) {\n // Exact selectors below required to override `.table-striped` and prevent\n // inheritance to nested tables.\n .table > thead > tr,\n .table > tbody > tr,\n .table > tfoot > tr {\n > td.@{state},\n > th.@{state},\n &.@{state} > td,\n &.@{state} > th {\n background-color: @background;\n }\n }\n\n // Hover states for `.table-hover`\n // Note: this is not available for cells or rows within `thead` or `tfoot`.\n .table-hover > tbody > tr {\n > td.@{state}:hover,\n > th.@{state}:hover,\n &.@{state}:hover > td,\n &:hover > .@{state},\n &.@{state}:hover > th {\n background-color: darken(@background, 5%);\n }\n }\n}\n","//\n// Forms\n// --------------------------------------------------\n\n\n// Normalize non-controls\n//\n// Restyle and baseline non-control form elements.\n\nfieldset {\n padding: 0;\n margin: 0;\n border: 0;\n // Chrome and Firefox set a `min-width: min-content;` on fieldsets,\n // so we reset that to ensure it behaves more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359.\n min-width: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n padding: 0;\n margin-bottom: @line-height-computed;\n font-size: (@font-size-base * 1.5);\n line-height: inherit;\n color: @legend-color;\n border: 0;\n border-bottom: 1px solid @legend-border-color;\n}\n\nlabel {\n display: inline-block;\n max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141)\n margin-bottom: 5px;\n font-weight: bold;\n}\n\n\n// Normalize form controls\n//\n// While most of our form styles require extra classes, some basic normalization\n// is required to ensure optimum display with or without those classes to better\n// address browser inconsistencies.\n\n// Override content-box in Normalize (* isn't specific enough)\ninput[type=\"search\"] {\n .box-sizing(border-box);\n}\n\n// Position radios and checkboxes better\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n margin: 4px 0 0;\n margin-top: 1px \\9; // IE8-9\n line-height: normal;\n}\n\ninput[type=\"file\"] {\n display: block;\n}\n\n// Make range inputs behave like textual form controls\ninput[type=\"range\"] {\n display: block;\n width: 100%;\n}\n\n// Make multiple select elements height not fixed\nselect[multiple],\nselect[size] {\n height: auto;\n}\n\n// Focus for file, radio, and checkbox\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n .tab-focus();\n}\n\n// Adjust output element\noutput {\n display: block;\n padding-top: (@padding-base-vertical + 1);\n font-size: @font-size-base;\n line-height: @line-height-base;\n color: @input-color;\n}\n\n\n// Common form controls\n//\n// Shared size and type resets for form controls. Apply `.form-control` to any\n// of the following form controls:\n//\n// select\n// textarea\n// input[type=\"text\"]\n// input[type=\"password\"]\n// input[type=\"datetime\"]\n// input[type=\"datetime-local\"]\n// input[type=\"date\"]\n// input[type=\"month\"]\n// input[type=\"time\"]\n// input[type=\"week\"]\n// input[type=\"number\"]\n// input[type=\"email\"]\n// input[type=\"url\"]\n// input[type=\"search\"]\n// input[type=\"tel\"]\n// input[type=\"color\"]\n\n.form-control {\n display: block;\n width: 100%;\n height: @input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border)\n padding: @padding-base-vertical @padding-base-horizontal;\n font-size: @font-size-base;\n line-height: @line-height-base;\n color: @input-color;\n background-color: @input-bg;\n background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n border: 1px solid @input-border;\n border-radius: @input-border-radius; // Note: This has no effect on s in CSS.\n .box-shadow(inset 0 1px 1px rgba(0,0,0,.075));\n .transition(~\"border-color ease-in-out .15s, box-shadow ease-in-out .15s\");\n\n // Customize the `:focus` state to imitate native WebKit styles.\n .form-control-focus();\n\n // Placeholder\n .placeholder();\n\n // Disabled and read-only inputs\n //\n // HTML5 says that controls under a fieldset > legend:first-child won't be\n // disabled if the fieldset is disabled. Due to implementation difficulty, we\n // don't honor that edge case; we style them as disabled anyway.\n &[disabled],\n &[readonly],\n fieldset[disabled] & {\n background-color: @input-bg-disabled;\n opacity: 1; // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655\n }\n\n &[disabled],\n fieldset[disabled] & {\n cursor: @cursor-disabled;\n }\n\n // Reset height for `textarea`s\n textarea& {\n height: auto;\n }\n}\n\n\n// Search inputs in iOS\n//\n// This overrides the extra rounded corners on search inputs in iOS so that our\n// `.form-control` class can properly style them. Note that this cannot simply\n// be added to `.form-control` as it's not specific enough. For details, see\n// https://github.com/twbs/bootstrap/issues/11586.\n\ninput[type=\"search\"] {\n -webkit-appearance: none;\n}\n\n\n// Special styles for iOS temporal inputs\n//\n// In Mobile Safari, setting `display: block` on temporal inputs causes the\n// text within the input to become vertically misaligned. As a workaround, we\n// set a pixel line-height that matches the given height of the input, but only\n// for Safari. See https://bugs.webkit.org/show_bug.cgi?id=139848\n//\n// Note that as of 8.3, iOS doesn't support `datetime` or `week`.\n\n@media screen and (-webkit-min-device-pixel-ratio: 0) {\n input[type=\"date\"],\n input[type=\"time\"],\n input[type=\"datetime-local\"],\n input[type=\"month\"] {\n &.form-control {\n line-height: @input-height-base;\n }\n\n &.input-sm,\n .input-group-sm & {\n line-height: @input-height-small;\n }\n\n &.input-lg,\n .input-group-lg & {\n line-height: @input-height-large;\n }\n }\n}\n\n\n// Form groups\n//\n// Designed to help with the organization and spacing of vertical forms. For\n// horizontal forms, use the predefined grid classes.\n\n.form-group {\n margin-bottom: @form-group-margin-bottom;\n}\n\n\n// Checkboxes and radios\n//\n// Indent the labels to position radios/checkboxes as hanging controls.\n\n.radio,\n.checkbox {\n position: relative;\n display: block;\n margin-top: 10px;\n margin-bottom: 10px;\n\n label {\n min-height: @line-height-computed; // Ensure the input doesn't jump when there is no text\n padding-left: 20px;\n margin-bottom: 0;\n font-weight: normal;\n cursor: pointer;\n }\n}\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n position: absolute;\n margin-left: -20px;\n margin-top: 4px \\9;\n}\n\n.radio + .radio,\n.checkbox + .checkbox {\n margin-top: -5px; // Move up sibling radios or checkboxes for tighter spacing\n}\n\n// Radios and checkboxes on same line\n.radio-inline,\n.checkbox-inline {\n position: relative;\n display: inline-block;\n padding-left: 20px;\n margin-bottom: 0;\n vertical-align: middle;\n font-weight: normal;\n cursor: pointer;\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n margin-top: 0;\n margin-left: 10px; // space out consecutive inline controls\n}\n\n// Apply same disabled cursor tweak as for inputs\n// Some special care is needed because

+
+
+ +
+
+
+
+

Demo Notes

+
+
+
    +
  • The maximum file size for uploads in this demo is 999 KB (default file size is unlimited).
  • +
  • Only image files (JPG, GIF, PNG) are allowed in this demo (by default there is no file type restriction).
  • +
  • Uploaded files will be deleted automatically after 5 minutes or less (demo files are stored in memory).
  • +
  • You can drag & drop files from your desktop on this webpage (see Browser support).
  • +
  • Please refer to the project website and documentation for more information.
  • +
  • Built with the Bootstrap CSS framework and Icons from Glyphicons.
  • +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/js/jqFileUploads/basic.html b/public/js/jqFileUploads/basic.html new file mode 100755 index 0000000..ec5fe4b --- /dev/null +++ b/public/js/jqFileUploads/basic.html @@ -0,0 +1,136 @@ + + + + + + + +jQuery File Upload Demo - Basic version + + + + + + + + + + + +
+

jQuery File Upload Demo

+

Basic version

+ +
+
+

File Upload widget with multiple file selection, drag&drop support and progress bar for jQuery.
+ Supports cross-domain, chunked and resumable file uploads.
+ Works with any server-side platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard HTML form file uploads.

+
+
+ + + + Select files... + + + +
+
+ +
+
+
+ +
+
+
+
+

Demo Notes

+
+
+
    +
  • The maximum file size for uploads in this demo is 999 KB (default file size is unlimited).
  • +
  • Only image files (JPG, GIF, PNG) are allowed in this demo (by default there is no file type restriction).
  • +
  • Uploaded files will be deleted automatically after 5 minutes or less (demo files are stored in memory).
  • +
  • You can drag & drop files from your desktop on this webpage (see Browser support).
  • +
  • Please refer to the project website and documentation for more information.
  • +
  • Built with the Bootstrap CSS framework and Icons from Glyphicons.
  • +
+
+
+
+ + + + + + + + + + + + diff --git a/public/js/jqFileUploads/bower.json b/public/js/jqFileUploads/bower.json new file mode 100755 index 0000000..10c40b2 --- /dev/null +++ b/public/js/jqFileUploads/bower.json @@ -0,0 +1,64 @@ +{ + "name": "blueimp-file-upload", + "version": "9.11.2", + "title": "jQuery File Upload", + "description": "File Upload widget with multiple file selection, drag&drop support, progress bar, validation and preview images.", + "keywords": [ + "jquery", + "file", + "upload", + "widget", + "multiple", + "selection", + "drag", + "drop", + "progress", + "preview", + "cross-domain", + "cross-site", + "chunk", + "resume", + "gae", + "go", + "python", + "php", + "bootstrap" + ], + "homepage": "https://github.com/blueimp/jQuery-File-Upload", + "author": { + "name": "Sebastian Tschan", + "url": "https://blueimp.net" + }, + "maintainers": [ + { + "name": "Sebastian Tschan", + "url": "https://blueimp.net" + } + ], + "repository": { + "type": "git", + "url": "git://github.com/blueimp/jQuery-File-Upload.git" + }, + "bugs": "https://github.com/blueimp/jQuery-File-Upload/issues", + "license": "MIT", + "dependencies": { + "jquery": ">=1.6", + "blueimp-tmpl": ">=2.5.4", + "blueimp-load-image": ">=1.13.0", + "blueimp-canvas-to-blob": ">=2.1.1" + }, + "main": [ + "js/jquery.fileupload.js" + ], + "ignore": [ + "/*.*", + "/cors", + "css/demo-ie8.css", + "css/demo.css", + "css/style.css", + "js/app.js", + "js/main.js", + "server", + "test" + ] +} diff --git a/public/js/jqFileUploads/cors/postmessage.html b/public/js/jqFileUploads/cors/postmessage.html new file mode 100755 index 0000000..fab9d60 --- /dev/null +++ b/public/js/jqFileUploads/cors/postmessage.html @@ -0,0 +1,75 @@ + + + + + +jQuery File Upload Plugin postMessage API + + + + + + diff --git a/public/js/jqFileUploads/cors/result.html b/public/js/jqFileUploads/cors/result.html new file mode 100755 index 0000000..c5f30f9 --- /dev/null +++ b/public/js/jqFileUploads/cors/result.html @@ -0,0 +1,24 @@ + + + + + +jQuery Iframe Transport Plugin Redirect Page + + + + + diff --git a/public/js/jqFileUploads/css/demo-ie8.css b/public/js/jqFileUploads/css/demo-ie8.css new file mode 100755 index 0000000..861852a --- /dev/null +++ b/public/js/jqFileUploads/css/demo-ie8.css @@ -0,0 +1,21 @@ +@charset "UTF-8"; +/* + * jQuery File Upload Demo CSS Fixes for IE<9 + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2013, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/MIT + */ + +.navigation { + list-style: none; + padding: 0; + margin: 1em 0; +} +.navigation li { + display: inline; + margin-right: 10px; +} diff --git a/public/js/jqFileUploads/css/demo.css b/public/js/jqFileUploads/css/demo.css new file mode 100755 index 0000000..83af7ad --- /dev/null +++ b/public/js/jqFileUploads/css/demo.css @@ -0,0 +1,67 @@ +@charset "UTF-8"; +/* + * jQuery File Upload Demo CSS + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2013, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/MIT + */ + +body { + max-width: 750px; + margin: 0 auto; + padding: 1em; + font-family: "Lucida Grande", "Lucida Sans Unicode", Arial, sans-serif; + font-size: 1em; + line-height: 1.4em; + background: #222; + color: #fff; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} +a { + color: orange; + text-decoration: none; +} +img { + border: 0; + vertical-align: middle; +} +h1 { + line-height: 1em; +} +blockquote { + padding: 0 0 0 15px; + margin: 0 0 20px; + border-left: 5px solid #eee; +} +table { + width: 100%; + margin: 10px 0; +} + +.fileupload-progress { + margin: 10px 0; +} +.fileupload-progress .progress-extended { + margin-top: 5px; +} +.error { + color: red; +} + +@media (min-width: 481px) { + .navigation { + list-style: none; + padding: 0; + } + .navigation li { + display: inline-block; + } + .navigation li:not(:first-child):before { + content: "| "; + } +} diff --git a/public/js/jqFileUploads/css/jquery.fileupload-noscript.css b/public/js/jqFileUploads/css/jquery.fileupload-noscript.css new file mode 100755 index 0000000..d0dda3a --- /dev/null +++ b/public/js/jqFileUploads/css/jquery.fileupload-noscript.css @@ -0,0 +1,22 @@ +@charset "UTF-8"; +/* + * jQuery File Upload Plugin NoScript CSS + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2013, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/MIT + */ + +.fileinput-button input { + position: static; + opacity: 1; + filter: none; + font-size: inherit; + direction: inherit; +} +.fileinput-button span { + display: none; +} diff --git a/public/js/jqFileUploads/css/jquery.fileupload-ui-noscript.css b/public/js/jqFileUploads/css/jquery.fileupload-ui-noscript.css new file mode 100755 index 0000000..6ad2ad6 --- /dev/null +++ b/public/js/jqFileUploads/css/jquery.fileupload-ui-noscript.css @@ -0,0 +1,17 @@ +@charset "UTF-8"; +/* + * jQuery File Upload UI Plugin NoScript CSS + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2012, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/MIT + */ + +.fileinput-button i, +.fileupload-buttonbar .delete, +.fileupload-buttonbar .toggle { + display: none; +} diff --git a/public/js/jqFileUploads/css/jquery.fileupload-ui.css b/public/js/jqFileUploads/css/jquery.fileupload-ui.css new file mode 100755 index 0000000..95cca15 --- /dev/null +++ b/public/js/jqFileUploads/css/jquery.fileupload-ui.css @@ -0,0 +1,57 @@ +@charset "UTF-8"; +/* + * jQuery File Upload UI Plugin CSS + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2010, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/MIT + */ + +.fileupload-buttonbar .btn, +.fileupload-buttonbar .toggle { + margin-bottom: 5px; +} +.progress-animated .progress-bar, +.progress-animated .bar { + background: url("../img/progressbar.gif") !important; + filter: none; +} +.fileupload-process { + float: right; + display: none; +} +.fileupload-processing .fileupload-process, +.files .processing .preview { + display: block; + width: 32px; + height: 32px; + background: url("../img/loading.gif") center no-repeat; + background-size: contain; +} +.files audio, +.files video { + max-width: 300px; +} + +@media (max-width: 767px) { + .fileupload-buttonbar .toggle, + .files .toggle, + .files .btn span { + display: none; + } + .files .name { + width: 80px; + word-wrap: break-word; + } + .files audio, + .files video { + max-width: 80px; + } + .files img, + .files canvas { + max-width: 100%; + } +} diff --git a/public/js/jqFileUploads/css/jquery.fileupload.css b/public/js/jqFileUploads/css/jquery.fileupload.css new file mode 100755 index 0000000..ce7e422 --- /dev/null +++ b/public/js/jqFileUploads/css/jquery.fileupload.css @@ -0,0 +1,37 @@ +@charset "UTF-8"; +/* + * jQuery File Upload Plugin CSS + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2013, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/MIT + */ + +.fileinput-button { + position: relative; + overflow: hidden; + display: inline-block; +} +.fileinput-button input { + position: absolute; + top: 0; + right: 0; + margin: 0; + opacity: 0; + -ms-filter: 'alpha(opacity=0)'; + font-size: 200px; + direction: ltr; + cursor: pointer; +} + +/* Fixes for IE < 8 */ +@media screen\9 { + .fileinput-button input { + filter: alpha(opacity=0); + font-size: 100%; + height: 100%; + } +} diff --git a/public/js/jqFileUploads/css/style.css b/public/js/jqFileUploads/css/style.css new file mode 100755 index 0000000..85a07e0 --- /dev/null +++ b/public/js/jqFileUploads/css/style.css @@ -0,0 +1,27 @@ +@charset "UTF-8"; +/* + * jQuery File Upload Plugin CSS Example + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2013, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/MIT + */ + +body { + padding-top: 60px; +} + +/* The header of the navbar */ +.navbar-header { + text-align: center; + margin: 10px; + float: none !important; +} + +/* The website name */ +.navbar-brand { + float: none !important; +} diff --git a/public/js/jqFileUploads/img/loading.gif b/public/js/jqFileUploads/img/loading.gif new file mode 100755 index 0000000000000000000000000000000000000000..90f28cbdbb390b095e0d619cbe8d91208798e58f GIT binary patch literal 3897 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 D^>?LD literal 0 HcmV?d00001 diff --git a/public/js/jqFileUploads/img/progressbar.gif b/public/js/jqFileUploads/img/progressbar.gif new file mode 100755 index 0000000000000000000000000000000000000000..fbcce6bc9abfcc7893e65ef20b3e77ee16ec37b1 GIT binary patch literal 3323 zcmcK7eNYp38VB%=tbvu|O{=v;j+Z$Bg`>zI2IVD3Ovp-%sA$2LilR;|zMv9BB_t%- zylmcIh`dQLinJh9P{0Ja6I28#3PquysCf3GB1bBEXgfV_qnx8-n07k#kNmNdnVrvm zpZz`0v#~Ih7`{0em<2RA0wa|vr`!U1uI~v zF&O+zyfdOBoHdq{xOf7$)mN>lwcHgLVd-HT}JxYe94Gv(X_H__aHV~b7Ud4Pvk@t?84W?#& z+#WmNc5cUNoapyda#-P`2+n z-sGAbb$_$TW887}6BiJKaV$E-69{23pNeG2=_;8-CM9c*OiHOp|F9Igl_JQHqf)Y3 zhR7s(mQBh5ER~A&6^|p|OQqmd+(8 zZCb1qD*K}>!|B|YVuCsS=V0!N=?-)po(^$x*kptYX9N)B^~VJ^d7-@(M1WK;9&Liw~wO?NN(E}be} z`e0?=)*y}@Xkgx6S$ZS(8d|ifzK_`x?=N$)pWk;s0Ve?`qDX{%L@X0)6guz8Adh+qh(mq90aE=iAZp(dGccGHgmlkOke19p-dfci z@1Ni#x_B;&@l8icy*4roEXN?9&vh-w;n!Fp3;~Dn4#aOVi22tbo-KY@B1*TAgMsta zMh~68EXdvgJe$<9yOgn~E8aiQNo1$l`FUCI52J)nHW8+@|McSTe{t30@NpO^cv#waY+68ew4oT={#AGoA?Je^k$f`&u}bW zOjoRA_$utq5rspZ;5HXZvqE1#D) z5*M}9jPoq=-V*<cQuuK%yr=$XZl2k``40P4ol60hjb({{!c5Rtn3Urk4?uRRFNQuFGPhZnTBMO zu{W&|u4t53w>M}v(wtDAV!oHP(QY&~_X0qupII*-&GksTPf#SZ#4eaOCrG~hUblo4 zya(R){3rfyxiH2%l{iN;xS(G)OWOx8>UV9u+Vm_iN98oT20F}U!8utl4(lm=E)S6) zN~xM^Q?U;_!Ku4seH{bquy+4OfwlV{0C?tW&XteqJmP<|V)6eK9ey(~1Sbd1rgF1{ zd@&*xkriY}MS><}4DI}o3>d2jm74@fNpg-Vf(zPY?8nj=O8o$gp_gzr3~{MEs({T( z5+EcMIErR!`wwLZHp{c_?{mEhe%dlbNH8E^nm+5|owEXTR;S2+hYWR^j zWB!qbQWumI=vg;ZQvO$8W9QeMX~YdqNb^K%y~T6@tCTOlSM-j*$OOSSZX6cRfzPb* zP-Q}8v|6Q&$hAFfGA(f5>_XzuqhFP@h(0x@%#tsExSB}v(zy6^qc>xW*XCVMBPKf` zF>gsuD~+eKuRP{tWLo#OoJ2?fR@_0f5Olf}}Khc$ZhB$$3I7S9&n z^G{G0pQnju2Md}?zmbr + + + + + + + <?= $event->event_name; ?> - PhotoShare + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + + +
+
+ + +
+
+ + + Select Photos + + + +
+ + + + + + + + +
+ +
+ + + +
+
+ +
+ +
+
+
+ +
 
+
+
+ + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/js/jqFileUploads/jquery-ui.html b/public/js/jqFileUploads/jquery-ui.html new file mode 100755 index 0000000..cdd5260 --- /dev/null +++ b/public/js/jqFileUploads/jquery-ui.html @@ -0,0 +1,250 @@ + + + + + + + +jQuery File Upload Demo - jQuery UI version + + + + + + + + + + + + + + + + + + + +

jQuery File Upload Demo

+

jQuery UI version

+
+ + +
+ +
+

File Upload widget with multiple file selection, drag&drop support, progress bars, validation and preview images, audio and video for jQuery UI.
+ Supports cross-domain, chunked and resumable file uploads and client-side image resizing.
+ Works with any server-side platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard HTML form file uploads.

+
+ +
+ + + +
+
+ + + Add files... + + + + + + + + +
+ + +
+ +
+
+
+

Demo Notes

+
    +
  • The maximum file size for uploads in this demo is 999 KB (default file size is unlimited).
  • +
  • Only image files (JPG, GIF, PNG) are allowed in this demo (by default there is no file type restriction).
  • +
  • Uploaded files will be deleted automatically after 5 minutes or less (demo files are stored in memory).
  • +
  • You can drag & drop files from your desktop on this webpage (see Browser support).
  • +
  • Please refer to the project website and documentation for more information.
  • +
  • Built with jQuery UI.
  • +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/js/jqFileUploads/js/build/js/jquery.fileupload-angular.js b/public/js/jqFileUploads/js/build/js/jquery.fileupload-angular.js new file mode 100644 index 0000000..aa7547a --- /dev/null +++ b/public/js/jqFileUploads/js/build/js/jquery.fileupload-angular.js @@ -0,0 +1 @@ +!function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery","angular","./jquery.fileupload-image","./jquery.fileupload-audio","./jquery.fileupload-video","./jquery.fileupload-validate"],a):a()}(function(){"use strict";angular.module("blueimp.fileupload",[]).provider("fileUpload",function(){var a,b=function(a){var b=angular.element(this).fileupload("option","scope");b.$evalAsync(a)},c=function(a,b){var c=b.files,d=c[0];angular.forEach(c,function(a,c){a._index=c,a.$state=function(){return b.state()},a.$processing=function(){return b.processing()},a.$progress=function(){return b.progress()},a.$response=function(){return b.response()}}),d.$submit=function(){return d.error?void 0:b.submit()},d.$cancel=function(){return b.abort()}};a=this.defaults={handleResponse:function(a,b){var c=b.result&&b.result.files;c?b.scope.replace(b.files,c):(b.errorThrown||"error"===b.textStatus)&&(b.files[0].error=b.errorThrown||b.textStatus)},add:function(a,b){if(a.isDefaultPrevented())return!1;var d=b.scope,e=[];angular.forEach(b.files,function(a){e.push(a)}),d.$parent.$applyAsync(function(){c(d,b);var a=d.option("prependFiles")?"unshift":"push";Array.prototype[a].apply(d.queue,b.files)}),b.process(function(){return d.process(b)}).always(function(){d.$parent.$applyAsync(function(){c(d,b),d.replace(e,b.files)})}).then(function(){(d.option("autoUpload")||b.autoUpload)&&b.autoUpload!==!1&&b.submit()})},done:function(a,b){if(a.isDefaultPrevented())return!1;var c=this;b.scope.$apply(function(){b.handleResponse.call(c,a,b)})},fail:function(a,b){if(a.isDefaultPrevented())return!1;var c=this,d=b.scope;return"abort"===b.errorThrown?void d.clear(b.files):void d.$apply(function(){b.handleResponse.call(c,a,b)})},stop:b,processstart:b,processstop:b,getNumberOfFiles:function(){var a=this.scope;return a.queue.length-a.processing()},dataType:"json",autoUpload:!1},this.$get=[function(){return{defaults:a}}]}).provider("formatFileSizeFilter",function(){var a={units:[{size:1e9,suffix:" GB"},{size:1e6,suffix:" MB"},{size:1e3,suffix:" KB"}]};this.defaults=a,this.$get=function(){return function(b){if(!angular.isNumber(b))return"";for(var c,d,e=!0,f=0;e;){if(e=a.units[f],c=e.prefix||"",d=e.suffix||"",f===a.units.length-1||b>=e.size)return c+(b/e.size).toFixed(2)+d;f+=1}}}}).controller("FileUploadController",["$scope","$element","$attrs","$window","fileUpload",function(a,b,c,d,e){var f={progress:function(){return b.fileupload("progress")},active:function(){return b.fileupload("active")},option:function(a,c){return 1===arguments.length?b.fileupload("option",a):void b.fileupload("option",a,c)},add:function(a){return b.fileupload("add",a)},send:function(a){return b.fileupload("send",a)},process:function(a){return b.fileupload("process",a)},processing:function(a){return b.fileupload("processing",a)}};a.disabled=!d.jQuery.support.fileInput,a.queue=a.queue||[],a.clear=function(a){var b=this.queue,c=b.length,d=a,e=1;for(angular.isArray(a)&&(d=a[0],e=a.length);c;)if(c-=1,b[c]===d)return b.splice(c,e)},a.replace=function(a,b){var c,d,e=this.queue,f=a[0];for(c=0;cd.maxFileSize||d.fileTypes&&!d.fileTypes.test(f.type)||!b(f,function(a){a.src&&(c.img=a),g.resolveWith(e,[c])},d)?c:g.promise()},resizeImage:function(c,d){if(d.disabled||!c.canvas&&!c.img)return c;d=a.extend({canvas:!0},d);var e,f=this,g=a.Deferred(),h=d.canvas&&c.canvas||c.img,i=function(a){a&&(a.width!==h.width||a.height!==h.height||d.forceResize)&&(c[a.getContext?"canvas":"img"]=a),c.preview=a,g.resolveWith(f,[c])};if(c.exif){if(d.orientation===!0&&(d.orientation=c.exif.get("Orientation")),d.thumbnail&&(e=c.exif.get("Thumbnail")))return b(e,i,d),g.promise();c.orientation?delete d.orientation:c.orientation=d.orientation}return h?(i(b.scale(h,d)),g.promise()):c},saveImage:function(b,c){if(!b.canvas||c.disabled)return b;var d=this,e=b.files[b.index],f=a.Deferred();return b.canvas.toBlob?(b.canvas.toBlob(function(a){a.name||(e.type===a.type?a.name=e.name:e.name&&(a.name=e.name.replace(/\.\w+$/,"."+a.type.substr(6)))),e.type!==a.type&&delete b.imageHead,b.files[b.index]=a,f.resolveWith(d,[b])},c.type||e.type,c.quality),f.promise()):b},loadImageMetaData:function(c,d){if(d.disabled)return c;var e=this,f=a.Deferred();return b.parseMetaData(c.files[c.index],function(b){a.extend(c,b),f.resolveWith(e,[c])},d),f.promise()},saveImageMetaData:function(a,b){if(!(a.imageHead&&a.canvas&&a.canvas.toBlob)||b.disabled)return a;var c=a.files[a.index],d=new Blob([a.imageHead,this._blobSlice.call(c,20)],{type:c.type});return d.name=c.name,a.files[a.index]=d,a},setImage:function(a,b){return a.preview&&!b.disabled&&(a.files[a.index][b.name||"preview"]=a.preview),a},deleteImageReferences:function(a,b){return b.disabled||(delete a.img,delete a.canvas,delete a.preview,delete a.imageHead),a}}})}); \ No newline at end of file diff --git a/public/js/jqFileUploads/js/build/js/jquery.fileupload-jquery-ui.js b/public/js/jqFileUploads/js/build/js/jquery.fileupload-jquery-ui.js new file mode 100644 index 0000000..a98bb08 --- /dev/null +++ b/public/js/jqFileUploads/js/build/js/jquery.fileupload-jquery-ui.js @@ -0,0 +1 @@ +!function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery","./jquery.fileupload-ui"],a):a("object"==typeof exports?require("jquery"):window.jQuery)}(function(a){"use strict";a.widget("blueimp.fileupload",a.blueimp.fileupload,{options:{processdone:function(a,b){b.context.find(".start").button("enable")},progress:function(a,b){b.context&&b.context.find(".progress").progressbar("option","value",parseInt(b.loaded/b.total*100,10))},progressall:function(b,c){var d=a(this);d.find(".fileupload-progress").find(".progress").progressbar("option","value",parseInt(c.loaded/c.total*100,10)).end().find(".progress-extended").each(function(){a(this).html((d.data("blueimp-fileupload")||d.data("fileupload"))._renderExtendedProgress(c))})}},_renderUpload:function(b,c){var d=this._super(b,c),e=a(window).width()>480;return d.find(".progress").empty().progressbar(),d.find(".start").button({icons:{primary:"ui-icon-circle-arrow-e"},text:e}),d.find(".cancel").button({icons:{primary:"ui-icon-cancel"},text:e}),d.hasClass("fade")&&d.hide(),d},_renderDownload:function(b,c){var d=this._super(b,c),e=a(window).width()>480;return d.find(".delete").button({icons:{primary:"ui-icon-trash"},text:e}),d.hasClass("fade")&&d.hide(),d},_startHandler:function(b){a(b.currentTarget).button("disable"),this._super(b)},_transition:function(b){var c=a.Deferred();return b.hasClass("fade")?b.fadeToggle(this.options.transitionDuration,this.options.transitionEasing,function(){c.resolveWith(b)}):c.resolveWith(b),c},_create:function(){this._super(),this.element.find(".fileupload-buttonbar").find(".fileinput-button").each(function(){var b=a(this).find("input:file").detach();a(this).button({icons:{primary:"ui-icon-plusthick"}}).append(b)}).end().find(".start").button({icons:{primary:"ui-icon-circle-arrow-e"}}).end().find(".cancel").button({icons:{primary:"ui-icon-cancel"}}).end().find(".delete").button({icons:{primary:"ui-icon-trash"}}).end().find(".progress").progressbar()},_destroy:function(){this.element.find(".fileupload-buttonbar").find(".fileinput-button").each(function(){var b=a(this).find("input:file").detach();a(this).button("destroy").append(b)}).end().find(".start").button("destroy").end().find(".cancel").button("destroy").end().find(".delete").button("destroy").end().find(".progress").progressbar("destroy"),this._super()}})}); \ No newline at end of file diff --git a/public/js/jqFileUploads/js/build/js/jquery.fileupload-process.js b/public/js/jqFileUploads/js/build/js/jquery.fileupload-process.js new file mode 100644 index 0000000..5d2e563 --- /dev/null +++ b/public/js/jqFileUploads/js/build/js/jquery.fileupload-process.js @@ -0,0 +1 @@ +!function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery","./jquery.fileupload"],a):a("object"==typeof exports?require("jquery"):window.jQuery)}(function(a){"use strict";var b=a.blueimp.fileupload.prototype.options.add;a.widget("blueimp.fileupload",a.blueimp.fileupload,{options:{processQueue:[],add:function(c,d){var e=a(this);d.process(function(){return e.fileupload("process",d)}),b.call(this,c,d)}},processActions:{},_processFile:function(b,c){var d=this,e=a.Deferred().resolveWith(d,[b]),f=e.promise();return this._trigger("process",null,b),a.each(b.processQueue,function(b,e){var g=function(b){return c.errorThrown?a.Deferred().rejectWith(d,[c]).promise():d.processActions[e.action].call(d,b,e)};f=f.pipe(g,e.always&&g)}),f.done(function(){d._trigger("processdone",null,b),d._trigger("processalways",null,b)}).fail(function(){d._trigger("processfail",null,b),d._trigger("processalways",null,b)}),f},_transformProcessQueue:function(b){var c=[];a.each(b.processQueue,function(){var d={},e=this.action,f=this.prefix===!0?e:this.prefix;a.each(this,function(c,e){"string"===a.type(e)&&"@"===e.charAt(0)?d[c]=b[e.slice(1)||(f?f+c.charAt(0).toUpperCase()+c.slice(1):c)]:d[c]=e}),c.push(d)}),b.processQueue=c},processing:function(){return this._processing},process:function(b){var c=this,d=a.extend({},this.options,b);return d.processQueue&&d.processQueue.length&&(this._transformProcessQueue(d),0===this._processing&&this._trigger("processstart"),a.each(b.files,function(e){var f=e?a.extend({},d):d,g=function(){return b.errorThrown?a.Deferred().rejectWith(c,[b]).promise():c._processFile(f,b)};f.index=e,c._processing+=1,c._processingQueue=c._processingQueue.pipe(g,g).always(function(){c._processing-=1,0===c._processing&&c._trigger("processstop")})})),this._processingQueue},_create:function(){this._super(),this._processing=0,this._processingQueue=a.Deferred().resolveWith(this).promise()}})}); \ No newline at end of file diff --git a/public/js/jqFileUploads/js/build/js/jquery.fileupload-ui.js b/public/js/jqFileUploads/js/build/js/jquery.fileupload-ui.js new file mode 100644 index 0000000..adf3725 --- /dev/null +++ b/public/js/jqFileUploads/js/build/js/jquery.fileupload-ui.js @@ -0,0 +1 @@ +!function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery","tmpl","./jquery.fileupload-image","./jquery.fileupload-audio","./jquery.fileupload-video","./jquery.fileupload-validate"],a):"object"==typeof exports?a(require("jquery"),require("tmpl")):a(window.jQuery,window.tmpl)}(function(a,b){"use strict";a.blueimp.fileupload.prototype._specialOptions.push("filesContainer","uploadTemplateId","downloadTemplateId"),a.widget("blueimp.fileupload",a.blueimp.fileupload,{options:{autoUpload:!1,uploadTemplateId:"template-upload",downloadTemplateId:"template-download",filesContainer:void 0,prependFiles:!1,dataType:"json",messages:{unknownError:"Unknown error"},getNumberOfFiles:function(){return this.filesContainer.children().not(".processing").length},getFilesFromResponse:function(b){return b.result&&a.isArray(b.result.files)?b.result.files:[]},add:function(b,c){if(b.isDefaultPrevented())return!1;var d=a(this),e=d.data("blueimp-fileupload")||d.data("fileupload"),f=e.options;c.context=e._renderUpload(c.files).data("data",c).addClass("processing"),f.filesContainer[f.prependFiles?"prepend":"append"](c.context),e._forceReflow(c.context),e._transition(c.context),c.process(function(){return d.fileupload("process",c)}).always(function(){c.context.each(function(b){a(this).find(".size").text(e._formatFileSize(c.files[b].size))}).removeClass("processing"),e._renderPreviews(c)}).done(function(){c.context.find(".start").prop("disabled",!1),e._trigger("added",b,c)!==!1&&(f.autoUpload||c.autoUpload)&&c.autoUpload!==!1&&c.submit()}).fail(function(){c.files.error&&c.context.each(function(b){var d=c.files[b].error;d&&a(this).find(".error").text(d)})})},send:function(b,c){if(b.isDefaultPrevented())return!1;var d=a(this).data("blueimp-fileupload")||a(this).data("fileupload");return c.context&&c.dataType&&"iframe"===c.dataType.substr(0,6)&&c.context.find(".progress").addClass(!a.support.transition&&"progress-animated").attr("aria-valuenow",100).children().first().css("width","100%"),d._trigger("sent",b,c)},done:function(b,c){if(b.isDefaultPrevented())return!1;var d,e,f=a(this).data("blueimp-fileupload")||a(this).data("fileupload"),g=c.getFilesFromResponse||f.options.getFilesFromResponse,h=g(c);c.context?c.context.each(function(g){var i=h[g]||{error:"Empty file upload result"};e=f._addFinishedDeferreds(),f._transition(a(this)).done(function(){var g=a(this);d=f._renderDownload([i]).replaceAll(g),f._forceReflow(d),f._transition(d).done(function(){c.context=a(this),f._trigger("completed",b,c),f._trigger("finished",b,c),e.resolve()})})}):(d=f._renderDownload(h)[f.options.prependFiles?"prependTo":"appendTo"](f.options.filesContainer),f._forceReflow(d),e=f._addFinishedDeferreds(),f._transition(d).done(function(){c.context=a(this),f._trigger("completed",b,c),f._trigger("finished",b,c),e.resolve()}))},fail:function(b,c){if(b.isDefaultPrevented())return!1;var d,e,f=a(this).data("blueimp-fileupload")||a(this).data("fileupload");c.context?c.context.each(function(g){if("abort"!==c.errorThrown){var h=c.files[g];h.error=h.error||c.errorThrown||c.i18n("unknownError"),e=f._addFinishedDeferreds(),f._transition(a(this)).done(function(){var g=a(this);d=f._renderDownload([h]).replaceAll(g),f._forceReflow(d),f._transition(d).done(function(){c.context=a(this),f._trigger("failed",b,c),f._trigger("finished",b,c),e.resolve()})})}else e=f._addFinishedDeferreds(),f._transition(a(this)).done(function(){a(this).remove(),f._trigger("failed",b,c),f._trigger("finished",b,c),e.resolve()})}):"abort"!==c.errorThrown?(c.context=f._renderUpload(c.files)[f.options.prependFiles?"prependTo":"appendTo"](f.options.filesContainer).data("data",c),f._forceReflow(c.context),e=f._addFinishedDeferreds(),f._transition(c.context).done(function(){c.context=a(this),f._trigger("failed",b,c),f._trigger("finished",b,c),e.resolve()})):(f._trigger("failed",b,c),f._trigger("finished",b,c),f._addFinishedDeferreds().resolve())},progress:function(b,c){if(b.isDefaultPrevented())return!1;var d=Math.floor(c.loaded/c.total*100);c.context&&c.context.each(function(){a(this).find(".progress").attr("aria-valuenow",d).children().first().css("width",d+"%")})},progressall:function(b,c){if(b.isDefaultPrevented())return!1;var d=a(this),e=Math.floor(c.loaded/c.total*100),f=d.find(".fileupload-progress"),g=f.find(".progress-extended");g.length&&g.html((d.data("blueimp-fileupload")||d.data("fileupload"))._renderExtendedProgress(c)),f.find(".progress").attr("aria-valuenow",e).children().first().css("width",e+"%")},start:function(b){if(b.isDefaultPrevented())return!1;var c=a(this).data("blueimp-fileupload")||a(this).data("fileupload");c._resetFinishedDeferreds(),c._transition(a(this).find(".fileupload-progress")).done(function(){c._trigger("started",b)})},stop:function(b){if(b.isDefaultPrevented())return!1;var c=a(this).data("blueimp-fileupload")||a(this).data("fileupload"),d=c._addFinishedDeferreds();a.when.apply(a,c._getFinishedDeferreds()).done(function(){c._trigger("stopped",b)}),c._transition(a(this).find(".fileupload-progress")).done(function(){a(this).find(".progress").attr("aria-valuenow","0").children().first().css("width","0%"),a(this).find(".progress-extended").html(" "),d.resolve()})},processstart:function(b){return b.isDefaultPrevented()?!1:void a(this).addClass("fileupload-processing")},processstop:function(b){return b.isDefaultPrevented()?!1:void a(this).removeClass("fileupload-processing")},destroy:function(b,c){if(b.isDefaultPrevented())return!1;var d=a(this).data("blueimp-fileupload")||a(this).data("fileupload"),e=function(){d._transition(c.context).done(function(){a(this).remove(),d._trigger("destroyed",b,c)})};c.url?(c.dataType=c.dataType||d.options.dataType,a.ajax(c).done(e).fail(function(){d._trigger("destroyfailed",b,c)})):e()}},_resetFinishedDeferreds:function(){this._finishedUploads=[]},_addFinishedDeferreds:function(b){return b||(b=a.Deferred()),this._finishedUploads.push(b),b},_getFinishedDeferreds:function(){return this._finishedUploads},_enableDragToDesktop:function(){var b=a(this),c=b.prop("href"),d=b.prop("download"),e="application/octet-stream";b.bind("dragstart",function(a){try{a.originalEvent.dataTransfer.setData("DownloadURL",[e,d,c].join(":"))}catch(b){}})},_formatFileSize:function(a){return"number"!=typeof a?"":a>=1e9?(a/1e9).toFixed(2)+" GB":a>=1e6?(a/1e6).toFixed(2)+" MB":(a/1e3).toFixed(2)+" KB"},_formatBitrate:function(a){return"number"!=typeof a?"":a>=1e9?(a/1e9).toFixed(2)+" Gbit/s":a>=1e6?(a/1e6).toFixed(2)+" Mbit/s":a>=1e3?(a/1e3).toFixed(2)+" kbit/s":a.toFixed(2)+" bit/s"},_formatTime:function(a){var b=new Date(1e3*a),c=Math.floor(a/86400);return c=c?c+"d ":"",c+("0"+b.getUTCHours()).slice(-2)+":"+("0"+b.getUTCMinutes()).slice(-2)+":"+("0"+b.getUTCSeconds()).slice(-2)},_formatPercentage:function(a){return(100*a).toFixed(2)+" %"},_renderExtendedProgress:function(a){return this._formatBitrate(a.bitrate)+" | "+this._formatTime(8*(a.total-a.loaded)/a.bitrate)+" | "+this._formatPercentage(a.loaded/a.total)+" | "+this._formatFileSize(a.loaded)+" / "+this._formatFileSize(a.total)},_renderTemplate:function(b,c){if(!b)return a();var d=b({files:c,formatFileSize:this._formatFileSize,options:this.options});return d instanceof a?d:a(this.options.templatesContainer).html(d).children()},_renderPreviews:function(b){b.context.find(".preview").each(function(c,d){a(d).append(b.files[c].preview)})},_renderUpload:function(a){return this._renderTemplate(this.options.uploadTemplate,a)},_renderDownload:function(a){return this._renderTemplate(this.options.downloadTemplate,a).find("a[download]").each(this._enableDragToDesktop).end()},_startHandler:function(b){b.preventDefault();var c=a(b.currentTarget),d=c.closest(".template-upload"),e=d.data("data");c.prop("disabled",!0),e&&e.submit&&e.submit()},_cancelHandler:function(b){b.preventDefault();var c=a(b.currentTarget).closest(".template-upload,.template-download"),d=c.data("data")||{};d.context=d.context||c,d.abort?d.abort():(d.errorThrown="abort",this._trigger("fail",b,d))},_deleteHandler:function(b){b.preventDefault();var c=a(b.currentTarget);this._trigger("destroy",b,a.extend({context:c.closest(".template-download"),type:"DELETE"},c.data()))},_forceReflow:function(b){return a.support.transition&&b.length&&b[0].offsetWidth},_transition:function(b){var c=a.Deferred();return a.support.transition&&b.hasClass("fade")&&b.is(":visible")?b.bind(a.support.transition.end,function(d){d.target===b[0]&&(b.unbind(a.support.transition.end),c.resolveWith(b))}).toggleClass("in"):(b.toggleClass("in"),c.resolveWith(b)),c},_initButtonBarEventHandlers:function(){var b=this.element.find(".fileupload-buttonbar"),c=this.options.filesContainer;this._on(b.find(".start"),{click:function(a){a.preventDefault(),c.find(".start").click()}}),this._on(b.find(".cancel"),{click:function(a){a.preventDefault(),c.find(".cancel").click()}}),this._on(b.find(".delete"),{click:function(a){a.preventDefault(),c.find(".toggle:checked").closest(".template-download").find(".delete").click(),b.find(".toggle").prop("checked",!1)}}),this._on(b.find(".toggle"),{change:function(b){c.find(".toggle").prop("checked",a(b.currentTarget).is(":checked"))}})},_destroyButtonBarEventHandlers:function(){this._off(this.element.find(".fileupload-buttonbar").find(".start, .cancel, .delete"),"click"),this._off(this.element.find(".fileupload-buttonbar .toggle"),"change.")},_initEventHandlers:function(){this._super(),this._on(this.options.filesContainer,{"click .start":this._startHandler,"click .cancel":this._cancelHandler,"click .delete":this._deleteHandler}),this._initButtonBarEventHandlers()},_destroyEventHandlers:function(){this._destroyButtonBarEventHandlers(),this._off(this.options.filesContainer,"click"),this._super()},_enableFileInputButton:function(){this.element.find(".fileinput-button input").prop("disabled",!1).parent().removeClass("disabled")},_disableFileInputButton:function(){this.element.find(".fileinput-button input").prop("disabled",!0).parent().addClass("disabled")},_initTemplates:function(){var a=this.options;a.templatesContainer=this.document[0].createElement(a.filesContainer.prop("nodeName")),b&&(a.uploadTemplateId&&(a.uploadTemplate=b(a.uploadTemplateId)),a.downloadTemplateId&&(a.downloadTemplate=b(a.downloadTemplateId)))},_initFilesContainer:function(){var b=this.options;void 0===b.filesContainer?b.filesContainer=this.element.find(".files"):b.filesContainer instanceof a||(b.filesContainer=a(b.filesContainer))},_initSpecialOptions:function(){this._super(),this._initFilesContainer(),this._initTemplates()},_create:function(){this._super(),this._resetFinishedDeferreds(),a.support.fileInput||this._disableFileInputButton()},enable:function(){var a=!1;this.options.disabled&&(a=!0),this._super(),a&&(this.element.find("input, button").prop("disabled",!1),this._enableFileInputButton())},disable:function(){this.options.disabled||(this.element.find("input, button").prop("disabled",!0),this._disableFileInputButton()),this._super()}})}); \ No newline at end of file diff --git a/public/js/jqFileUploads/js/build/js/jquery.fileupload-validate.js b/public/js/jqFileUploads/js/build/js/jquery.fileupload-validate.js new file mode 100644 index 0000000..70cc204 --- /dev/null +++ b/public/js/jqFileUploads/js/build/js/jquery.fileupload-validate.js @@ -0,0 +1 @@ +!function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery","./jquery.fileupload-process"],a):a("object"==typeof exports?require("jquery"):window.jQuery)}(function(a){"use strict";a.blueimp.fileupload.prototype.options.processQueue.push({action:"validate",always:!0,acceptFileTypes:"@",maxFileSize:"@",minFileSize:"@",maxNumberOfFiles:"@",disabled:"@disableValidation"}),a.widget("blueimp.fileupload",a.blueimp.fileupload,{options:{getNumberOfFiles:a.noop,messages:{maxNumberOfFiles:"Maximum number of files exceeded",acceptFileTypes:"File type not allowed",maxFileSize:"File is too large",minFileSize:"File is too small"}},processActions:{validate:function(b,c){if(c.disabled)return b;var d,e=a.Deferred(),f=this.options,g=b.files[b.index];return(c.minFileSize||c.maxFileSize)&&(d=g.size),"number"===a.type(c.maxNumberOfFiles)&&(f.getNumberOfFiles()||0)+b.files.length>c.maxNumberOfFiles?g.error=f.i18n("maxNumberOfFiles"):!c.acceptFileTypes||c.acceptFileTypes.test(g.type)||c.acceptFileTypes.test(g.name)?d>c.maxFileSize?g.error=f.i18n("maxFileSize"):"number"===a.type(d)&&d').prop("disabled")),a.support.xhrFileUpload=!(!window.ProgressEvent||!window.FileReader),a.support.xhrFormDataFileUpload=!!window.FormData,a.support.blobSlice=window.Blob&&(Blob.prototype.slice||Blob.prototype.webkitSlice||Blob.prototype.mozSlice),a.widget("blueimp.fileupload",{options:{dropZone:a(document),pasteZone:void 0,fileInput:void 0,replaceFileInput:!0,paramName:void 0,singleFileUploads:!0,limitMultiFileUploads:void 0,limitMultiFileUploadSize:void 0,limitMultiFileUploadSizeOverhead:512,sequentialUploads:!1,limitConcurrentUploads:void 0,forceIframeTransport:!1,redirect:void 0,redirectParamName:void 0,postMessage:void 0,multipart:!0,maxChunkSize:void 0,uploadedBytes:void 0,recalculateProgress:!0,progressInterval:100,bitrateInterval:500,autoUpload:!0,messages:{uploadedBytes:"Uploaded bytes exceed file size"},i18n:function(b,c){return b=this.messages[b]||b.toString(),c&&a.each(c,function(a,c){b=b.replace("{"+a+"}",c)}),b},formData:function(a){return a.serializeArray()},add:function(b,c){return b.isDefaultPrevented()?!1:void((c.autoUpload||c.autoUpload!==!1&&a(this).fileupload("option","autoUpload"))&&c.process().done(function(){c.submit()}))},processData:!1,contentType:!1,cache:!1,timeout:0},_specialOptions:["fileInput","dropZone","pasteZone","multipart","forceIframeTransport"],_blobSlice:a.support.blobSlice&&function(){var a=this.slice||this.webkitSlice||this.mozSlice;return a.apply(this,arguments)},_BitrateTimer:function(){this.timestamp=Date.now?Date.now():(new Date).getTime(),this.loaded=0,this.bitrate=0,this.getBitrate=function(a,b,c){var d=a-this.timestamp;return(!this.bitrate||!c||d>c)&&(this.bitrate=(b-this.loaded)*(1e3/d)*8,this.loaded=b,this.timestamp=a),this.bitrate}},_isXHRUpload:function(b){return!b.forceIframeTransport&&(!b.multipart&&a.support.xhrFileUpload||a.support.xhrFormDataFileUpload)},_getFormData:function(b){var c;return"function"===a.type(b.formData)?b.formData(b.form):a.isArray(b.formData)?b.formData:"object"===a.type(b.formData)?(c=[],a.each(b.formData,function(a,b){c.push({name:a,value:b})}),c):[]},_getTotal:function(b){var c=0;return a.each(b,function(a,b){c+=b.size||1}),c},_initProgressObject:function(b){var c={loaded:0,total:0,bitrate:0};b._progress?a.extend(b._progress,c):b._progress=c},_initResponseObject:function(a){var b;if(a._response)for(b in a._response)a._response.hasOwnProperty(b)&&delete a._response[b];else a._response={}},_onProgress:function(b,c){if(b.lengthComputable){var d,e=Date.now?Date.now():(new Date).getTime();if(c._time&&c.progressInterval&&e-c._time").prop("href",b.url).prop("host");b.dataType="iframe "+(b.dataType||""),b.formData=this._getFormData(b),b.redirect&&c&&c!==location.host&&b.formData.push({name:b.redirectParamName||"redirect",value:b.redirect})},_initDataSettings:function(a){this._isXHRUpload(a)?(this._chunkedUpload(a,!0)||(a.data||this._initXHRData(a),this._initProgressListener(a)),a.postMessage&&(a.dataType="postmessage "+(a.dataType||""))):this._initIframeSettings(a)},_getParamName:function(b){var c=a(b.fileInput),d=b.paramName;return d?a.isArray(d)||(d=[d]):(d=[],c.each(function(){for(var b=a(this),c=b.prop("name")||"files[]",e=(b.prop("files")||[1]).length;e;)d.push(c),e-=1}),d.length||(d=[c.prop("name")||"files[]"])),d},_initFormSettings:function(b){b.form&&b.form.length||(b.form=a(b.fileInput.prop("form")),b.form.length||(b.form=a(this.options.fileInput.prop("form")))),b.paramName=this._getParamName(b),b.url||(b.url=b.form.prop("action")||location.href),b.type=(b.type||"string"===a.type(b.form.prop("method"))&&b.form.prop("method")||"").toUpperCase(),"POST"!==b.type&&"PUT"!==b.type&&"PATCH"!==b.type&&(b.type="POST"),b.formAcceptCharset||(b.formAcceptCharset=b.form.attr("accept-charset"))},_getAJAXSettings:function(b){var c=a.extend({},this.options,b);return this._initFormSettings(c),this._initDataSettings(c),c},_getDeferredState:function(a){return a.state?a.state():a.isResolved()?"resolved":a.isRejected()?"rejected":"pending"},_enhancePromise:function(a){return a.success=a.done,a.error=a.fail,a.complete=a.always,a},_getXHRPromise:function(b,c,d){var e=a.Deferred(),f=e.promise();return c=c||this.options.context||f,b===!0?e.resolveWith(c,d):b===!1&&e.rejectWith(c,d),f.abort=e.promise,this._enhancePromise(f)},_addConvenienceMethods:function(b,c){var d=this,e=function(b){return a.Deferred().resolveWith(d,b).promise()};c.process=function(b,f){return(b||f)&&(c._processQueue=this._processQueue=(this._processQueue||e([this])).pipe(function(){return c.errorThrown?a.Deferred().rejectWith(d,[c]).promise():e(arguments)}).pipe(b,f)),this._processQueue||e([this])},c.submit=function(){return"pending"!==this.state()&&(c.jqXHR=this.jqXHR=d._trigger("submit",a.Event("submit",{delegatedEvent:b}),this)!==!1&&d._onSend(b,this)),this.jqXHR||d._getXHRPromise()},c.abort=function(){return this.jqXHR?this.jqXHR.abort():(this.errorThrown="abort",d._trigger("fail",null,this),d._getXHRPromise(!1))},c.state=function(){return this.jqXHR?d._getDeferredState(this.jqXHR):this._processQueue?d._getDeferredState(this._processQueue):void 0},c.processing=function(){return!this.jqXHR&&this._processQueue&&"pending"===d._getDeferredState(this._processQueue)},c.progress=function(){return this._progress},c.response=function(){return this._response}},_getUploadedBytes:function(a){var b=a.getResponseHeader("Range"),c=b&&b.split("-"),d=c&&c.length>1&&parseInt(c[1],10);return d&&d+1},_chunkedUpload:function(b,c){b.uploadedBytes=b.uploadedBytes||0;var d,e,f=this,g=b.files[0],h=g.size,i=b.uploadedBytes,j=b.maxChunkSize||h,k=this._blobSlice,l=a.Deferred(),m=l.promise();return this._isXHRUpload(b)&&k&&(i||h>j)&&!b.data?c?!0:i>=h?(g.error=b.i18n("uploadedBytes"),this._getXHRPromise(!1,b.context,[null,"error",g.error])):(e=function(){var c=a.extend({},b),m=c._progress.loaded;c.blob=k.call(g,i,i+j,g.type),c.chunkSize=c.blob.size,c.contentRange="bytes "+i+"-"+(i+c.chunkSize-1)+"/"+h,f._initXHRData(c),f._initProgressListener(c),d=(f._trigger("chunksend",null,c)!==!1&&a.ajax(c)||f._getXHRPromise(!1,c.context)).done(function(d,g,j){i=f._getUploadedBytes(j)||i+c.chunkSize,m+c.chunkSize-c._progress.loaded&&f._onProgress(a.Event("progress",{lengthComputable:!0,loaded:i-c.uploadedBytes,total:i-c.uploadedBytes}),c),b.uploadedBytes=c.uploadedBytes=i,c.result=d,c.textStatus=g,c.jqXHR=j,f._trigger("chunkdone",null,c),f._trigger("chunkalways",null,c),h>i?e():l.resolveWith(c.context,[d,g,j])}).fail(function(a,b,d){c.jqXHR=a,c.textStatus=b,c.errorThrown=d,f._trigger("chunkfail",null,c),f._trigger("chunkalways",null,c),l.rejectWith(c.context,[a,b,d])})},this._enhancePromise(m),m.abort=function(){return d.abort()},e(),m):!1},_beforeSend:function(a,b){0===this._active&&(this._trigger("start"),this._bitrateTimer=new this._BitrateTimer,this._progress.loaded=this._progress.total=0,this._progress.bitrate=0),this._initResponseObject(b),this._initProgressObject(b),b._progress.loaded=b.loaded=b.uploadedBytes||0,b._progress.total=b.total=this._getTotal(b.files)||1,b._progress.bitrate=b.bitrate=0,this._active+=1,this._progress.loaded+=b.loaded,this._progress.total+=b.total},_onDone:function(b,c,d,e){var f=e._progress.total,g=e._response;e._progress.loadedh._sending)for(var d=h._slots.shift();d;){if("pending"===h._getDeferredState(d)){d.resolve();break}d=h._slots.shift()}0===h._active&&h._trigger("stop")})};return this._beforeSend(b,i),this.options.sequentialUploads||this.options.limitConcurrentUploads&&this.options.limitConcurrentUploads<=this._sending?(this.options.limitConcurrentUploads>1?(f=a.Deferred(),this._slots.push(f),g=f.pipe(j)):(this._sequence=this._sequence.pipe(j,j),g=this._sequence),g.abort=function(){return e=[void 0,"abort","abort"],d?d.abort():(f&&f.rejectWith(i.context,e),j())},this._enhancePromise(g)):j()},_onAdd:function(b,c){var d,e,f,g,h=this,i=!0,j=a.extend({},this.options,c),k=c.files,l=k.length,m=j.limitMultiFileUploads,n=j.limitMultiFileUploadSize,o=j.limitMultiFileUploadSizeOverhead,p=0,q=this._getParamName(j),r=0;if(!l)return!1;if(n&&void 0===k[0].size&&(n=void 0),(j.singleFileUploads||m||n)&&this._isXHRUpload(j))if(j.singleFileUploads||n||!m)if(!j.singleFileUploads&&n)for(f=[],d=[],g=0;l>g;g+=1)p+=k[g].size+o,(g+1===l||p+k[g+1].size+o>n||m&&g+1-r>=m)&&(f.push(k.slice(r,g+1)),e=q.slice(r,g+1),e.length||(e=q),d.push(e),r=g+1,p=0);else d=q;else for(f=[],d=[],g=0;l>g;g+=m)f.push(k.slice(g,g+m)),e=q.slice(g,g+m),e.length||(e=q),d.push(e);else f=[k],d=[q];return c.originalFiles=k,a.each(f||k,function(e,g){var j=a.extend({},c);return j.files=f?g:[g],j.paramName=d[e],h._initResponseObject(j),h._initProgressObject(j),h._addConvenienceMethods(b,j),i=h._trigger("add",a.Event("add",{delegatedEvent:b}),j)}),i},_replaceFileInput:function(b){var c=b.fileInput,d=c.clone(!0),e=c.is(document.activeElement);b.fileInputClone=d,a("
").append(d)[0].reset(),c.after(d).detach(),e&&d.focus(),a.cleanData(c.unbind("remove")),this.options.fileInput=this.options.fileInput.map(function(a,b){return b===c[0]?d[0]:b}),c[0]===this.element[0]&&(this.element=d)},_handleFileTreeEntry:function(b,c){var d,e=this,f=a.Deferred(),g=function(a){a&&!a.entry&&(a.entry=b),f.resolve([a])},h=function(a){e._handleFileTreeEntries(a,c+b.name+"/").done(function(a){f.resolve(a)}).fail(g)},i=function(){d.readEntries(function(a){a.length?(j=j.concat(a),i()):h(j)},g)},j=[];return c=c||"",b.isFile?b._file?(b._file.relativePath=c,f.resolve(b._file)):b.file(function(a){a.relativePath=c,f.resolve(a)},g):b.isDirectory?(d=b.createReader(),i()):f.resolve([]),f.promise()},_handleFileTreeEntries:function(b,c){var d=this;return a.when.apply(a,a.map(b,function(a){return d._handleFileTreeEntry(a,c)})).pipe(function(){return Array.prototype.concat.apply([],arguments)})},_getDroppedFiles:function(b){b=b||{};var c=b.items;return c&&c.length&&(c[0].webkitGetAsEntry||c[0].getAsEntry)?this._handleFileTreeEntries(a.map(c,function(a){var b;return a.webkitGetAsEntry?(b=a.webkitGetAsEntry(),b&&(b._file=a.getAsFile()),b):a.getAsEntry()})):a.Deferred().resolve(a.makeArray(b.files)).promise()},_getSingleFileInputFiles:function(b){b=a(b);var c,d,e=b.prop("webkitEntries")||b.prop("entries");if(e&&e.length)return this._handleFileTreeEntries(e);if(c=a.makeArray(b.prop("files")),c.length)void 0===c[0].name&&c[0].fileName&&a.each(c,function(a,b){b.name=b.fileName,b.size=b.fileSize});else{if(d=b.prop("value"),!d)return a.Deferred().resolve([]).promise();c=[{name:d.replace(/^.*\\/,"")}]}return a.Deferred().resolve(c).promise()},_getFileInputFiles:function(b){return b instanceof a&&1!==b.length?a.when.apply(a,a.map(b,this._getSingleFileInputFiles)).pipe(function(){return Array.prototype.concat.apply([],arguments)}):this._getSingleFileInputFiles(b)},_onChange:function(b){var c=this,d={fileInput:a(b.target),form:a(b.target.form)};this._getFileInputFiles(d.fileInput).always(function(e){d.files=e,c.options.replaceFileInput&&c._replaceFileInput(d),c._trigger("change",a.Event("change",{delegatedEvent:b}),d)!==!1&&c._onAdd(b,d)})},_onPaste:function(b){var c=b.originalEvent&&b.originalEvent.clipboardData&&b.originalEvent.clipboardData.items,d={files:[]};c&&c.length&&(a.each(c,function(a,b){var c=b.getAsFile&&b.getAsFile();c&&d.files.push(c)}),this._trigger("paste",a.Event("paste",{delegatedEvent:b}),d)!==!1&&this._onAdd(b,d))},_onDrop:function(b){b.dataTransfer=b.originalEvent&&b.originalEvent.dataTransfer;var c=this,d=b.dataTransfer,e={};d&&d.files&&d.files.length&&(b.preventDefault(),this._getDroppedFiles(d).always(function(d){e.files=d,c._trigger("drop",a.Event("drop",{delegatedEvent:b}),e)!==!1&&c._onAdd(b,e)}))},_onDragOver:b("dragover"),_onDragEnter:b("dragenter"),_onDragLeave:b("dragleave"),_initEventHandlers:function(){this._isXHRUpload(this.options)&&(this._on(this.options.dropZone,{dragover:this._onDragOver,drop:this._onDrop,dragenter:this._onDragEnter,dragleave:this._onDragLeave}),this._on(this.options.pasteZone,{paste:this._onPaste})),a.support.fileInput&&this._on(this.options.fileInput,{change:this._onChange})},_destroyEventHandlers:function(){this._off(this.options.dropZone,"dragenter dragleave dragover drop"),this._off(this.options.pasteZone,"paste"),this._off(this.options.fileInput,"change")},_setOption:function(b,c){var d=-1!==a.inArray(b,this._specialOptions);d&&this._destroyEventHandlers(),this._super(b,c),d&&(this._initSpecialOptions(),this._initEventHandlers())},_initSpecialOptions:function(){var b=this.options;void 0===b.fileInput?b.fileInput=this.element.is('input[type="file"]')?this.element:this.element.find('input[type="file"]'):b.fileInput instanceof a||(b.fileInput=a(b.fileInput)),b.dropZone instanceof a||(b.dropZone=a(b.dropZone)),b.pasteZone instanceof a||(b.pasteZone=a(b.pasteZone))},_getRegExp:function(a){var b=a.split("/"),c=b.pop();return b.shift(),new RegExp(b.join("/"),c)},_isRegExpOption:function(b,c){return"url"!==b&&"string"===a.type(c)&&/^\/.*\/[igm]{0,3}$/.test(c)},_initDataAttributes:function(){var b=this,c=this.options,d=this.element.data();a.each(this.element[0].attributes,function(a,e){var f,g=e.name.toLowerCase();/^data-/.test(g)&&(g=g.slice(5).replace(/-[a-z]/g,function(a){return a.charAt(1).toUpperCase()}),f=d[g],b._isRegExpOption(g,f)&&(f=b._getRegExp(f)),c[g]=f)})},_create:function(){this._initDataAttributes(),this._initSpecialOptions(),this._slots=[],this._sequence=this._getXHRPromise(!0),this._sending=this._active=0,this._initProgressObject(this),this._initEventHandlers()},active:function(){return this._active},progress:function(){return this._progress},add:function(b){var c=this;b&&!this.options.disabled&&(b.fileInput&&!b.files?this._getFileInputFiles(b.fileInput).always(function(a){b.files=a,c._onAdd(null,b)}):(b.files=a.makeArray(b.files),this._onAdd(null,b)))},send:function(b){if(b&&!this.options.disabled){if(b.fileInput&&!b.files){var c,d,e=this,f=a.Deferred(),g=f.promise();return g.abort=function(){return d=!0,c?c.abort():(f.reject(null,"abort","abort"),g)},this._getFileInputFiles(b.fileInput).always(function(a){if(!d){if(!a.length)return void f.reject();b.files=a,c=e._onSend(null,b),c.then(function(a,b,c){f.resolve(a,b,c)},function(a,b,c){f.reject(a,b,c)})}}),this._enhancePromise(g)}if(b.files=a.makeArray(b.files),b.files.length)return this._onSend(null,b)}return this._getXHRPromise(!1,b&&b.context)}})}); \ No newline at end of file diff --git a/public/js/jqFileUploads/js/build/js/jquery.iframe-transport.js b/public/js/jqFileUploads/js/build/js/jquery.iframe-transport.js new file mode 100644 index 0000000..12667dd --- /dev/null +++ b/public/js/jqFileUploads/js/build/js/jquery.iframe-transport.js @@ -0,0 +1 @@ +!function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):window.jQuery)}(function(a){"use strict";var b=0;a.ajaxTransport("iframe",function(c){if(c.async){var d,e,f,g=c.initialIframeSrc||"javascript:false;";return{send:function(h,i){d=a('
'),d.attr("accept-charset",c.formAcceptCharset),f=/\?/.test(c.url)?"&":"?","DELETE"===c.type?(c.url=c.url+f+"_method=DELETE",c.type="POST"):"PUT"===c.type?(c.url=c.url+f+"_method=PUT",c.type="POST"):"PATCH"===c.type&&(c.url=c.url+f+"_method=PATCH",c.type="POST"),b+=1,e=a('').bind("load",function(){var b,f=a.isArray(c.paramName)?c.paramName:[c.paramName];e.unbind("load").bind("load",function(){var b;try{if(b=e.contents(),!b.length||!b[0].firstChild)throw new Error}catch(c){b=void 0}i(200,"success",{iframe:b}),a('').appendTo(d),window.setTimeout(function(){d.remove()},0)}),d.prop("target",e.prop("name")).prop("action",c.url).prop("method",c.type),c.formData&&a.each(c.formData,function(b,c){a('').prop("name",c.name).val(c.value).appendTo(d)}),c.fileInput&&c.fileInput.length&&"POST"===c.type&&(b=c.fileInput.clone(),c.fileInput.after(function(a){return b[a]}),c.paramName&&c.fileInput.each(function(b){a(this).prop("name",f[b]||c.paramName)}),d.append(c.fileInput).prop("enctype","multipart/form-data").prop("encoding","multipart/form-data"),c.fileInput.removeAttr("form")),d.submit(),b&&b.length&&c.fileInput.each(function(c,d){var e=a(b[c]);a(d).prop("name",e.prop("name")).attr("form",e.attr("form")),e.replaceWith(d)})}),d.append(e).appendTo(document.body)},abort:function(){e&&e.unbind("load").prop("src",g),d&&d.remove()}}}}),a.ajaxSetup({converters:{"iframe text":function(b){return b&&a(b[0].body).text()},"iframe json":function(b){return b&&a.parseJSON(a(b[0].body).text())},"iframe html":function(b){return b&&a(b[0].body).html()},"iframe xml":function(b){var c=b&&b[0];return c&&a.isXMLDoc(c)?c:a.parseXML(c.XMLDocument&&c.XMLDocument.xml||a(c.body).html())},"iframe script":function(b){return b&&a.globalEval(a(b[0].body).text())}}})}); \ No newline at end of file diff --git a/public/js/jqFileUploads/js/build/js/main.js b/public/js/jqFileUploads/js/build/js/main.js new file mode 100644 index 0000000..bb604f6 --- /dev/null +++ b/public/js/jqFileUploads/js/build/js/main.js @@ -0,0 +1 @@ +$(function(){"use strict";var a=$("#fileupload");a.bind("fileuploadsubmit",function(a,b){var c=$("meta[name=gid]").attr("content"),d=$("meta[name=_token]").attr("content"),e=$("meta[name=event_id]").attr("content");b.formData=[{name:"gid",value:c},{name:"event_id",value:e},{name:"_token",value:d}]}),a.fileupload({url:"/photo"}),a.addClass("fileupload-processing"),$.ajax({url:a.fileupload("option","url"),dataType:"json",context:a[0]}).always(function(){$(this).removeClass("fileupload-processing")}).done(function(a){$(this).fileupload("option","done").call(this,$.Event("done"),{result:a})})}); \ No newline at end of file diff --git a/public/js/jqFileUploads/js/cors/jquery.postmessage-transport.js b/public/js/jqFileUploads/js/cors/jquery.postmessage-transport.js new file mode 100755 index 0000000..4874a8c --- /dev/null +++ b/public/js/jqFileUploads/js/cors/jquery.postmessage-transport.js @@ -0,0 +1,120 @@ +/* + * jQuery postMessage Transport Plugin + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2011, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/MIT + */ + +/* global define, require, window, document */ + +(function (factory) { + 'use strict'; + if (typeof define === 'function' && define.amd) { + // Register as an anonymous AMD module: + define(['jquery'], factory); + } else if (typeof exports === 'object') { + // Node/CommonJS: + factory(require('jquery')); + } else { + // Browser globals: + factory(window.jQuery); + } +}(function ($) { + 'use strict'; + + var counter = 0, + names = [ + 'accepts', + 'cache', + 'contents', + 'contentType', + 'crossDomain', + 'data', + 'dataType', + 'headers', + 'ifModified', + 'mimeType', + 'password', + 'processData', + 'timeout', + 'traditional', + 'type', + 'url', + 'username' + ], + convert = function (p) { + return p; + }; + + $.ajaxSetup({ + converters: { + 'postmessage text': convert, + 'postmessage json': convert, + 'postmessage html': convert + } + }); + + $.ajaxTransport('postmessage', function (options) { + if (options.postMessage && window.postMessage) { + var iframe, + loc = $('').prop('href', options.postMessage)[0], + target = loc.protocol + '//' + loc.host, + xhrUpload = options.xhr().upload; + return { + send: function (_, completeCallback) { + counter += 1; + var message = { + id: 'postmessage-transport-' + counter + }, + eventName = 'message.' + message.id; + iframe = $( + '' + ).bind('load', function () { + $.each(names, function (i, name) { + message[name] = options[name]; + }); + message.dataType = message.dataType.replace('postmessage ', ''); + $(window).bind(eventName, function (e) { + e = e.originalEvent; + var data = e.data, + ev; + if (e.origin === target && data.id === message.id) { + if (data.type === 'progress') { + ev = document.createEvent('Event'); + ev.initEvent(data.type, false, true); + $.extend(ev, data); + xhrUpload.dispatchEvent(ev); + } else { + completeCallback( + data.status, + data.statusText, + {postmessage: data.result}, + data.headers + ); + iframe.remove(); + $(window).unbind(eventName); + } + } + }); + iframe[0].contentWindow.postMessage( + message, + target + ); + }).appendTo(document.body); + }, + abort: function () { + if (iframe) { + iframe.remove(); + } + } + }; + } + }); + +})); diff --git a/public/js/jqFileUploads/js/cors/jquery.xdr-transport.js b/public/js/jqFileUploads/js/cors/jquery.xdr-transport.js new file mode 100755 index 0000000..5b9c6ca --- /dev/null +++ b/public/js/jqFileUploads/js/cors/jquery.xdr-transport.js @@ -0,0 +1,89 @@ +/* + * jQuery XDomainRequest Transport Plugin + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2011, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/MIT + * + * Based on Julian Aubourg's ajaxHooks xdr.js: + * https://github.com/jaubourg/ajaxHooks/ + */ + +/* global define, require, window, XDomainRequest */ + +(function (factory) { + 'use strict'; + if (typeof define === 'function' && define.amd) { + // Register as an anonymous AMD module: + define(['jquery'], factory); + } else if (typeof exports === 'object') { + // Node/CommonJS: + factory(require('jquery')); + } else { + // Browser globals: + factory(window.jQuery); + } +}(function ($) { + 'use strict'; + if (window.XDomainRequest && !$.support.cors) { + $.ajaxTransport(function (s) { + if (s.crossDomain && s.async) { + if (s.timeout) { + s.xdrTimeout = s.timeout; + delete s.timeout; + } + var xdr; + return { + send: function (headers, completeCallback) { + var addParamChar = /\?/.test(s.url) ? '&' : '?'; + function callback(status, statusText, responses, responseHeaders) { + xdr.onload = xdr.onerror = xdr.ontimeout = $.noop; + xdr = null; + completeCallback(status, statusText, responses, responseHeaders); + } + xdr = new XDomainRequest(); + // XDomainRequest only supports GET and POST: + if (s.type === 'DELETE') { + s.url = s.url + addParamChar + '_method=DELETE'; + s.type = 'POST'; + } else if (s.type === 'PUT') { + s.url = s.url + addParamChar + '_method=PUT'; + s.type = 'POST'; + } else if (s.type === 'PATCH') { + s.url = s.url + addParamChar + '_method=PATCH'; + s.type = 'POST'; + } + xdr.open(s.type, s.url); + xdr.onload = function () { + callback( + 200, + 'OK', + {text: xdr.responseText}, + 'Content-Type: ' + xdr.contentType + ); + }; + xdr.onerror = function () { + callback(404, 'Not Found'); + }; + if (s.xdrTimeout) { + xdr.ontimeout = function () { + callback(0, 'timeout'); + }; + xdr.timeout = s.xdrTimeout; + } + xdr.send((s.hasContent && s.data) || null); + }, + abort: function () { + if (xdr) { + xdr.onerror = $.noop(); + xdr.abort(); + } + } + }; + } + }); + } +})); diff --git a/public/js/jqFileUploads/js/jquery.fileupload-angular.js b/public/js/jqFileUploads/js/jquery.fileupload-angular.js new file mode 100755 index 0000000..f7ba07b --- /dev/null +++ b/public/js/jqFileUploads/js/jquery.fileupload-angular.js @@ -0,0 +1,425 @@ +/* + * jQuery File Upload AngularJS Plugin + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2013, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/MIT + */ + +/* jshint nomen:false */ +/* global define, angular */ + +(function (factory) { + 'use strict'; + if (typeof define === 'function' && define.amd) { + // Register as an anonymous AMD module: + define([ + 'jquery', + 'angular', + './jquery.fileupload-image', + './jquery.fileupload-audio', + './jquery.fileupload-video', + './jquery.fileupload-validate' + ], factory); + } else { + factory(); + } +}(function () { + 'use strict'; + + angular.module('blueimp.fileupload', []) + + // The fileUpload service provides configuration options + // for the fileUpload directive and default handlers for + // File Upload events: + .provider('fileUpload', function () { + var scopeEvalAsync = function (expression) { + var scope = angular.element(this) + .fileupload('option', 'scope'); + // Schedule a new $digest cycle if not already inside of one + // and evaluate the given expression: + scope.$evalAsync(expression); + }, + addFileMethods = function (scope, data) { + var files = data.files, + file = files[0]; + angular.forEach(files, function (file, index) { + file._index = index; + file.$state = function () { + return data.state(); + }; + file.$processing = function () { + return data.processing(); + }; + file.$progress = function () { + return data.progress(); + }; + file.$response = function () { + return data.response(); + }; + }); + file.$submit = function () { + if (!file.error) { + return data.submit(); + } + }; + file.$cancel = function () { + return data.abort(); + }; + }, + $config; + $config = this.defaults = { + handleResponse: function (e, data) { + var files = data.result && data.result.files; + if (files) { + data.scope.replace(data.files, files); + } else if (data.errorThrown || + data.textStatus === 'error') { + data.files[0].error = data.errorThrown || + data.textStatus; + } + }, + add: function (e, data) { + if (e.isDefaultPrevented()) { + return false; + } + var scope = data.scope, + filesCopy = []; + angular.forEach(data.files, function (file) { + filesCopy.push(file); + }); + scope.$parent.$applyAsync(function () { + addFileMethods(scope, data); + var method = scope.option('prependFiles') ? + 'unshift' : 'push'; + Array.prototype[method].apply(scope.queue, data.files); + }); + data.process(function () { + return scope.process(data); + }).always(function () { + scope.$parent.$applyAsync(function () { + addFileMethods(scope, data); + scope.replace(filesCopy, data.files); + }); + }).then(function () { + if ((scope.option('autoUpload') || + data.autoUpload) && + data.autoUpload !== false) { + data.submit(); + } + }); + }, + done: function (e, data) { + if (e.isDefaultPrevented()) { + return false; + } + var that = this; + data.scope.$apply(function () { + data.handleResponse.call(that, e, data); + }); + }, + fail: function (e, data) { + if (e.isDefaultPrevented()) { + return false; + } + var that = this, + scope = data.scope; + if (data.errorThrown === 'abort') { + scope.clear(data.files); + return; + } + scope.$apply(function () { + data.handleResponse.call(that, e, data); + }); + }, + stop: scopeEvalAsync, + processstart: scopeEvalAsync, + processstop: scopeEvalAsync, + getNumberOfFiles: function () { + var scope = this.scope; + return scope.queue.length - scope.processing(); + }, + dataType: 'json', + autoUpload: false + }; + this.$get = [ + function () { + return { + defaults: $config + }; + } + ]; + }) + + // Format byte numbers to readable presentations: + .provider('formatFileSizeFilter', function () { + var $config = { + // Byte units following the IEC format + // http://en.wikipedia.org/wiki/Kilobyte + units: [ + {size: 1000000000, suffix: ' GB'}, + {size: 1000000, suffix: ' MB'}, + {size: 1000, suffix: ' KB'} + ] + }; + this.defaults = $config; + this.$get = function () { + return function (bytes) { + if (!angular.isNumber(bytes)) { + return ''; + } + var unit = true, + i = 0, + prefix, + suffix; + while (unit) { + unit = $config.units[i]; + prefix = unit.prefix || ''; + suffix = unit.suffix || ''; + if (i === $config.units.length - 1 || bytes >= unit.size) { + return prefix + (bytes / unit.size).toFixed(2) + suffix; + } + i += 1; + } + }; + }; + }) + + // The FileUploadController initializes the fileupload widget and + // provides scope methods to control the File Upload functionality: + .controller('FileUploadController', [ + '$scope', '$element', '$attrs', '$window', 'fileUpload', + function ($scope, $element, $attrs, $window, fileUpload) { + var uploadMethods = { + progress: function () { + return $element.fileupload('progress'); + }, + active: function () { + return $element.fileupload('active'); + }, + option: function (option, data) { + if (arguments.length === 1) { + return $element.fileupload('option', option); + } + $element.fileupload('option', option, data); + }, + add: function (data) { + return $element.fileupload('add', data); + }, + send: function (data) { + return $element.fileupload('send', data); + }, + process: function (data) { + return $element.fileupload('process', data); + }, + processing: function (data) { + return $element.fileupload('processing', data); + } + }; + $scope.disabled = !$window.jQuery.support.fileInput; + $scope.queue = $scope.queue || []; + $scope.clear = function (files) { + var queue = this.queue, + i = queue.length, + file = files, + length = 1; + if (angular.isArray(files)) { + file = files[0]; + length = files.length; + } + while (i) { + i -= 1; + if (queue[i] === file) { + return queue.splice(i, length); + } + } + }; + $scope.replace = function (oldFiles, newFiles) { + var queue = this.queue, + file = oldFiles[0], + i, + j; + for (i = 0; i < queue.length; i += 1) { + if (queue[i] === file) { + for (j = 0; j < newFiles.length; j += 1) { + queue[i + j] = newFiles[j]; + } + return; + } + } + }; + $scope.applyOnQueue = function (method) { + var list = this.queue.slice(0), + i, + file; + for (i = 0; i < list.length; i += 1) { + file = list[i]; + if (file[method]) { + file[method](); + } + } + }; + $scope.submit = function () { + this.applyOnQueue('$submit'); + }; + $scope.cancel = function () { + this.applyOnQueue('$cancel'); + }; + // Add upload methods to the scope: + angular.extend($scope, uploadMethods); + // The fileupload widget will initialize with + // the options provided via "data-"-parameters, + // as well as those given via options object: + $element.fileupload(angular.extend( + {scope: $scope}, + fileUpload.defaults + )).on('fileuploadadd', function (e, data) { + data.scope = $scope; + }).on('fileuploadfail', function (e, data) { + if (data.errorThrown === 'abort') { + return; + } + if (data.dataType && + data.dataType.indexOf('json') === data.dataType.length - 4) { + try { + data.result = angular.fromJson(data.jqXHR.responseText); + } catch (ignore) {} + } + }).on([ + 'fileuploadadd', + 'fileuploadsubmit', + 'fileuploadsend', + 'fileuploaddone', + 'fileuploadfail', + 'fileuploadalways', + 'fileuploadprogress', + 'fileuploadprogressall', + 'fileuploadstart', + 'fileuploadstop', + 'fileuploadchange', + 'fileuploadpaste', + 'fileuploaddrop', + 'fileuploaddragover', + 'fileuploadchunksend', + 'fileuploadchunkdone', + 'fileuploadchunkfail', + 'fileuploadchunkalways', + 'fileuploadprocessstart', + 'fileuploadprocess', + 'fileuploadprocessdone', + 'fileuploadprocessfail', + 'fileuploadprocessalways', + 'fileuploadprocessstop' + ].join(' '), function (e, data) { + $scope.$parent.$applyAsync(function () { + if ($scope.$emit(e.type, data).defaultPrevented) { + e.preventDefault(); + } + }); + }).on('remove', function () { + // Remove upload methods from the scope, + // when the widget is removed: + var method; + for (method in uploadMethods) { + if (uploadMethods.hasOwnProperty(method)) { + delete $scope[method]; + } + } + }); + // Observe option changes: + $scope.$watch( + $attrs.fileUpload, + function (newOptions) { + if (newOptions) { + $element.fileupload('option', newOptions); + } + } + ); + } + ]) + + // Provide File Upload progress feedback: + .controller('FileUploadProgressController', [ + '$scope', '$attrs', '$parse', + function ($scope, $attrs, $parse) { + var fn = $parse($attrs.fileUploadProgress), + update = function () { + var progress = fn($scope); + if (!progress || !progress.total) { + return; + } + $scope.num = Math.floor( + progress.loaded / progress.total * 100 + ); + }; + update(); + $scope.$watch( + $attrs.fileUploadProgress + '.loaded', + function (newValue, oldValue) { + if (newValue !== oldValue) { + update(); + } + } + ); + } + ]) + + // Display File Upload previews: + .controller('FileUploadPreviewController', [ + '$scope', '$element', '$attrs', + function ($scope, $element, $attrs) { + $scope.$watch( + $attrs.fileUploadPreview + '.preview', + function (preview) { + $element.empty(); + if (preview) { + $element.append(preview); + } + } + ); + } + ]) + + .directive('fileUpload', function () { + return { + controller: 'FileUploadController', + scope: true + }; + }) + + .directive('fileUploadProgress', function () { + return { + controller: 'FileUploadProgressController', + scope: true + }; + }) + + .directive('fileUploadPreview', function () { + return { + controller: 'FileUploadPreviewController' + }; + }) + + // Enhance the HTML5 download attribute to + // allow drag&drop of files to the desktop: + .directive('download', function () { + return function (scope, elm) { + elm.on('dragstart', function (e) { + try { + e.originalEvent.dataTransfer.setData( + 'DownloadURL', + [ + 'application/octet-stream', + elm.prop('download'), + elm.prop('href') + ].join(':') + ); + } catch (ignore) {} + }); + }; + }); + +})); diff --git a/public/js/jqFileUploads/js/jquery.fileupload-audio.js b/public/js/jqFileUploads/js/jquery.fileupload-audio.js new file mode 100755 index 0000000..1a746f9 --- /dev/null +++ b/public/js/jqFileUploads/js/jquery.fileupload-audio.js @@ -0,0 +1,112 @@ +/* + * jQuery File Upload Audio Preview Plugin + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2013, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/MIT + */ + +/* jshint nomen:false */ +/* global define, require, window, document */ + +(function (factory) { + 'use strict'; + if (typeof define === 'function' && define.amd) { + // Register as an anonymous AMD module: + define([ + 'jquery', + 'load-image', + './jquery.fileupload-process' + ], factory); + } else if (typeof exports === 'object') { + // Node/CommonJS: + factory( + require('jquery'), + require('load-image') + ); + } else { + // Browser globals: + factory( + window.jQuery, + window.loadImage + ); + } +}(function ($, loadImage) { + 'use strict'; + + // Prepend to the default processQueue: + $.blueimp.fileupload.prototype.options.processQueue.unshift( + { + action: 'loadAudio', + // Use the action as prefix for the "@" options: + prefix: true, + fileTypes: '@', + maxFileSize: '@', + disabled: '@disableAudioPreview' + }, + { + action: 'setAudio', + name: '@audioPreviewName', + disabled: '@disableAudioPreview' + } + ); + + // The File Upload Audio Preview plugin extends the fileupload widget + // with audio preview functionality: + $.widget('blueimp.fileupload', $.blueimp.fileupload, { + + options: { + // The regular expression for the types of audio files to load, + // matched against the file type: + loadAudioFileTypes: /^audio\/.*$/ + }, + + _audioElement: document.createElement('audio'), + + processActions: { + + // Loads the audio file given via data.files and data.index + // as audio element if the browser supports playing it. + // Accepts the options fileTypes (regular expression) + // and maxFileSize (integer) to limit the files to load: + loadAudio: function (data, options) { + if (options.disabled) { + return data; + } + var file = data.files[data.index], + url, + audio; + if (this._audioElement.canPlayType && + this._audioElement.canPlayType(file.type) && + ($.type(options.maxFileSize) !== 'number' || + file.size <= options.maxFileSize) && + (!options.fileTypes || + options.fileTypes.test(file.type))) { + url = loadImage.createObjectURL(file); + if (url) { + audio = this._audioElement.cloneNode(false); + audio.src = url; + audio.controls = true; + data.audio = audio; + return data; + } + } + return data; + }, + + // Sets the audio element as a property of the file object: + setAudio: function (data, options) { + if (data.audio && !options.disabled) { + data.files[data.index][options.name || 'preview'] = data.audio; + } + return data; + } + + } + + }); + +})); diff --git a/public/js/jqFileUploads/js/jquery.fileupload-image.js b/public/js/jqFileUploads/js/jquery.fileupload-image.js new file mode 100755 index 0000000..f3a2ce3 --- /dev/null +++ b/public/js/jqFileUploads/js/jquery.fileupload-image.js @@ -0,0 +1,321 @@ +/* + * jQuery File Upload Image Preview & Resize Plugin + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2013, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/MIT + */ + +/* jshint nomen:false */ +/* global define, require, window, Blob */ + +(function (factory) { + 'use strict'; + if (typeof define === 'function' && define.amd) { + // Register as an anonymous AMD module: + define([ + 'jquery', + 'load-image', + 'load-image-meta', + 'load-image-exif', + 'load-image-ios', + 'canvas-to-blob', + './jquery.fileupload-process' + ], factory); + } else if (typeof exports === 'object') { + // Node/CommonJS: + factory( + require('jquery'), + require('load-image') + ); + } else { + // Browser globals: + factory( + window.jQuery, + window.loadImage + ); + } +}(function ($, loadImage) { + 'use strict'; + + // Prepend to the default processQueue: + $.blueimp.fileupload.prototype.options.processQueue.unshift( + { + action: 'loadImageMetaData', + disableImageHead: '@', + disableExif: '@', + disableExifThumbnail: '@', + disableExifSub: '@', + disableExifGps: '@', + disabled: '@disableImageMetaDataLoad' + }, + { + action: 'loadImage', + // Use the action as prefix for the "@" options: + prefix: true, + fileTypes: '@', + maxFileSize: '@', + noRevoke: '@', + disabled: '@disableImageLoad' + }, + { + action: 'resizeImage', + // Use "image" as prefix for the "@" options: + prefix: 'image', + maxWidth: '@', + maxHeight: '@', + minWidth: '@', + minHeight: '@', + crop: '@', + orientation: '@', + forceResize: '@', + disabled: '@disableImageResize' + }, + { + action: 'saveImage', + quality: '@imageQuality', + type: '@imageType', + disabled: '@disableImageResize' + }, + { + action: 'saveImageMetaData', + disabled: '@disableImageMetaDataSave' + }, + { + action: 'resizeImage', + // Use "preview" as prefix for the "@" options: + prefix: 'preview', + maxWidth: '@', + maxHeight: '@', + minWidth: '@', + minHeight: '@', + crop: '@', + orientation: '@', + thumbnail: '@', + canvas: '@', + disabled: '@disableImagePreview' + }, + { + action: 'setImage', + name: '@imagePreviewName', + disabled: '@disableImagePreview' + }, + { + action: 'deleteImageReferences', + disabled: '@disableImageReferencesDeletion' + } + ); + + // The File Upload Resize plugin extends the fileupload widget + // with image resize functionality: + $.widget('blueimp.fileupload', $.blueimp.fileupload, { + + options: { + // The regular expression for the types of images to load: + // matched against the file type: + loadImageFileTypes: /^image\/(gif|jpeg|png|svg\+xml)$/, + // The maximum file size of images to load: + loadImageMaxFileSize: 10000000, // 10MB + // The maximum width of resized images: + //imageMaxWidth: 4032//1920, + // The maximum height of resized images: + //imageMaxHeight: 4032//1080, + // Defines the image orientation (1-8) or takes the orientation + // value from Exif data if set to true: + imageOrientation: false, + // Define if resized images should be cropped or only scaled: + imageCrop: false, + // Disable the resize image functionality by default: + disableImageResize: true, + // The maximum width of the preview images: + previewMaxWidth: 100, + // The maximum height of the preview images: + previewMaxHeight: 100, + // Defines the preview orientation (1-8) or takes the orientation + // value from Exif data if set to true: + previewOrientation: true, + // Create the preview using the Exif data thumbnail: + previewThumbnail: true, + // Define if preview images should be cropped or only scaled: + previewCrop: false, + // Define if preview images should be resized as canvas elements: + previewCanvas: true + }, + + processActions: { + + // Loads the image given via data.files and data.index + // as img element, if the browser supports the File API. + // Accepts the options fileTypes (regular expression) + // and maxFileSize (integer) to limit the files to load: + loadImage: function (data, options) { + if (options.disabled) { + return data; + } + var that = this, + file = data.files[data.index], + dfd = $.Deferred(); + if (($.type(options.maxFileSize) === 'number' && + file.size > options.maxFileSize) || + (options.fileTypes && + !options.fileTypes.test(file.type)) || + !loadImage( + file, + function (img) { + if (img.src) { + data.img = img; + } + dfd.resolveWith(that, [data]); + }, + options + )) { + return data; + } + return dfd.promise(); + }, + + // Resizes the image given as data.canvas or data.img + // and updates data.canvas or data.img with the resized image. + // Also stores the resized image as preview property. + // Accepts the options maxWidth, maxHeight, minWidth, + // minHeight, canvas and crop: + resizeImage: function (data, options) { + if (options.disabled || !(data.canvas || data.img)) { + return data; + } + options = $.extend({canvas: true}, options); + var that = this, + dfd = $.Deferred(), + img = (options.canvas && data.canvas) || data.img, + resolve = function (newImg) { + if (newImg && (newImg.width !== img.width || + newImg.height !== img.height || + options.forceResize)) { + data[newImg.getContext ? 'canvas' : 'img'] = newImg; + } + data.preview = newImg; + dfd.resolveWith(that, [data]); + }, + thumbnail; + if (data.exif) { + if (options.orientation === true) { + options.orientation = data.exif.get('Orientation'); + } + if (options.thumbnail) { + thumbnail = data.exif.get('Thumbnail'); + if (thumbnail) { + loadImage(thumbnail, resolve, options); + return dfd.promise(); + } + } + // Prevent orienting the same image twice: + if (data.orientation) { + delete options.orientation; + } else { + data.orientation = options.orientation; + } + } + if (img) { + resolve(loadImage.scale(img, options)); + return dfd.promise(); + } + return data; + }, + + // Saves the processed image given as data.canvas + // inplace at data.index of data.files: + saveImage: function (data, options) { + if (!data.canvas || options.disabled) { + return data; + } + var that = this, + file = data.files[data.index], + dfd = $.Deferred(); + if (data.canvas.toBlob) { + data.canvas.toBlob( + function (blob) { + if (!blob.name) { + if (file.type === blob.type) { + blob.name = file.name; + } else if (file.name) { + blob.name = file.name.replace( + /\.\w+$/, + '.' + blob.type.substr(6) + ); + } + } + // Don't restore invalid meta data: + if (file.type !== blob.type) { + delete data.imageHead; + } + // Store the created blob at the position + // of the original file in the files list: + data.files[data.index] = blob; + dfd.resolveWith(that, [data]); + }, + options.type || file.type, + options.quality + ); + } else { + return data; + } + return dfd.promise(); + }, + + loadImageMetaData: function (data, options) { + if (options.disabled) { + return data; + } + var that = this, + dfd = $.Deferred(); + loadImage.parseMetaData(data.files[data.index], function (result) { + $.extend(data, result); + dfd.resolveWith(that, [data]); + }, options); + return dfd.promise(); + }, + + saveImageMetaData: function (data, options) { + if (!(data.imageHead && data.canvas && + data.canvas.toBlob && !options.disabled)) { + return data; + } + var file = data.files[data.index], + blob = new Blob([ + data.imageHead, + // Resized images always have a head size of 20 bytes, + // including the JPEG marker and a minimal JFIF header: + this._blobSlice.call(file, 20) + ], {type: file.type}); + blob.name = file.name; + data.files[data.index] = blob; + return data; + }, + + // Sets the resized version of the image as a property of the + // file object, must be called after "saveImage": + setImage: function (data, options) { + if (data.preview && !options.disabled) { + data.files[data.index][options.name || 'preview'] = data.preview; + } + return data; + }, + + deleteImageReferences: function (data, options) { + if (!options.disabled) { + delete data.img; + delete data.canvas; + delete data.preview; + delete data.imageHead; + } + return data; + } + + } + + }); + +})); diff --git a/public/js/jqFileUploads/js/jquery.fileupload-jquery-ui.js b/public/js/jqFileUploads/js/jquery.fileupload-jquery-ui.js new file mode 100755 index 0000000..4f239fa --- /dev/null +++ b/public/js/jqFileUploads/js/jquery.fileupload-jquery-ui.js @@ -0,0 +1,155 @@ +/* + * jQuery File Upload jQuery UI Plugin + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2013, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/MIT + */ + +/* jshint nomen:false */ +/* global define, require, window */ + +(function (factory) { + 'use strict'; + if (typeof define === 'function' && define.amd) { + // Register as an anonymous AMD module: + define(['jquery', './jquery.fileupload-ui'], factory); + } else if (typeof exports === 'object') { + // Node/CommonJS: + factory(require('jquery')); + } else { + // Browser globals: + factory(window.jQuery); + } +}(function ($) { + 'use strict'; + + $.widget('blueimp.fileupload', $.blueimp.fileupload, { + + options: { + processdone: function (e, data) { + data.context.find('.start').button('enable'); + }, + progress: function (e, data) { + if (data.context) { + data.context.find('.progress').progressbar( + 'option', + 'value', + parseInt(data.loaded / data.total * 100, 10) + ); + } + }, + progressall: function (e, data) { + var $this = $(this); + $this.find('.fileupload-progress') + .find('.progress').progressbar( + 'option', + 'value', + parseInt(data.loaded / data.total * 100, 10) + ).end() + .find('.progress-extended').each(function () { + $(this).html( + ($this.data('blueimp-fileupload') || + $this.data('fileupload')) + ._renderExtendedProgress(data) + ); + }); + } + }, + + _renderUpload: function (func, files) { + var node = this._super(func, files), + showIconText = $(window).width() > 480; + node.find('.progress').empty().progressbar(); + node.find('.start').button({ + icons: {primary: 'ui-icon-circle-arrow-e'}, + text: showIconText + }); + node.find('.cancel').button({ + icons: {primary: 'ui-icon-cancel'}, + text: showIconText + }); + if (node.hasClass('fade')) { + node.hide(); + } + return node; + }, + + _renderDownload: function (func, files) { + var node = this._super(func, files), + showIconText = $(window).width() > 480; + node.find('.delete').button({ + icons: {primary: 'ui-icon-trash'}, + text: showIconText + }); + if (node.hasClass('fade')) { + node.hide(); + } + return node; + }, + + _startHandler: function (e) { + $(e.currentTarget).button('disable'); + this._super(e); + }, + + _transition: function (node) { + var deferred = $.Deferred(); + if (node.hasClass('fade')) { + node.fadeToggle( + this.options.transitionDuration, + this.options.transitionEasing, + function () { + deferred.resolveWith(node); + } + ); + } else { + deferred.resolveWith(node); + } + return deferred; + }, + + _create: function () { + this._super(); + this.element + .find('.fileupload-buttonbar') + .find('.fileinput-button').each(function () { + var input = $(this).find('input:file').detach(); + $(this) + .button({icons: {primary: 'ui-icon-plusthick'}}) + .append(input); + }) + .end().find('.start') + .button({icons: {primary: 'ui-icon-circle-arrow-e'}}) + .end().find('.cancel') + .button({icons: {primary: 'ui-icon-cancel'}}) + .end().find('.delete') + .button({icons: {primary: 'ui-icon-trash'}}) + .end().find('.progress').progressbar(); + }, + + _destroy: function () { + this.element + .find('.fileupload-buttonbar') + .find('.fileinput-button').each(function () { + var input = $(this).find('input:file').detach(); + $(this) + .button('destroy') + .append(input); + }) + .end().find('.start') + .button('destroy') + .end().find('.cancel') + .button('destroy') + .end().find('.delete') + .button('destroy') + .end().find('.progress').progressbar('destroy'); + this._super(); + } + + }); + +})); diff --git a/public/js/jqFileUploads/js/jquery.fileupload-process.js b/public/js/jqFileUploads/js/jquery.fileupload-process.js new file mode 100755 index 0000000..ce914df --- /dev/null +++ b/public/js/jqFileUploads/js/jquery.fileupload-process.js @@ -0,0 +1,175 @@ +/* + * jQuery File Upload Processing Plugin + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2012, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/MIT + */ + +/* jshint nomen:false */ +/* global define, require, window */ + +(function (factory) { + 'use strict'; + if (typeof define === 'function' && define.amd) { + // Register as an anonymous AMD module: + define([ + 'jquery', + './jquery.fileupload' + ], factory); + } else if (typeof exports === 'object') { + // Node/CommonJS: + factory(require('jquery')); + } else { + // Browser globals: + factory( + window.jQuery + ); + } +}(function ($) { + 'use strict'; + + var originalAdd = $.blueimp.fileupload.prototype.options.add; + + // The File Upload Processing plugin extends the fileupload widget + // with file processing functionality: + $.widget('blueimp.fileupload', $.blueimp.fileupload, { + + options: { + // The list of processing actions: + processQueue: [ + /* + { + action: 'log', + type: 'debug' + } + */ + ], + add: function (e, data) { + var $this = $(this); + data.process(function () { + return $this.fileupload('process', data); + }); + originalAdd.call(this, e, data); + } + }, + + processActions: { + /* + log: function (data, options) { + console[options.type]( + 'Processing "' + data.files[data.index].name + '"' + ); + } + */ + }, + + _processFile: function (data, originalData) { + var that = this, + dfd = $.Deferred().resolveWith(that, [data]), + chain = dfd.promise(); + this._trigger('process', null, data); + $.each(data.processQueue, function (i, settings) { + var func = function (data) { + if (originalData.errorThrown) { + return $.Deferred() + .rejectWith(that, [originalData]).promise(); + } + return that.processActions[settings.action].call( + that, + data, + settings + ); + }; + chain = chain.pipe(func, settings.always && func); + }); + chain + .done(function () { + that._trigger('processdone', null, data); + that._trigger('processalways', null, data); + }) + .fail(function () { + that._trigger('processfail', null, data); + that._trigger('processalways', null, data); + }); + return chain; + }, + + // Replaces the settings of each processQueue item that + // are strings starting with an "@", using the remaining + // substring as key for the option map, + // e.g. "@autoUpload" is replaced with options.autoUpload: + _transformProcessQueue: function (options) { + var processQueue = []; + $.each(options.processQueue, function () { + var settings = {}, + action = this.action, + prefix = this.prefix === true ? action : this.prefix; + $.each(this, function (key, value) { + if ($.type(value) === 'string' && + value.charAt(0) === '@') { + settings[key] = options[ + value.slice(1) || (prefix ? prefix + + key.charAt(0).toUpperCase() + key.slice(1) : key) + ]; + } else { + settings[key] = value; + } + + }); + processQueue.push(settings); + }); + options.processQueue = processQueue; + }, + + // Returns the number of files currently in the processsing queue: + processing: function () { + return this._processing; + }, + + // Processes the files given as files property of the data parameter, + // returns a Promise object that allows to bind callbacks: + process: function (data) { + var that = this, + options = $.extend({}, this.options, data); + if (options.processQueue && options.processQueue.length) { + this._transformProcessQueue(options); + if (this._processing === 0) { + this._trigger('processstart'); + } + $.each(data.files, function (index) { + var opts = index ? $.extend({}, options) : options, + func = function () { + if (data.errorThrown) { + return $.Deferred() + .rejectWith(that, [data]).promise(); + } + return that._processFile(opts, data); + }; + opts.index = index; + that._processing += 1; + that._processingQueue = that._processingQueue.pipe(func, func) + .always(function () { + that._processing -= 1; + if (that._processing === 0) { + that._trigger('processstop'); + } + }); + }); + } + return this._processingQueue; + }, + + _create: function () { + this._super(); + this._processing = 0; + this._processingQueue = $.Deferred().resolveWith(this) + .promise(); + } + + }); + +})); diff --git a/public/js/jqFileUploads/js/jquery.fileupload-ui.js b/public/js/jqFileUploads/js/jquery.fileupload-ui.js new file mode 100755 index 0000000..8154218 --- /dev/null +++ b/public/js/jqFileUploads/js/jquery.fileupload-ui.js @@ -0,0 +1,710 @@ +/* + * jQuery File Upload User Interface Plugin + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2010, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/MIT + */ + +/* jshint nomen:false */ +/* global define, require, window */ + +(function (factory) { + 'use strict'; + if (typeof define === 'function' && define.amd) { + // Register as an anonymous AMD module: + define([ + 'jquery', + 'tmpl', + './jquery.fileupload-image', + './jquery.fileupload-audio', + './jquery.fileupload-video', + './jquery.fileupload-validate' + ], factory); + } else if (typeof exports === 'object') { + // Node/CommonJS: + factory( + require('jquery'), + require('tmpl') + ); + } else { + // Browser globals: + factory( + window.jQuery, + window.tmpl + ); + } +}(function ($, tmpl) { + 'use strict'; + + $.blueimp.fileupload.prototype._specialOptions.push( + 'filesContainer', + 'uploadTemplateId', + 'downloadTemplateId' + ); + + // The UI version extends the file upload widget + // and adds complete user interface interaction: + $.widget('blueimp.fileupload', $.blueimp.fileupload, { + + options: { + // By default, files added to the widget are uploaded as soon + // as the user clicks on the start buttons. To enable automatic + // uploads, set the following option to true: + autoUpload: false, + // The ID of the upload template: + uploadTemplateId: 'template-upload', + // The ID of the download template: + downloadTemplateId: 'template-download', + // The container for the list of files. If undefined, it is set to + // an element with class "files" inside of the widget element: + filesContainer: undefined, + // By default, files are appended to the files container. + // Set the following option to true, to prepend files instead: + prependFiles: false, + // The expected data type of the upload response, sets the dataType + // option of the $.ajax upload requests: + dataType: 'json', + + // Error and info messages: + messages: { + unknownError: 'Unknown error' + }, + + // Function returning the current number of files, + // used by the maxNumberOfFiles validation: + getNumberOfFiles: function () { + return this.filesContainer.children() + .not('.processing').length; + }, + + // Callback to retrieve the list of files from the server response: + getFilesFromResponse: function (data) { + if (data.result && $.isArray(data.result.files)) { + return data.result.files; + } + return []; + }, + + // The add callback is invoked as soon as files are added to the fileupload + // widget (via file input selection, drag & drop or add API call). + // See the basic file upload widget for more information: + add: function (e, data) { + if (e.isDefaultPrevented()) { + return false; + } + var $this = $(this), + that = $this.data('blueimp-fileupload') || + $this.data('fileupload'), + options = that.options; + data.context = that._renderUpload(data.files) + .data('data', data) + .addClass('processing'); + options.filesContainer[ + options.prependFiles ? 'prepend' : 'append' + ](data.context); + that._forceReflow(data.context); + that._transition(data.context); + data.process(function () { + return $this.fileupload('process', data); + }).always(function () { + data.context.each(function (index) { + $(this).find('.size').text( + that._formatFileSize(data.files[index].size) + ); + }).removeClass('processing'); + that._renderPreviews(data); + }).done(function () { + data.context.find('.start').prop('disabled', false); + if ((that._trigger('added', e, data) !== false) && + (options.autoUpload || data.autoUpload) && + data.autoUpload !== false) { + data.submit(); + } + }).fail(function () { + if (data.files.error) { + data.context.each(function (index) { + var error = data.files[index].error; + if (error) { + $(this).find('.error').text(error); + } + }); + } + }); + }, + // Callback for the start of each file upload request: + send: function (e, data) { + if (e.isDefaultPrevented()) { + return false; + } + var that = $(this).data('blueimp-fileupload') || + $(this).data('fileupload'); + if (data.context && data.dataType && + data.dataType.substr(0, 6) === 'iframe') { + // Iframe Transport does not support progress events. + // In lack of an indeterminate progress bar, we set + // the progress to 100%, showing the full animated bar: + data.context + .find('.progress').addClass( + !$.support.transition && 'progress-animated' + ) + .attr('aria-valuenow', 100) + .children().first().css( + 'width', + '100%' + ); + } + return that._trigger('sent', e, data); + }, + // Callback for successful uploads: + done: function (e, data) { + if (e.isDefaultPrevented()) { + return false; + } + var that = $(this).data('blueimp-fileupload') || + $(this).data('fileupload'), + getFilesFromResponse = data.getFilesFromResponse || + that.options.getFilesFromResponse, + files = getFilesFromResponse(data), + template, + deferred; + if (data.context) { + data.context.each(function (index) { + var file = files[index] || + {error: 'Empty file upload result'}; + deferred = that._addFinishedDeferreds(); + that._transition($(this)).done( + function () { + var node = $(this); + template = that._renderDownload([file]) + .replaceAll(node); + that._forceReflow(template); + that._transition(template).done( + function () { + data.context = $(this); + that._trigger('completed', e, data); + that._trigger('finished', e, data); + deferred.resolve(); + } + ); + } + ); + }); + } else { + template = that._renderDownload(files)[ + that.options.prependFiles ? 'prependTo' : 'appendTo' + ](that.options.filesContainer); + that._forceReflow(template); + deferred = that._addFinishedDeferreds(); + that._transition(template).done( + function () { + data.context = $(this); + that._trigger('completed', e, data); + that._trigger('finished', e, data); + deferred.resolve(); + } + ); + } + }, + // Callback for failed (abort or error) uploads: + fail: function (e, data) { + if (e.isDefaultPrevented()) { + return false; + } + var that = $(this).data('blueimp-fileupload') || + $(this).data('fileupload'), + template, + deferred; + if (data.context) { + data.context.each(function (index) { + if (data.errorThrown !== 'abort') { + var file = data.files[index]; + file.error = file.error || data.errorThrown || + data.i18n('unknownError'); + deferred = that._addFinishedDeferreds(); + that._transition($(this)).done( + function () { + var node = $(this); + template = that._renderDownload([file]) + .replaceAll(node); + that._forceReflow(template); + that._transition(template).done( + function () { + data.context = $(this); + that._trigger('failed', e, data); + that._trigger('finished', e, data); + deferred.resolve(); + } + ); + } + ); + } else { + deferred = that._addFinishedDeferreds(); + that._transition($(this)).done( + function () { + $(this).remove(); + that._trigger('failed', e, data); + that._trigger('finished', e, data); + deferred.resolve(); + } + ); + } + }); + } else if (data.errorThrown !== 'abort') { + data.context = that._renderUpload(data.files)[ + that.options.prependFiles ? 'prependTo' : 'appendTo' + ](that.options.filesContainer) + .data('data', data); + that._forceReflow(data.context); + deferred = that._addFinishedDeferreds(); + that._transition(data.context).done( + function () { + data.context = $(this); + that._trigger('failed', e, data); + that._trigger('finished', e, data); + deferred.resolve(); + } + ); + } else { + that._trigger('failed', e, data); + that._trigger('finished', e, data); + that._addFinishedDeferreds().resolve(); + } + }, + // Callback for upload progress events: + progress: function (e, data) { + if (e.isDefaultPrevented()) { + return false; + } + var progress = Math.floor(data.loaded / data.total * 100); + if (data.context) { + data.context.each(function () { + $(this).find('.progress') + .attr('aria-valuenow', progress) + .children().first().css( + 'width', + progress + '%' + ); + }); + } + }, + // Callback for global upload progress events: + progressall: function (e, data) { + if (e.isDefaultPrevented()) { + return false; + } + var $this = $(this), + progress = Math.floor(data.loaded / data.total * 100), + globalProgressNode = $this.find('.fileupload-progress'), + extendedProgressNode = globalProgressNode + .find('.progress-extended'); + if (extendedProgressNode.length) { + extendedProgressNode.html( + ($this.data('blueimp-fileupload') || $this.data('fileupload')) + ._renderExtendedProgress(data) + ); + } + globalProgressNode + .find('.progress') + .attr('aria-valuenow', progress) + .children().first().css( + 'width', + progress + '%' + ); + }, + // Callback for uploads start, equivalent to the global ajaxStart event: + start: function (e) { + if (e.isDefaultPrevented()) { + return false; + } + var that = $(this).data('blueimp-fileupload') || + $(this).data('fileupload'); + that._resetFinishedDeferreds(); + that._transition($(this).find('.fileupload-progress')).done( + function () { + that._trigger('started', e); + } + ); + }, + // Callback for uploads stop, equivalent to the global ajaxStop event: + stop: function (e) { + if (e.isDefaultPrevented()) { + return false; + } + var that = $(this).data('blueimp-fileupload') || + $(this).data('fileupload'), + deferred = that._addFinishedDeferreds(); + $.when.apply($, that._getFinishedDeferreds()) + .done(function () { + that._trigger('stopped', e); + }); + that._transition($(this).find('.fileupload-progress')).done( + function () { + $(this).find('.progress') + .attr('aria-valuenow', '0') + .children().first().css('width', '0%'); + $(this).find('.progress-extended').html(' '); + deferred.resolve(); + } + ); + }, + processstart: function (e) { + if (e.isDefaultPrevented()) { + return false; + } + $(this).addClass('fileupload-processing'); + }, + processstop: function (e) { + if (e.isDefaultPrevented()) { + return false; + } + $(this).removeClass('fileupload-processing'); + }, + // Callback for file deletion: + destroy: function (e, data) { + if (e.isDefaultPrevented()) { + return false; + } + var that = $(this).data('blueimp-fileupload') || + $(this).data('fileupload'), + removeNode = function () { + that._transition(data.context).done( + function () { + $(this).remove(); + that._trigger('destroyed', e, data); + } + ); + }; + if (data.url) { + data.dataType = data.dataType || that.options.dataType; + $.ajax(data).done(removeNode).fail(function () { + that._trigger('destroyfailed', e, data); + }); + } else { + removeNode(); + } + } + }, + + _resetFinishedDeferreds: function () { + this._finishedUploads = []; + }, + + _addFinishedDeferreds: function (deferred) { + if (!deferred) { + deferred = $.Deferred(); + } + this._finishedUploads.push(deferred); + return deferred; + }, + + _getFinishedDeferreds: function () { + return this._finishedUploads; + }, + + // Link handler, that allows to download files + // by drag & drop of the links to the desktop: + _enableDragToDesktop: function () { + var link = $(this), + url = link.prop('href'), + name = link.prop('download'), + type = 'application/octet-stream'; + link.bind('dragstart', function (e) { + try { + e.originalEvent.dataTransfer.setData( + 'DownloadURL', + [type, name, url].join(':') + ); + } catch (ignore) {} + }); + }, + + _formatFileSize: function (bytes) { + if (typeof bytes !== 'number') { + return ''; + } + if (bytes >= 1000000000) { + return (bytes / 1000000000).toFixed(2) + ' GB'; + } + if (bytes >= 1000000) { + return (bytes / 1000000).toFixed(2) + ' MB'; + } + return (bytes / 1000).toFixed(2) + ' KB'; + }, + + _formatBitrate: function (bits) { + if (typeof bits !== 'number') { + return ''; + } + if (bits >= 1000000000) { + return (bits / 1000000000).toFixed(2) + ' Gbit/s'; + } + if (bits >= 1000000) { + return (bits / 1000000).toFixed(2) + ' Mbit/s'; + } + if (bits >= 1000) { + return (bits / 1000).toFixed(2) + ' kbit/s'; + } + return bits.toFixed(2) + ' bit/s'; + }, + + _formatTime: function (seconds) { + var date = new Date(seconds * 1000), + days = Math.floor(seconds / 86400); + days = days ? days + 'd ' : ''; + return days + + ('0' + date.getUTCHours()).slice(-2) + ':' + + ('0' + date.getUTCMinutes()).slice(-2) + ':' + + ('0' + date.getUTCSeconds()).slice(-2); + }, + + _formatPercentage: function (floatValue) { + return (floatValue * 100).toFixed(2) + ' %'; + }, + + _renderExtendedProgress: function (data) { + return this._formatBitrate(data.bitrate) + ' | ' + + this._formatTime( + (data.total - data.loaded) * 8 / data.bitrate + ) + ' | ' + + this._formatPercentage( + data.loaded / data.total + ) + ' | ' + + this._formatFileSize(data.loaded) + ' / ' + + this._formatFileSize(data.total); + }, + + _renderTemplate: function (func, files) { + if (!func) { + return $(); + } + var result = func({ + files: files, + formatFileSize: this._formatFileSize, + options: this.options + }); + if (result instanceof $) { + return result; + } + return $(this.options.templatesContainer).html(result).children(); + }, + + _renderPreviews: function (data) { + data.context.find('.preview').each(function (index, elm) { + $(elm).append(data.files[index].preview); + }); + }, + + _renderUpload: function (files) { + return this._renderTemplate( + this.options.uploadTemplate, + files + ); + }, + + _renderDownload: function (files) { + return this._renderTemplate( + this.options.downloadTemplate, + files + ).find('a[download]').each(this._enableDragToDesktop).end(); + }, + + _startHandler: function (e) { + e.preventDefault(); + var button = $(e.currentTarget), + template = button.closest('.template-upload'), + data = template.data('data'); + button.prop('disabled', true); + if (data && data.submit) { + data.submit(); + } + }, + + _cancelHandler: function (e) { + e.preventDefault(); + var template = $(e.currentTarget) + .closest('.template-upload,.template-download'), + data = template.data('data') || {}; + data.context = data.context || template; + if (data.abort) { + data.abort(); + } else { + data.errorThrown = 'abort'; + this._trigger('fail', e, data); + } + }, + + _deleteHandler: function (e) { + e.preventDefault(); + var button = $(e.currentTarget); + this._trigger('destroy', e, $.extend({ + context: button.closest('.template-download'), + type: 'DELETE' + }, button.data())); + }, + + _forceReflow: function (node) { + return $.support.transition && node.length && + node[0].offsetWidth; + }, + + _transition: function (node) { + var dfd = $.Deferred(); + if ($.support.transition && node.hasClass('fade') && node.is(':visible')) { + node.bind( + $.support.transition.end, + function (e) { + // Make sure we don't respond to other transitions events + // in the container element, e.g. from button elements: + if (e.target === node[0]) { + node.unbind($.support.transition.end); + dfd.resolveWith(node); + } + } + ).toggleClass('in'); + } else { + node.toggleClass('in'); + dfd.resolveWith(node); + } + return dfd; + }, + + _initButtonBarEventHandlers: function () { + var fileUploadButtonBar = this.element.find('.fileupload-buttonbar'), + filesList = this.options.filesContainer; + this._on(fileUploadButtonBar.find('.start'), { + click: function (e) { + e.preventDefault(); + filesList.find('.start').click(); + } + }); + this._on(fileUploadButtonBar.find('.cancel'), { + click: function (e) { + e.preventDefault(); + filesList.find('.cancel').click(); + } + }); + this._on(fileUploadButtonBar.find('.delete'), { + click: function (e) { + e.preventDefault(); + filesList.find('.toggle:checked') + .closest('.template-download') + .find('.delete').click(); + fileUploadButtonBar.find('.toggle') + .prop('checked', false); + } + }); + this._on(fileUploadButtonBar.find('.toggle'), { + change: function (e) { + filesList.find('.toggle').prop( + 'checked', + $(e.currentTarget).is(':checked') + ); + } + }); + }, + + _destroyButtonBarEventHandlers: function () { + this._off( + this.element.find('.fileupload-buttonbar') + .find('.start, .cancel, .delete'), + 'click' + ); + this._off( + this.element.find('.fileupload-buttonbar .toggle'), + 'change.' + ); + }, + + _initEventHandlers: function () { + this._super(); + this._on(this.options.filesContainer, { + 'click .start': this._startHandler, + 'click .cancel': this._cancelHandler, + 'click .delete': this._deleteHandler + }); + this._initButtonBarEventHandlers(); + }, + + _destroyEventHandlers: function () { + this._destroyButtonBarEventHandlers(); + this._off(this.options.filesContainer, 'click'); + this._super(); + }, + + _enableFileInputButton: function () { + this.element.find('.fileinput-button input') + .prop('disabled', false) + .parent().removeClass('disabled'); + }, + + _disableFileInputButton: function () { + this.element.find('.fileinput-button input') + .prop('disabled', true) + .parent().addClass('disabled'); + }, + + _initTemplates: function () { + var options = this.options; + options.templatesContainer = this.document[0].createElement( + options.filesContainer.prop('nodeName') + ); + if (tmpl) { + if (options.uploadTemplateId) { + options.uploadTemplate = tmpl(options.uploadTemplateId); + } + if (options.downloadTemplateId) { + options.downloadTemplate = tmpl(options.downloadTemplateId); + } + } + }, + + _initFilesContainer: function () { + var options = this.options; + if (options.filesContainer === undefined) { + options.filesContainer = this.element.find('.files'); + } else if (!(options.filesContainer instanceof $)) { + options.filesContainer = $(options.filesContainer); + } + }, + + _initSpecialOptions: function () { + this._super(); + this._initFilesContainer(); + this._initTemplates(); + }, + + _create: function () { + this._super(); + this._resetFinishedDeferreds(); + if (!$.support.fileInput) { + this._disableFileInputButton(); + } + }, + + enable: function () { + var wasDisabled = false; + if (this.options.disabled) { + wasDisabled = true; + } + this._super(); + if (wasDisabled) { + this.element.find('input, button').prop('disabled', false); + this._enableFileInputButton(); + } + }, + + disable: function () { + if (!this.options.disabled) { + this.element.find('input, button').prop('disabled', true); + this._disableFileInputButton(); + } + this._super(); + } + + }); + +})); diff --git a/public/js/jqFileUploads/js/jquery.fileupload-validate.js b/public/js/jqFileUploads/js/jquery.fileupload-validate.js new file mode 100755 index 0000000..d6f754c --- /dev/null +++ b/public/js/jqFileUploads/js/jquery.fileupload-validate.js @@ -0,0 +1,122 @@ +/* + * jQuery File Upload Validation Plugin + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2013, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/MIT + */ + +/* global define, require, window */ + +(function (factory) { + 'use strict'; + if (typeof define === 'function' && define.amd) { + // Register as an anonymous AMD module: + define([ + 'jquery', + './jquery.fileupload-process' + ], factory); + } else if (typeof exports === 'object') { + // Node/CommonJS: + factory(require('jquery')); + } else { + // Browser globals: + factory( + window.jQuery + ); + } +}(function ($) { + 'use strict'; + + // Append to the default processQueue: + $.blueimp.fileupload.prototype.options.processQueue.push( + { + action: 'validate', + // Always trigger this action, + // even if the previous action was rejected: + always: true, + // Options taken from the global options map: + acceptFileTypes: '@', + maxFileSize: '@', + minFileSize: '@', + maxNumberOfFiles: '@', + disabled: '@disableValidation' + } + ); + + // The File Upload Validation plugin extends the fileupload widget + // with file validation functionality: + $.widget('blueimp.fileupload', $.blueimp.fileupload, { + + options: { + /* + // The regular expression for allowed file types, matches + // against either file type or file name: + acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i, + // The maximum allowed file size in bytes: + maxFileSize: 10000000, // 10 MB + // The minimum allowed file size in bytes: + minFileSize: undefined, // No minimal file size + // The limit of files to be uploaded: + maxNumberOfFiles: 10, + */ + + // Function returning the current number of files, + // has to be overriden for maxNumberOfFiles validation: + getNumberOfFiles: $.noop, + + // Error and info messages: + messages: { + maxNumberOfFiles: 'Maximum number of files exceeded', + acceptFileTypes: 'File type not allowed', + maxFileSize: 'File is too large', + minFileSize: 'File is too small' + } + }, + + processActions: { + + validate: function (data, options) { + if (options.disabled) { + return data; + } + var dfd = $.Deferred(), + settings = this.options, + file = data.files[data.index], + fileSize; + if (options.minFileSize || options.maxFileSize) { + fileSize = file.size; + } + if ($.type(options.maxNumberOfFiles) === 'number' && + (settings.getNumberOfFiles() || 0) + data.files.length > + options.maxNumberOfFiles) { + file.error = settings.i18n('maxNumberOfFiles'); + } else if (options.acceptFileTypes && + !(options.acceptFileTypes.test(file.type) || + options.acceptFileTypes.test(file.name))) { + file.error = settings.i18n('acceptFileTypes'); + } else if (fileSize > options.maxFileSize) { + file.error = settings.i18n('maxFileSize'); + } else if ($.type(fileSize) === 'number' && + fileSize < options.minFileSize) { + file.error = settings.i18n('minFileSize'); + } else { + delete file.error; + } + if (file.error || data.files.error) { + data.files.error = true; + dfd.rejectWith(this, [data]); + } else { + dfd.resolveWith(this, [data]); + } + return dfd.promise(); + } + + } + + }); + +})); diff --git a/public/js/jqFileUploads/js/jquery.fileupload-video.js b/public/js/jqFileUploads/js/jquery.fileupload-video.js new file mode 100755 index 0000000..8067ca1 --- /dev/null +++ b/public/js/jqFileUploads/js/jquery.fileupload-video.js @@ -0,0 +1,112 @@ +/* + * jQuery File Upload Video Preview Plugin + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2013, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/MIT + */ + +/* jshint nomen:false */ +/* global define, require, window, document */ + +(function (factory) { + 'use strict'; + if (typeof define === 'function' && define.amd) { + // Register as an anonymous AMD module: + define([ + 'jquery', + 'load-image', + './jquery.fileupload-process' + ], factory); + } else if (typeof exports === 'object') { + // Node/CommonJS: + factory( + require('jquery'), + require('load-image') + ); + } else { + // Browser globals: + factory( + window.jQuery, + window.loadImage + ); + } +}(function ($, loadImage) { + 'use strict'; + + // Prepend to the default processQueue: + $.blueimp.fileupload.prototype.options.processQueue.unshift( + { + action: 'loadVideo', + // Use the action as prefix for the "@" options: + prefix: true, + fileTypes: '@', + maxFileSize: '@', + disabled: '@disableVideoPreview' + }, + { + action: 'setVideo', + name: '@videoPreviewName', + disabled: '@disableVideoPreview' + } + ); + + // The File Upload Video Preview plugin extends the fileupload widget + // with video preview functionality: + $.widget('blueimp.fileupload', $.blueimp.fileupload, { + + options: { + // The regular expression for the types of video files to load, + // matched against the file type: + loadVideoFileTypes: /^video\/.*$/ + }, + + _videoElement: document.createElement('video'), + + processActions: { + + // Loads the video file given via data.files and data.index + // as video element if the browser supports playing it. + // Accepts the options fileTypes (regular expression) + // and maxFileSize (integer) to limit the files to load: + loadVideo: function (data, options) { + if (options.disabled) { + return data; + } + var file = data.files[data.index], + url, + video; + if (this._videoElement.canPlayType && + this._videoElement.canPlayType(file.type) && + ($.type(options.maxFileSize) !== 'number' || + file.size <= options.maxFileSize) && + (!options.fileTypes || + options.fileTypes.test(file.type))) { + url = loadImage.createObjectURL(file); + if (url) { + video = this._videoElement.cloneNode(false); + video.src = url; + video.controls = true; + data.video = video; + return data; + } + } + return data; + }, + + // Sets the video element as a property of the file object: + setVideo: function (data, options) { + if (data.video && !options.disabled) { + data.files[data.index][options.name || 'preview'] = data.video; + } + return data; + } + + } + + }); + +})); diff --git a/public/js/jqFileUploads/js/jquery.fileupload.js b/public/js/jqFileUploads/js/jquery.fileupload.js new file mode 100755 index 0000000..91b7254 --- /dev/null +++ b/public/js/jqFileUploads/js/jquery.fileupload.js @@ -0,0 +1,1477 @@ +/* + * jQuery File Upload Plugin + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2010, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/MIT + */ + +/* jshint nomen:false */ +/* global define, require, window, document, location, Blob, FormData */ + +(function (factory) { + 'use strict'; + if (typeof define === 'function' && define.amd) { + // Register as an anonymous AMD module: + define([ + 'jquery', + 'jquery.ui.widget' + ], factory); + } else if (typeof exports === 'object') { + // Node/CommonJS: + factory( + require('jquery'), + require('./vendor/jquery.ui.widget') + ); + } else { + // Browser globals: + factory(window.jQuery); + } +}(function ($) { + 'use strict'; + + // Detect file input support, based on + // http://viljamis.com/blog/2012/file-upload-support-on-mobile/ + $.support.fileInput = !(new RegExp( + // Handle devices which give false positives for the feature detection: + '(Android (1\\.[0156]|2\\.[01]))' + + '|(Windows Phone (OS 7|8\\.0))|(XBLWP)|(ZuneWP)|(WPDesktop)' + + '|(w(eb)?OSBrowser)|(webOS)' + + '|(Kindle/(1\\.0|2\\.[05]|3\\.0))' + ).test(window.navigator.userAgent) || + // Feature detection for all other devices: + $('').prop('disabled')); + + // The FileReader API is not actually used, but works as feature detection, + // as some Safari versions (5?) support XHR file uploads via the FormData API, + // but not non-multipart XHR file uploads. + // window.XMLHttpRequestUpload is not available on IE10, so we check for + // window.ProgressEvent instead to detect XHR2 file upload capability: + $.support.xhrFileUpload = !!(window.ProgressEvent && window.FileReader); + $.support.xhrFormDataFileUpload = !!window.FormData; + + // Detect support for Blob slicing (required for chunked uploads): + $.support.blobSlice = window.Blob && (Blob.prototype.slice || + Blob.prototype.webkitSlice || Blob.prototype.mozSlice); + + // Helper function to create drag handlers for dragover/dragenter/dragleave: + function getDragHandler(type) { + var isDragOver = type === 'dragover'; + return function (e) { + e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer; + var dataTransfer = e.dataTransfer; + if (dataTransfer && $.inArray('Files', dataTransfer.types) !== -1 && + this._trigger( + type, + $.Event(type, {delegatedEvent: e}) + ) !== false) { + e.preventDefault(); + if (isDragOver) { + dataTransfer.dropEffect = 'copy'; + } + } + }; + } + + // The fileupload widget listens for change events on file input fields defined + // via fileInput setting and paste or drop events of the given dropZone. + // In addition to the default jQuery Widget methods, the fileupload widget + // exposes the "add" and "send" methods, to add or directly send files using + // the fileupload API. + // By default, files added via file input selection, paste, drag & drop or + // "add" method are uploaded immediately, but it is possible to override + // the "add" callback option to queue file uploads. + $.widget('blueimp.fileupload', { + + options: { + // The drop target element(s), by the default the complete document. + // Set to null to disable drag & drop support: + dropZone: $(document), + // The paste target element(s), by the default undefined. + // Set to a DOM node or jQuery object to enable file pasting: + pasteZone: undefined, + // The file input field(s), that are listened to for change events. + // If undefined, it is set to the file input fields inside + // of the widget element on plugin initialization. + // Set to null to disable the change listener. + fileInput: undefined, + // By default, the file input field is replaced with a clone after + // each input field change event. This is required for iframe transport + // queues and allows change events to be fired for the same file + // selection, but can be disabled by setting the following option to false: + replaceFileInput: true, + // The parameter name for the file form data (the request argument name). + // If undefined or empty, the name property of the file input field is + // used, or "files[]" if the file input name property is also empty, + // can be a string or an array of strings: + paramName: undefined, + // By default, each file of a selection is uploaded using an individual + // request for XHR type uploads. Set to false to upload file + // selections in one request each: + singleFileUploads: true, + // To limit the number of files uploaded with one XHR request, + // set the following option to an integer greater than 0: + limitMultiFileUploads: undefined, + // The following option limits the number of files uploaded with one + // XHR request to keep the request size under or equal to the defined + // limit in bytes: + limitMultiFileUploadSize: undefined, + // Multipart file uploads add a number of bytes to each uploaded file, + // therefore the following option adds an overhead for each file used + // in the limitMultiFileUploadSize configuration: + limitMultiFileUploadSizeOverhead: 512, + // Set the following option to true to issue all file upload requests + // in a sequential order: + sequentialUploads: false, + // To limit the number of concurrent uploads, + // set the following option to an integer greater than 0: + limitConcurrentUploads: undefined, + // Set the following option to true to force iframe transport uploads: + forceIframeTransport: false, + // Set the following option to the location of a redirect url on the + // origin server, for cross-domain iframe transport uploads: + redirect: undefined, + // The parameter name for the redirect url, sent as part of the form + // data and set to 'redirect' if this option is empty: + redirectParamName: undefined, + // Set the following option to the location of a postMessage window, + // to enable postMessage transport uploads: + postMessage: undefined, + // By default, XHR file uploads are sent as multipart/form-data. + // The iframe transport is always using multipart/form-data. + // Set to false to enable non-multipart XHR uploads: + multipart: true, + // To upload large files in smaller chunks, set the following option + // to a preferred maximum chunk size. If set to 0, null or undefined, + // or the browser does not support the required Blob API, files will + // be uploaded as a whole. + maxChunkSize: undefined, + // When a non-multipart upload or a chunked multipart upload has been + // aborted, this option can be used to resume the upload by setting + // it to the size of the already uploaded bytes. This option is most + // useful when modifying the options object inside of the "add" or + // "send" callbacks, as the options are cloned for each file upload. + uploadedBytes: undefined, + // By default, failed (abort or error) file uploads are removed from the + // global progress calculation. Set the following option to false to + // prevent recalculating the global progress data: + recalculateProgress: true, + // Interval in milliseconds to calculate and trigger progress events: + progressInterval: 100, + // Interval in milliseconds to calculate progress bitrate: + bitrateInterval: 500, + // By default, uploads are started automatically when adding files: + autoUpload: true, + + // Error and info messages: + messages: { + uploadedBytes: 'Uploaded bytes exceed file size' + }, + + // Translation function, gets the message key to be translated + // and an object with context specific data as arguments: + i18n: function (message, context) { + message = this.messages[message] || message.toString(); + if (context) { + $.each(context, function (key, value) { + message = message.replace('{' + key + '}', value); + }); + } + return message; + }, + + // Additional form data to be sent along with the file uploads can be set + // using this option, which accepts an array of objects with name and + // value properties, a function returning such an array, a FormData + // object (for XHR file uploads), or a simple object. + // The form of the first fileInput is given as parameter to the function: + formData: function (form) { + return form.serializeArray(); + }, + + // The add callback is invoked as soon as files are added to the fileupload + // widget (via file input selection, drag & drop, paste or add API call). + // If the singleFileUploads option is enabled, this callback will be + // called once for each file in the selection for XHR file uploads, else + // once for each file selection. + // + // The upload starts when the submit method is invoked on the data parameter. + // The data object contains a files property holding the added files + // and allows you to override plugin options as well as define ajax settings. + // + // Listeners for this callback can also be bound the following way: + // .bind('fileuploadadd', func); + // + // data.submit() returns a Promise object and allows to attach additional + // handlers using jQuery's Deferred callbacks: + // data.submit().done(func).fail(func).always(func); + add: function (e, data) { + if (e.isDefaultPrevented()) { + return false; + } + if (data.autoUpload || (data.autoUpload !== false && + $(this).fileupload('option', 'autoUpload'))) { + data.process().done(function () { + data.submit(); + }); + } + }, + + // Other callbacks: + + // Callback for the submit event of each file upload: + // submit: function (e, data) {}, // .bind('fileuploadsubmit', func); + + // Callback for the start of each file upload request: + // send: function (e, data) {}, // .bind('fileuploadsend', func); + + // Callback for successful uploads: + // done: function (e, data) {}, // .bind('fileuploaddone', func); + + // Callback for failed (abort or error) uploads: + // fail: function (e, data) {}, // .bind('fileuploadfail', func); + + // Callback for completed (success, abort or error) requests: + // always: function (e, data) {}, // .bind('fileuploadalways', func); + + // Callback for upload progress events: + // progress: function (e, data) {}, // .bind('fileuploadprogress', func); + + // Callback for global upload progress events: + // progressall: function (e, data) {}, // .bind('fileuploadprogressall', func); + + // Callback for uploads start, equivalent to the global ajaxStart event: + // start: function (e) {}, // .bind('fileuploadstart', func); + + // Callback for uploads stop, equivalent to the global ajaxStop event: + // stop: function (e) {}, // .bind('fileuploadstop', func); + + // Callback for change events of the fileInput(s): + // change: function (e, data) {}, // .bind('fileuploadchange', func); + + // Callback for paste events to the pasteZone(s): + // paste: function (e, data) {}, // .bind('fileuploadpaste', func); + + // Callback for drop events of the dropZone(s): + // drop: function (e, data) {}, // .bind('fileuploaddrop', func); + + // Callback for dragover events of the dropZone(s): + // dragover: function (e) {}, // .bind('fileuploaddragover', func); + + // Callback for the start of each chunk upload request: + // chunksend: function (e, data) {}, // .bind('fileuploadchunksend', func); + + // Callback for successful chunk uploads: + // chunkdone: function (e, data) {}, // .bind('fileuploadchunkdone', func); + + // Callback for failed (abort or error) chunk uploads: + // chunkfail: function (e, data) {}, // .bind('fileuploadchunkfail', func); + + // Callback for completed (success, abort or error) chunk upload requests: + // chunkalways: function (e, data) {}, // .bind('fileuploadchunkalways', func); + + // The plugin options are used as settings object for the ajax calls. + // The following are jQuery ajax settings required for the file uploads: + processData: false, + contentType: false, + cache: false, + timeout: 0 + }, + + // A list of options that require reinitializing event listeners and/or + // special initialization code: + _specialOptions: [ + 'fileInput', + 'dropZone', + 'pasteZone', + 'multipart', + 'forceIframeTransport' + ], + + _blobSlice: $.support.blobSlice && function () { + var slice = this.slice || this.webkitSlice || this.mozSlice; + return slice.apply(this, arguments); + }, + + _BitrateTimer: function () { + this.timestamp = ((Date.now) ? Date.now() : (new Date()).getTime()); + this.loaded = 0; + this.bitrate = 0; + this.getBitrate = function (now, loaded, interval) { + var timeDiff = now - this.timestamp; + if (!this.bitrate || !interval || timeDiff > interval) { + this.bitrate = (loaded - this.loaded) * (1000 / timeDiff) * 8; + this.loaded = loaded; + this.timestamp = now; + } + return this.bitrate; + }; + }, + + _isXHRUpload: function (options) { + return !options.forceIframeTransport && + ((!options.multipart && $.support.xhrFileUpload) || + $.support.xhrFormDataFileUpload); + }, + + _getFormData: function (options) { + var formData; + if ($.type(options.formData) === 'function') { + return options.formData(options.form); + } + if ($.isArray(options.formData)) { + return options.formData; + } + if ($.type(options.formData) === 'object') { + formData = []; + $.each(options.formData, function (name, value) { + formData.push({name: name, value: value}); + }); + return formData; + } + return []; + }, + + _getTotal: function (files) { + var total = 0; + $.each(files, function (index, file) { + total += file.size || 1; + }); + return total; + }, + + _initProgressObject: function (obj) { + var progress = { + loaded: 0, + total: 0, + bitrate: 0 + }; + if (obj._progress) { + $.extend(obj._progress, progress); + } else { + obj._progress = progress; + } + }, + + _initResponseObject: function (obj) { + var prop; + if (obj._response) { + for (prop in obj._response) { + if (obj._response.hasOwnProperty(prop)) { + delete obj._response[prop]; + } + } + } else { + obj._response = {}; + } + }, + + _onProgress: function (e, data) { + if (e.lengthComputable) { + var now = ((Date.now) ? Date.now() : (new Date()).getTime()), + loaded; + if (data._time && data.progressInterval && + (now - data._time < data.progressInterval) && + e.loaded !== e.total) { + return; + } + data._time = now; + loaded = Math.floor( + e.loaded / e.total * (data.chunkSize || data._progress.total) + ) + (data.uploadedBytes || 0); + // Add the difference from the previously loaded state + // to the global loaded counter: + this._progress.loaded += (loaded - data._progress.loaded); + this._progress.bitrate = this._bitrateTimer.getBitrate( + now, + this._progress.loaded, + data.bitrateInterval + ); + data._progress.loaded = data.loaded = loaded; + data._progress.bitrate = data.bitrate = data._bitrateTimer.getBitrate( + now, + loaded, + data.bitrateInterval + ); + // Trigger a custom progress event with a total data property set + // to the file size(s) of the current upload and a loaded data + // property calculated accordingly: + this._trigger( + 'progress', + $.Event('progress', {delegatedEvent: e}), + data + ); + // Trigger a global progress event for all current file uploads, + // including ajax calls queued for sequential file uploads: + this._trigger( + 'progressall', + $.Event('progressall', {delegatedEvent: e}), + this._progress + ); + } + }, + + _initProgressListener: function (options) { + var that = this, + xhr = options.xhr ? options.xhr() : $.ajaxSettings.xhr(); + // Accesss to the native XHR object is required to add event listeners + // for the upload progress event: + if (xhr.upload) { + $(xhr.upload).bind('progress', function (e) { + var oe = e.originalEvent; + // Make sure the progress event properties get copied over: + e.lengthComputable = oe.lengthComputable; + e.loaded = oe.loaded; + e.total = oe.total; + that._onProgress(e, options); + }); + options.xhr = function () { + return xhr; + }; + } + }, + + _isInstanceOf: function (type, obj) { + // Cross-frame instanceof check + return Object.prototype.toString.call(obj) === '[object ' + type + ']'; + }, + + _initXHRData: function (options) { + var that = this, + formData, + file = options.files[0], + // Ignore non-multipart setting if not supported: + multipart = options.multipart || !$.support.xhrFileUpload, + paramName = $.type(options.paramName) === 'array' ? + options.paramName[0] : options.paramName; + options.headers = $.extend({}, options.headers); + if (options.contentRange) { + options.headers['Content-Range'] = options.contentRange; + } + if (!multipart || options.blob || !this._isInstanceOf('File', file)) { + options.headers['Content-Disposition'] = 'attachment; filename="' + + encodeURI(file.name) + '"'; + } + if (!multipart) { + options.contentType = file.type || 'application/octet-stream'; + options.data = options.blob || file; + } else if ($.support.xhrFormDataFileUpload) { + if (options.postMessage) { + // window.postMessage does not allow sending FormData + // objects, so we just add the File/Blob objects to + // the formData array and let the postMessage window + // create the FormData object out of this array: + formData = this._getFormData(options); + if (options.blob) { + formData.push({ + name: paramName, + value: options.blob + }); + } else { + $.each(options.files, function (index, file) { + formData.push({ + name: ($.type(options.paramName) === 'array' && + options.paramName[index]) || paramName, + value: file + }); + }); + } + } else { + if (that._isInstanceOf('FormData', options.formData)) { + formData = options.formData; + } else { + formData = new FormData(); + $.each(this._getFormData(options), function (index, field) { + formData.append(field.name, field.value); + }); + } + if (options.blob) { + formData.append(paramName, options.blob, file.name); + } else { + $.each(options.files, function (index, file) { + // This check allows the tests to run with + // dummy objects: + if (that._isInstanceOf('File', file) || + that._isInstanceOf('Blob', file)) { + formData.append( + ($.type(options.paramName) === 'array' && + options.paramName[index]) || paramName, + file, + file.uploadName || file.name + ); + } + }); + } + } + options.data = formData; + } + // Blob reference is not needed anymore, free memory: + options.blob = null; + }, + + _initIframeSettings: function (options) { + var targetHost = $('').prop('href', options.url).prop('host'); + // Setting the dataType to iframe enables the iframe transport: + options.dataType = 'iframe ' + (options.dataType || ''); + // The iframe transport accepts a serialized array as form data: + options.formData = this._getFormData(options); + // Add redirect url to form data on cross-domain uploads: + if (options.redirect && targetHost && targetHost !== location.host) { + options.formData.push({ + name: options.redirectParamName || 'redirect', + value: options.redirect + }); + } + }, + + _initDataSettings: function (options) { + if (this._isXHRUpload(options)) { + if (!this._chunkedUpload(options, true)) { + if (!options.data) { + this._initXHRData(options); + } + this._initProgressListener(options); + } + if (options.postMessage) { + // Setting the dataType to postmessage enables the + // postMessage transport: + options.dataType = 'postmessage ' + (options.dataType || ''); + } + } else { + this._initIframeSettings(options); + } + }, + + _getParamName: function (options) { + var fileInput = $(options.fileInput), + paramName = options.paramName; + if (!paramName) { + paramName = []; + fileInput.each(function () { + var input = $(this), + name = input.prop('name') || 'files[]', + i = (input.prop('files') || [1]).length; + while (i) { + paramName.push(name); + i -= 1; + } + }); + if (!paramName.length) { + paramName = [fileInput.prop('name') || 'files[]']; + } + } else if (!$.isArray(paramName)) { + paramName = [paramName]; + } + return paramName; + }, + + _initFormSettings: function (options) { + // Retrieve missing options from the input field and the + // associated form, if available: + if (!options.form || !options.form.length) { + options.form = $(options.fileInput.prop('form')); + // If the given file input doesn't have an associated form, + // use the default widget file input's form: + if (!options.form.length) { + options.form = $(this.options.fileInput.prop('form')); + } + } + options.paramName = this._getParamName(options); + if (!options.url) { + options.url = options.form.prop('action') || location.href; + } + // The HTTP request method must be "POST" or "PUT": + options.type = (options.type || + ($.type(options.form.prop('method')) === 'string' && + options.form.prop('method')) || '' + ).toUpperCase(); + if (options.type !== 'POST' && options.type !== 'PUT' && + options.type !== 'PATCH') { + options.type = 'POST'; + } + if (!options.formAcceptCharset) { + options.formAcceptCharset = options.form.attr('accept-charset'); + } + }, + + _getAJAXSettings: function (data) { + var options = $.extend({}, this.options, data); + this._initFormSettings(options); + this._initDataSettings(options); + return options; + }, + + // jQuery 1.6 doesn't provide .state(), + // while jQuery 1.8+ removed .isRejected() and .isResolved(): + _getDeferredState: function (deferred) { + if (deferred.state) { + return deferred.state(); + } + if (deferred.isResolved()) { + return 'resolved'; + } + if (deferred.isRejected()) { + return 'rejected'; + } + return 'pending'; + }, + + // Maps jqXHR callbacks to the equivalent + // methods of the given Promise object: + _enhancePromise: function (promise) { + promise.success = promise.done; + promise.error = promise.fail; + promise.complete = promise.always; + return promise; + }, + + // Creates and returns a Promise object enhanced with + // the jqXHR methods abort, success, error and complete: + _getXHRPromise: function (resolveOrReject, context, args) { + var dfd = $.Deferred(), + promise = dfd.promise(); + context = context || this.options.context || promise; + if (resolveOrReject === true) { + dfd.resolveWith(context, args); + } else if (resolveOrReject === false) { + dfd.rejectWith(context, args); + } + promise.abort = dfd.promise; + return this._enhancePromise(promise); + }, + + // Adds convenience methods to the data callback argument: + _addConvenienceMethods: function (e, data) { + var that = this, + getPromise = function (args) { + return $.Deferred().resolveWith(that, args).promise(); + }; + data.process = function (resolveFunc, rejectFunc) { + if (resolveFunc || rejectFunc) { + data._processQueue = this._processQueue = + (this._processQueue || getPromise([this])).pipe( + function () { + if (data.errorThrown) { + return $.Deferred() + .rejectWith(that, [data]).promise(); + } + return getPromise(arguments); + } + ).pipe(resolveFunc, rejectFunc); + } + return this._processQueue || getPromise([this]); + }; + data.submit = function () { + if (this.state() !== 'pending') { + data.jqXHR = this.jqXHR = + (that._trigger( + 'submit', + $.Event('submit', {delegatedEvent: e}), + this + ) !== false) && that._onSend(e, this); + } + return this.jqXHR || that._getXHRPromise(); + }; + data.abort = function () { + if (this.jqXHR) { + return this.jqXHR.abort(); + } + this.errorThrown = 'abort'; + that._trigger('fail', null, this); + return that._getXHRPromise(false); + }; + data.state = function () { + if (this.jqXHR) { + return that._getDeferredState(this.jqXHR); + } + if (this._processQueue) { + return that._getDeferredState(this._processQueue); + } + }; + data.processing = function () { + return !this.jqXHR && this._processQueue && that + ._getDeferredState(this._processQueue) === 'pending'; + }; + data.progress = function () { + return this._progress; + }; + data.response = function () { + return this._response; + }; + }, + + // Parses the Range header from the server response + // and returns the uploaded bytes: + _getUploadedBytes: function (jqXHR) { + var range = jqXHR.getResponseHeader('Range'), + parts = range && range.split('-'), + upperBytesPos = parts && parts.length > 1 && + parseInt(parts[1], 10); + return upperBytesPos && upperBytesPos + 1; + }, + + // Uploads a file in multiple, sequential requests + // by splitting the file up in multiple blob chunks. + // If the second parameter is true, only tests if the file + // should be uploaded in chunks, but does not invoke any + // upload requests: + _chunkedUpload: function (options, testOnly) { + options.uploadedBytes = options.uploadedBytes || 0; + var that = this, + file = options.files[0], + fs = file.size, + ub = options.uploadedBytes, + mcs = options.maxChunkSize || fs, + slice = this._blobSlice, + dfd = $.Deferred(), + promise = dfd.promise(), + jqXHR, + upload; + if (!(this._isXHRUpload(options) && slice && (ub || mcs < fs)) || + options.data) { + return false; + } + if (testOnly) { + return true; + } + if (ub >= fs) { + file.error = options.i18n('uploadedBytes'); + return this._getXHRPromise( + false, + options.context, + [null, 'error', file.error] + ); + } + // The chunk upload method: + upload = function () { + // Clone the options object for each chunk upload: + var o = $.extend({}, options), + currentLoaded = o._progress.loaded; + o.blob = slice.call( + file, + ub, + ub + mcs, + file.type + ); + // Store the current chunk size, as the blob itself + // will be dereferenced after data processing: + o.chunkSize = o.blob.size; + // Expose the chunk bytes position range: + o.contentRange = 'bytes ' + ub + '-' + + (ub + o.chunkSize - 1) + '/' + fs; + // Process the upload data (the blob and potential form data): + that._initXHRData(o); + // Add progress listeners for this chunk upload: + that._initProgressListener(o); + jqXHR = ((that._trigger('chunksend', null, o) !== false && $.ajax(o)) || + that._getXHRPromise(false, o.context)) + .done(function (result, textStatus, jqXHR) { + ub = that._getUploadedBytes(jqXHR) || + (ub + o.chunkSize); + // Create a progress event if no final progress event + // with loaded equaling total has been triggered + // for this chunk: + if (currentLoaded + o.chunkSize - o._progress.loaded) { + that._onProgress($.Event('progress', { + lengthComputable: true, + loaded: ub - o.uploadedBytes, + total: ub - o.uploadedBytes + }), o); + } + options.uploadedBytes = o.uploadedBytes = ub; + o.result = result; + o.textStatus = textStatus; + o.jqXHR = jqXHR; + that._trigger('chunkdone', null, o); + that._trigger('chunkalways', null, o); + if (ub < fs) { + // File upload not yet complete, + // continue with the next chunk: + upload(); + } else { + dfd.resolveWith( + o.context, + [result, textStatus, jqXHR] + ); + } + }) + .fail(function (jqXHR, textStatus, errorThrown) { + o.jqXHR = jqXHR; + o.textStatus = textStatus; + o.errorThrown = errorThrown; + that._trigger('chunkfail', null, o); + that._trigger('chunkalways', null, o); + dfd.rejectWith( + o.context, + [jqXHR, textStatus, errorThrown] + ); + }); + }; + this._enhancePromise(promise); + promise.abort = function () { + return jqXHR.abort(); + }; + upload(); + return promise; + }, + + _beforeSend: function (e, data) { + if (this._active === 0) { + // the start callback is triggered when an upload starts + // and no other uploads are currently running, + // equivalent to the global ajaxStart event: + this._trigger('start'); + // Set timer for global bitrate progress calculation: + this._bitrateTimer = new this._BitrateTimer(); + // Reset the global progress values: + this._progress.loaded = this._progress.total = 0; + this._progress.bitrate = 0; + } + // Make sure the container objects for the .response() and + // .progress() methods on the data object are available + // and reset to their initial state: + this._initResponseObject(data); + this._initProgressObject(data); + data._progress.loaded = data.loaded = data.uploadedBytes || 0; + data._progress.total = data.total = this._getTotal(data.files) || 1; + data._progress.bitrate = data.bitrate = 0; + this._active += 1; + // Initialize the global progress values: + this._progress.loaded += data.loaded; + this._progress.total += data.total; + }, + + _onDone: function (result, textStatus, jqXHR, options) { + var total = options._progress.total, + response = options._response; + if (options._progress.loaded < total) { + // Create a progress event if no final progress event + // with loaded equaling total has been triggered: + this._onProgress($.Event('progress', { + lengthComputable: true, + loaded: total, + total: total + }), options); + } + response.result = options.result = result; + response.textStatus = options.textStatus = textStatus; + response.jqXHR = options.jqXHR = jqXHR; + this._trigger('done', null, options); + }, + + _onFail: function (jqXHR, textStatus, errorThrown, options) { + var response = options._response; + if (options.recalculateProgress) { + // Remove the failed (error or abort) file upload from + // the global progress calculation: + this._progress.loaded -= options._progress.loaded; + this._progress.total -= options._progress.total; + } + response.jqXHR = options.jqXHR = jqXHR; + response.textStatus = options.textStatus = textStatus; + response.errorThrown = options.errorThrown = errorThrown; + this._trigger('fail', null, options); + }, + + _onAlways: function (jqXHRorResult, textStatus, jqXHRorError, options) { + // jqXHRorResult, textStatus and jqXHRorError are added to the + // options object via done and fail callbacks + this._trigger('always', null, options); + }, + + _onSend: function (e, data) { + if (!data.submit) { + this._addConvenienceMethods(e, data); + } + var that = this, + jqXHR, + aborted, + slot, + pipe, + options = that._getAJAXSettings(data), + send = function () { + that._sending += 1; + // Set timer for bitrate progress calculation: + options._bitrateTimer = new that._BitrateTimer(); + jqXHR = jqXHR || ( + ((aborted || that._trigger( + 'send', + $.Event('send', {delegatedEvent: e}), + options + ) === false) && + that._getXHRPromise(false, options.context, aborted)) || + that._chunkedUpload(options) || $.ajax(options) + ).done(function (result, textStatus, jqXHR) { + that._onDone(result, textStatus, jqXHR, options); + }).fail(function (jqXHR, textStatus, errorThrown) { + that._onFail(jqXHR, textStatus, errorThrown, options); + }).always(function (jqXHRorResult, textStatus, jqXHRorError) { + that._onAlways( + jqXHRorResult, + textStatus, + jqXHRorError, + options + ); + that._sending -= 1; + that._active -= 1; + if (options.limitConcurrentUploads && + options.limitConcurrentUploads > that._sending) { + // Start the next queued upload, + // that has not been aborted: + var nextSlot = that._slots.shift(); + while (nextSlot) { + if (that._getDeferredState(nextSlot) === 'pending') { + nextSlot.resolve(); + break; + } + nextSlot = that._slots.shift(); + } + } + if (that._active === 0) { + // The stop callback is triggered when all uploads have + // been completed, equivalent to the global ajaxStop event: + that._trigger('stop'); + } + }); + return jqXHR; + }; + this._beforeSend(e, options); + if (this.options.sequentialUploads || + (this.options.limitConcurrentUploads && + this.options.limitConcurrentUploads <= this._sending)) { + if (this.options.limitConcurrentUploads > 1) { + slot = $.Deferred(); + this._slots.push(slot); + pipe = slot.pipe(send); + } else { + this._sequence = this._sequence.pipe(send, send); + pipe = this._sequence; + } + // Return the piped Promise object, enhanced with an abort method, + // which is delegated to the jqXHR object of the current upload, + // and jqXHR callbacks mapped to the equivalent Promise methods: + pipe.abort = function () { + aborted = [undefined, 'abort', 'abort']; + if (!jqXHR) { + if (slot) { + slot.rejectWith(options.context, aborted); + } + return send(); + } + return jqXHR.abort(); + }; + return this._enhancePromise(pipe); + } + return send(); + }, + + _onAdd: function (e, data) { + var that = this, + result = true, + options = $.extend({}, this.options, data), + files = data.files, + filesLength = files.length, + limit = options.limitMultiFileUploads, + limitSize = options.limitMultiFileUploadSize, + overhead = options.limitMultiFileUploadSizeOverhead, + batchSize = 0, + paramName = this._getParamName(options), + paramNameSet, + paramNameSlice, + fileSet, + i, + j = 0; + if (!filesLength) { + return false; + } + if (limitSize && files[0].size === undefined) { + limitSize = undefined; + } + if (!(options.singleFileUploads || limit || limitSize) || + !this._isXHRUpload(options)) { + fileSet = [files]; + paramNameSet = [paramName]; + } else if (!(options.singleFileUploads || limitSize) && limit) { + fileSet = []; + paramNameSet = []; + for (i = 0; i < filesLength; i += limit) { + fileSet.push(files.slice(i, i + limit)); + paramNameSlice = paramName.slice(i, i + limit); + if (!paramNameSlice.length) { + paramNameSlice = paramName; + } + paramNameSet.push(paramNameSlice); + } + } else if (!options.singleFileUploads && limitSize) { + fileSet = []; + paramNameSet = []; + for (i = 0; i < filesLength; i = i + 1) { + batchSize += files[i].size + overhead; + if (i + 1 === filesLength || + ((batchSize + files[i + 1].size + overhead) > limitSize) || + (limit && i + 1 - j >= limit)) { + fileSet.push(files.slice(j, i + 1)); + paramNameSlice = paramName.slice(j, i + 1); + if (!paramNameSlice.length) { + paramNameSlice = paramName; + } + paramNameSet.push(paramNameSlice); + j = i + 1; + batchSize = 0; + } + } + } else { + paramNameSet = paramName; + } + data.originalFiles = files; + $.each(fileSet || files, function (index, element) { + var newData = $.extend({}, data); + newData.files = fileSet ? element : [element]; + newData.paramName = paramNameSet[index]; + that._initResponseObject(newData); + that._initProgressObject(newData); + that._addConvenienceMethods(e, newData); + result = that._trigger( + 'add', + $.Event('add', {delegatedEvent: e}), + newData + ); + return result; + }); + return result; + }, + + _replaceFileInput: function (data) { + var input = data.fileInput, + inputClone = input.clone(true), + restoreFocus = input.is(document.activeElement); + // Add a reference for the new cloned file input to the data argument: + data.fileInputClone = inputClone; + $('
').append(inputClone)[0].reset(); + // Detaching allows to insert the fileInput on another form + // without loosing the file input value: + input.after(inputClone).detach(); + // If the fileInput had focus before it was detached, + // restore focus to the inputClone. + if (restoreFocus) { + inputClone.focus(); + } + // Avoid memory leaks with the detached file input: + $.cleanData(input.unbind('remove')); + // Replace the original file input element in the fileInput + // elements set with the clone, which has been copied including + // event handlers: + this.options.fileInput = this.options.fileInput.map(function (i, el) { + if (el === input[0]) { + return inputClone[0]; + } + return el; + }); + // If the widget has been initialized on the file input itself, + // override this.element with the file input clone: + if (input[0] === this.element[0]) { + this.element = inputClone; + } + }, + + _handleFileTreeEntry: function (entry, path) { + var that = this, + dfd = $.Deferred(), + errorHandler = function (e) { + if (e && !e.entry) { + e.entry = entry; + } + // Since $.when returns immediately if one + // Deferred is rejected, we use resolve instead. + // This allows valid files and invalid items + // to be returned together in one set: + dfd.resolve([e]); + }, + successHandler = function (entries) { + that._handleFileTreeEntries( + entries, + path + entry.name + '/' + ).done(function (files) { + dfd.resolve(files); + }).fail(errorHandler); + }, + readEntries = function () { + dirReader.readEntries(function (results) { + if (!results.length) { + successHandler(entries); + } else { + entries = entries.concat(results); + readEntries(); + } + }, errorHandler); + }, + dirReader, entries = []; + path = path || ''; + if (entry.isFile) { + if (entry._file) { + // Workaround for Chrome bug #149735 + entry._file.relativePath = path; + dfd.resolve(entry._file); + } else { + entry.file(function (file) { + file.relativePath = path; + dfd.resolve(file); + }, errorHandler); + } + } else if (entry.isDirectory) { + dirReader = entry.createReader(); + readEntries(); + } else { + // Return an empy list for file system items + // other than files or directories: + dfd.resolve([]); + } + return dfd.promise(); + }, + + _handleFileTreeEntries: function (entries, path) { + var that = this; + return $.when.apply( + $, + $.map(entries, function (entry) { + return that._handleFileTreeEntry(entry, path); + }) + ).pipe(function () { + return Array.prototype.concat.apply( + [], + arguments + ); + }); + }, + + _getDroppedFiles: function (dataTransfer) { + dataTransfer = dataTransfer || {}; + var items = dataTransfer.items; + if (items && items.length && (items[0].webkitGetAsEntry || + items[0].getAsEntry)) { + return this._handleFileTreeEntries( + $.map(items, function (item) { + var entry; + if (item.webkitGetAsEntry) { + entry = item.webkitGetAsEntry(); + if (entry) { + // Workaround for Chrome bug #149735: + entry._file = item.getAsFile(); + } + return entry; + } + return item.getAsEntry(); + }) + ); + } + return $.Deferred().resolve( + $.makeArray(dataTransfer.files) + ).promise(); + }, + + _getSingleFileInputFiles: function (fileInput) { + fileInput = $(fileInput); + var entries = fileInput.prop('webkitEntries') || + fileInput.prop('entries'), + files, + value; + if (entries && entries.length) { + return this._handleFileTreeEntries(entries); + } + files = $.makeArray(fileInput.prop('files')); + if (!files.length) { + value = fileInput.prop('value'); + if (!value) { + return $.Deferred().resolve([]).promise(); + } + // If the files property is not available, the browser does not + // support the File API and we add a pseudo File object with + // the input value as name with path information removed: + files = [{name: value.replace(/^.*\\/, '')}]; + } else if (files[0].name === undefined && files[0].fileName) { + // File normalization for Safari 4 and Firefox 3: + $.each(files, function (index, file) { + file.name = file.fileName; + file.size = file.fileSize; + }); + } + return $.Deferred().resolve(files).promise(); + }, + + _getFileInputFiles: function (fileInput) { + if (!(fileInput instanceof $) || fileInput.length === 1) { + return this._getSingleFileInputFiles(fileInput); + } + return $.when.apply( + $, + $.map(fileInput, this._getSingleFileInputFiles) + ).pipe(function () { + return Array.prototype.concat.apply( + [], + arguments + ); + }); + }, + + _onChange: function (e) { + var that = this, + data = { + fileInput: $(e.target), + form: $(e.target.form) + }; + this._getFileInputFiles(data.fileInput).always(function (files) { + data.files = files; + if (that.options.replaceFileInput) { + that._replaceFileInput(data); + } + if (that._trigger( + 'change', + $.Event('change', {delegatedEvent: e}), + data + ) !== false) { + that._onAdd(e, data); + } + }); + }, + + _onPaste: function (e) { + var items = e.originalEvent && e.originalEvent.clipboardData && + e.originalEvent.clipboardData.items, + data = {files: []}; + if (items && items.length) { + $.each(items, function (index, item) { + var file = item.getAsFile && item.getAsFile(); + if (file) { + data.files.push(file); + } + }); + if (this._trigger( + 'paste', + $.Event('paste', {delegatedEvent: e}), + data + ) !== false) { + this._onAdd(e, data); + } + } + }, + + _onDrop: function (e) { + e.dataTransfer = e.originalEvent && e.originalEvent.dataTransfer; + var that = this, + dataTransfer = e.dataTransfer, + data = {}; + if (dataTransfer && dataTransfer.files && dataTransfer.files.length) { + e.preventDefault(); + this._getDroppedFiles(dataTransfer).always(function (files) { + data.files = files; + if (that._trigger( + 'drop', + $.Event('drop', {delegatedEvent: e}), + data + ) !== false) { + that._onAdd(e, data); + } + }); + } + }, + + _onDragOver: getDragHandler('dragover'), + + _onDragEnter: getDragHandler('dragenter'), + + _onDragLeave: getDragHandler('dragleave'), + + _initEventHandlers: function () { + if (this._isXHRUpload(this.options)) { + this._on(this.options.dropZone, { + dragover: this._onDragOver, + drop: this._onDrop, + // event.preventDefault() on dragenter is required for IE10+: + dragenter: this._onDragEnter, + // dragleave is not required, but added for completeness: + dragleave: this._onDragLeave + }); + this._on(this.options.pasteZone, { + paste: this._onPaste + }); + } + if ($.support.fileInput) { + this._on(this.options.fileInput, { + change: this._onChange + }); + } + }, + + _destroyEventHandlers: function () { + this._off(this.options.dropZone, 'dragenter dragleave dragover drop'); + this._off(this.options.pasteZone, 'paste'); + this._off(this.options.fileInput, 'change'); + }, + + _setOption: function (key, value) { + var reinit = $.inArray(key, this._specialOptions) !== -1; + if (reinit) { + this._destroyEventHandlers(); + } + this._super(key, value); + if (reinit) { + this._initSpecialOptions(); + this._initEventHandlers(); + } + }, + + _initSpecialOptions: function () { + var options = this.options; + if (options.fileInput === undefined) { + options.fileInput = this.element.is('input[type="file"]') ? + this.element : this.element.find('input[type="file"]'); + } else if (!(options.fileInput instanceof $)) { + options.fileInput = $(options.fileInput); + } + if (!(options.dropZone instanceof $)) { + options.dropZone = $(options.dropZone); + } + if (!(options.pasteZone instanceof $)) { + options.pasteZone = $(options.pasteZone); + } + }, + + _getRegExp: function (str) { + var parts = str.split('/'), + modifiers = parts.pop(); + parts.shift(); + return new RegExp(parts.join('/'), modifiers); + }, + + _isRegExpOption: function (key, value) { + return key !== 'url' && $.type(value) === 'string' && + /^\/.*\/[igm]{0,3}$/.test(value); + }, + + _initDataAttributes: function () { + var that = this, + options = this.options, + data = this.element.data(); + // Initialize options set via HTML5 data-attributes: + $.each( + this.element[0].attributes, + function (index, attr) { + var key = attr.name.toLowerCase(), + value; + if (/^data-/.test(key)) { + // Convert hyphen-ated key to camelCase: + key = key.slice(5).replace(/-[a-z]/g, function (str) { + return str.charAt(1).toUpperCase(); + }); + value = data[key]; + if (that._isRegExpOption(key, value)) { + value = that._getRegExp(value); + } + options[key] = value; + } + } + ); + }, + + _create: function () { + this._initDataAttributes(); + this._initSpecialOptions(); + this._slots = []; + this._sequence = this._getXHRPromise(true); + this._sending = this._active = 0; + this._initProgressObject(this); + this._initEventHandlers(); + }, + + // This method is exposed to the widget API and allows to query + // the number of active uploads: + active: function () { + return this._active; + }, + + // This method is exposed to the widget API and allows to query + // the widget upload progress. + // It returns an object with loaded, total and bitrate properties + // for the running uploads: + progress: function () { + return this._progress; + }, + + // This method is exposed to the widget API and allows adding files + // using the fileupload API. The data parameter accepts an object which + // must have a files property and can contain additional options: + // .fileupload('add', {files: filesList}); + add: function (data) { + var that = this; + if (!data || this.options.disabled) { + return; + } + if (data.fileInput && !data.files) { + this._getFileInputFiles(data.fileInput).always(function (files) { + data.files = files; + that._onAdd(null, data); + }); + } else { + data.files = $.makeArray(data.files); + this._onAdd(null, data); + } + }, + + // This method is exposed to the widget API and allows sending files + // using the fileupload API. The data parameter accepts an object which + // must have a files or fileInput property and can contain additional options: + // .fileupload('send', {files: filesList}); + // The method returns a Promise object for the file upload call. + send: function (data) { + if (data && !this.options.disabled) { + if (data.fileInput && !data.files) { + var that = this, + dfd = $.Deferred(), + promise = dfd.promise(), + jqXHR, + aborted; + promise.abort = function () { + aborted = true; + if (jqXHR) { + return jqXHR.abort(); + } + dfd.reject(null, 'abort', 'abort'); + return promise; + }; + this._getFileInputFiles(data.fileInput).always( + function (files) { + if (aborted) { + return; + } + if (!files.length) { + dfd.reject(); + return; + } + data.files = files; + jqXHR = that._onSend(null, data); + jqXHR.then( + function (result, textStatus, jqXHR) { + dfd.resolve(result, textStatus, jqXHR); + }, + function (jqXHR, textStatus, errorThrown) { + dfd.reject(jqXHR, textStatus, errorThrown); + } + ); + } + ); + return this._enhancePromise(promise); + } + data.files = $.makeArray(data.files); + if (data.files.length) { + return this._onSend(null, data); + } + } + return this._getXHRPromise(false, data && data.context); + } + + }); + +})); diff --git a/public/js/jqFileUploads/js/jquery.iframe-transport.js b/public/js/jqFileUploads/js/jquery.iframe-transport.js new file mode 100755 index 0000000..a7d34e0 --- /dev/null +++ b/public/js/jqFileUploads/js/jquery.iframe-transport.js @@ -0,0 +1,217 @@ +/* + * jQuery Iframe Transport Plugin + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2011, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/MIT + */ + +/* global define, require, window, document */ + +(function (factory) { + 'use strict'; + if (typeof define === 'function' && define.amd) { + // Register as an anonymous AMD module: + define(['jquery'], factory); + } else if (typeof exports === 'object') { + // Node/CommonJS: + factory(require('jquery')); + } else { + // Browser globals: + factory(window.jQuery); + } +}(function ($) { + 'use strict'; + + // Helper variable to create unique names for the transport iframes: + var counter = 0; + + // The iframe transport accepts four additional options: + // options.fileInput: a jQuery collection of file input fields + // options.paramName: the parameter name for the file form data, + // overrides the name property of the file input field(s), + // can be a string or an array of strings. + // options.formData: an array of objects with name and value properties, + // equivalent to the return data of .serializeArray(), e.g.: + // [{name: 'a', value: 1}, {name: 'b', value: 2}] + // options.initialIframeSrc: the URL of the initial iframe src, + // by default set to "javascript:false;" + $.ajaxTransport('iframe', function (options) { + if (options.async) { + // javascript:false as initial iframe src + // prevents warning popups on HTTPS in IE6: + /*jshint scripturl: true */ + var initialIframeSrc = options.initialIframeSrc || 'javascript:false;', + /*jshint scripturl: false */ + form, + iframe, + addParamChar; + return { + send: function (_, completeCallback) { + form = $('
'); + form.attr('accept-charset', options.formAcceptCharset); + addParamChar = /\?/.test(options.url) ? '&' : '?'; + // XDomainRequest only supports GET and POST: + if (options.type === 'DELETE') { + options.url = options.url + addParamChar + '_method=DELETE'; + options.type = 'POST'; + } else if (options.type === 'PUT') { + options.url = options.url + addParamChar + '_method=PUT'; + options.type = 'POST'; + } else if (options.type === 'PATCH') { + options.url = options.url + addParamChar + '_method=PATCH'; + options.type = 'POST'; + } + // IE versions below IE8 cannot set the name property of + // elements that have already been added to the DOM, + // so we set the name along with the iframe HTML markup: + counter += 1; + iframe = $( + '' + ).bind('load', function () { + var fileInputClones, + paramNames = $.isArray(options.paramName) ? + options.paramName : [options.paramName]; + iframe + .unbind('load') + .bind('load', function () { + var response; + // Wrap in a try/catch block to catch exceptions thrown + // when trying to access cross-domain iframe contents: + try { + response = iframe.contents(); + // Google Chrome and Firefox do not throw an + // exception when calling iframe.contents() on + // cross-domain requests, so we unify the response: + if (!response.length || !response[0].firstChild) { + throw new Error(); + } + } catch (e) { + response = undefined; + } + // The complete callback returns the + // iframe content document as response object: + completeCallback( + 200, + 'success', + {'iframe': response} + ); + // Fix for IE endless progress bar activity bug + // (happens on form submits to iframe targets): + $('') + .appendTo(form); + window.setTimeout(function () { + // Removing the form in a setTimeout call + // allows Chrome's developer tools to display + // the response result + form.remove(); + }, 0); + }); + form + .prop('target', iframe.prop('name')) + .prop('action', options.url) + .prop('method', options.type); + if (options.formData) { + $.each(options.formData, function (index, field) { + $('') + .prop('name', field.name) + .val(field.value) + .appendTo(form); + }); + } + if (options.fileInput && options.fileInput.length && + options.type === 'POST') { + fileInputClones = options.fileInput.clone(); + // Insert a clone for each file input field: + options.fileInput.after(function (index) { + return fileInputClones[index]; + }); + if (options.paramName) { + options.fileInput.each(function (index) { + $(this).prop( + 'name', + paramNames[index] || options.paramName + ); + }); + } + // Appending the file input fields to the hidden form + // removes them from their original location: + form + .append(options.fileInput) + .prop('enctype', 'multipart/form-data') + // enctype must be set as encoding for IE: + .prop('encoding', 'multipart/form-data'); + // Remove the HTML5 form attribute from the input(s): + options.fileInput.removeAttr('form'); + } + form.submit(); + // Insert the file input fields at their original location + // by replacing the clones with the originals: + if (fileInputClones && fileInputClones.length) { + options.fileInput.each(function (index, input) { + var clone = $(fileInputClones[index]); + // Restore the original name and form properties: + $(input) + .prop('name', clone.prop('name')) + .attr('form', clone.attr('form')); + clone.replaceWith(input); + }); + } + }); + form.append(iframe).appendTo(document.body); + }, + abort: function () { + if (iframe) { + // javascript:false as iframe src aborts the request + // and prevents warning popups on HTTPS in IE6. + // concat is used to avoid the "Script URL" JSLint error: + iframe + .unbind('load') + .prop('src', initialIframeSrc); + } + if (form) { + form.remove(); + } + } + }; + } + }); + + // The iframe transport returns the iframe content document as response. + // The following adds converters from iframe to text, json, html, xml + // and script. + // Please note that the Content-Type for JSON responses has to be text/plain + // or text/html, if the browser doesn't include application/json in the + // Accept header, else IE will show a download dialog. + // The Content-Type for XML responses on the other hand has to be always + // application/xml or text/xml, so IE properly parses the XML response. + // See also + // https://github.com/blueimp/jQuery-File-Upload/wiki/Setup#content-type-negotiation + $.ajaxSetup({ + converters: { + 'iframe text': function (iframe) { + return iframe && $(iframe[0].body).text(); + }, + 'iframe json': function (iframe) { + return iframe && $.parseJSON($(iframe[0].body).text()); + }, + 'iframe html': function (iframe) { + return iframe && $(iframe[0].body).html(); + }, + 'iframe xml': function (iframe) { + var xmlDoc = iframe && iframe[0]; + return xmlDoc && $.isXMLDoc(xmlDoc) ? xmlDoc : + $.parseXML((xmlDoc.XMLDocument && xmlDoc.XMLDocument.xml) || + $(xmlDoc.body).html()); + }, + 'iframe script': function (iframe) { + return iframe && $.globalEval($(iframe[0].body).text()); + } + } + }); + +})); diff --git a/public/js/jqFileUploads/js/main.js b/public/js/jqFileUploads/js/main.js new file mode 100755 index 0000000..504726c --- /dev/null +++ b/public/js/jqFileUploads/js/main.js @@ -0,0 +1,44 @@ +$(function () { + 'use strict'; + + var f = $('#fileupload'); + + f.bind('fileuploadsubmit', function (e, data) { + + var gid = $("meta[name=gid]").attr('content'); + var _token = $("meta[name=_token]").attr('content'); + + var event_id = $("meta[name=event_id]").attr('content'); + + + data.formData = [ + {name: 'gid', value: gid}, + {name: 'event_id', value: event_id}, + {name: '_token', value: _token}, + ]; + }); + + // Enable iframe cross-domain access via redirect option: + f.fileupload( + { + url: '/photo', + //done:function(res){ + // console.log('done'); + // console.log(res); + //} + } + ); + + f.addClass('fileupload-processing'); + $.ajax({ + url: f.fileupload('option', 'url'), + dataType: 'json', + context: f[0], + }).always(function () { + $(this).removeClass('fileupload-processing'); + }).done(function (result) { + $(this).fileupload('option', 'done') + .call(this, $.Event('done'), {result: result}); + }); + +}); diff --git a/public/js/jqFileUploads/js/vendor/jquery.ui.widget.js b/public/js/jqFileUploads/js/vendor/jquery.ui.widget.js new file mode 100755 index 0000000..e08df3f --- /dev/null +++ b/public/js/jqFileUploads/js/vendor/jquery.ui.widget.js @@ -0,0 +1,572 @@ +/*! jQuery UI - v1.11.4+CommonJS - 2015-08-28 +* http://jqueryui.com +* Includes: widget.js +* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */ + +(function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define([ "jquery" ], factory ); + + } else if ( typeof exports === "object" ) { + + // Node/CommonJS + factory( require( "jquery" ) ); + + } else { + + // Browser globals + factory( jQuery ); + } +}(function( $ ) { +/*! + * jQuery UI Widget 1.11.4 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + * http://api.jqueryui.com/jQuery.widget/ + */ + + +var widget_uuid = 0, + widget_slice = Array.prototype.slice; + +$.cleanData = (function( orig ) { + return function( elems ) { + var events, elem, i; + for ( i = 0; (elem = elems[i]) != null; i++ ) { + try { + + // Only trigger remove when necessary to save time + events = $._data( elem, "events" ); + if ( events && events.remove ) { + $( elem ).triggerHandler( "remove" ); + } + + // http://bugs.jquery.com/ticket/8235 + } catch ( e ) {} + } + orig( elems ); + }; +})( $.cleanData ); + +$.widget = function( name, base, prototype ) { + var fullName, existingConstructor, constructor, basePrototype, + // proxiedPrototype allows the provided prototype to remain unmodified + // so that it can be used as a mixin for multiple widgets (#8876) + proxiedPrototype = {}, + namespace = name.split( "." )[ 0 ]; + + name = name.split( "." )[ 1 ]; + fullName = namespace + "-" + name; + + if ( !prototype ) { + prototype = base; + base = $.Widget; + } + + // create selector for plugin + $.expr[ ":" ][ fullName.toLowerCase() ] = function( elem ) { + return !!$.data( elem, fullName ); + }; + + $[ namespace ] = $[ namespace ] || {}; + existingConstructor = $[ namespace ][ name ]; + constructor = $[ namespace ][ name ] = function( options, element ) { + // allow instantiation without "new" keyword + if ( !this._createWidget ) { + return new constructor( options, element ); + } + + // allow instantiation without initializing for simple inheritance + // must use "new" keyword (the code above always passes args) + if ( arguments.length ) { + this._createWidget( options, element ); + } + }; + // extend with the existing constructor to carry over any static properties + $.extend( constructor, existingConstructor, { + version: prototype.version, + // copy the object used to create the prototype in case we need to + // redefine the widget later + _proto: $.extend( {}, prototype ), + // track widgets that inherit from this widget in case this widget is + // redefined after a widget inherits from it + _childConstructors: [] + }); + + basePrototype = new base(); + // we need to make the options hash a property directly on the new instance + // otherwise we'll modify the options hash on the prototype that we're + // inheriting from + basePrototype.options = $.widget.extend( {}, basePrototype.options ); + $.each( prototype, function( prop, value ) { + if ( !$.isFunction( value ) ) { + proxiedPrototype[ prop ] = value; + return; + } + proxiedPrototype[ prop ] = (function() { + var _super = function() { + return base.prototype[ prop ].apply( this, arguments ); + }, + _superApply = function( args ) { + return base.prototype[ prop ].apply( this, args ); + }; + return function() { + var __super = this._super, + __superApply = this._superApply, + returnValue; + + this._super = _super; + this._superApply = _superApply; + + returnValue = value.apply( this, arguments ); + + this._super = __super; + this._superApply = __superApply; + + return returnValue; + }; + })(); + }); + constructor.prototype = $.widget.extend( basePrototype, { + // TODO: remove support for widgetEventPrefix + // always use the name + a colon as the prefix, e.g., draggable:start + // don't prefix for widgets that aren't DOM-based + widgetEventPrefix: existingConstructor ? (basePrototype.widgetEventPrefix || name) : name + }, proxiedPrototype, { + constructor: constructor, + namespace: namespace, + widgetName: name, + widgetFullName: fullName + }); + + // If this widget is being redefined then we need to find all widgets that + // are inheriting from it and redefine all of them so that they inherit from + // the new version of this widget. We're essentially trying to replace one + // level in the prototype chain. + if ( existingConstructor ) { + $.each( existingConstructor._childConstructors, function( i, child ) { + var childPrototype = child.prototype; + + // redefine the child widget using the same prototype that was + // originally used, but inherit from the new version of the base + $.widget( childPrototype.namespace + "." + childPrototype.widgetName, constructor, child._proto ); + }); + // remove the list of existing child constructors from the old constructor + // so the old child constructors can be garbage collected + delete existingConstructor._childConstructors; + } else { + base._childConstructors.push( constructor ); + } + + $.widget.bridge( name, constructor ); + + return constructor; +}; + +$.widget.extend = function( target ) { + var input = widget_slice.call( arguments, 1 ), + inputIndex = 0, + inputLength = input.length, + key, + value; + for ( ; inputIndex < inputLength; inputIndex++ ) { + for ( key in input[ inputIndex ] ) { + value = input[ inputIndex ][ key ]; + if ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) { + // Clone objects + if ( $.isPlainObject( value ) ) { + target[ key ] = $.isPlainObject( target[ key ] ) ? + $.widget.extend( {}, target[ key ], value ) : + // Don't extend strings, arrays, etc. with objects + $.widget.extend( {}, value ); + // Copy everything else by reference + } else { + target[ key ] = value; + } + } + } + } + return target; +}; + +$.widget.bridge = function( name, object ) { + var fullName = object.prototype.widgetFullName || name; + $.fn[ name ] = function( options ) { + var isMethodCall = typeof options === "string", + args = widget_slice.call( arguments, 1 ), + returnValue = this; + + if ( isMethodCall ) { + this.each(function() { + var methodValue, + instance = $.data( this, fullName ); + if ( options === "instance" ) { + returnValue = instance; + return false; + } + if ( !instance ) { + return $.error( "cannot call methods on " + name + " prior to initialization; " + + "attempted to call method '" + options + "'" ); + } + if ( !$.isFunction( instance[options] ) || options.charAt( 0 ) === "_" ) { + return $.error( "no such method '" + options + "' for " + name + " widget instance" ); + } + methodValue = instance[ options ].apply( instance, args ); + if ( methodValue !== instance && methodValue !== undefined ) { + returnValue = methodValue && methodValue.jquery ? + returnValue.pushStack( methodValue.get() ) : + methodValue; + return false; + } + }); + } else { + + // Allow multiple hashes to be passed on init + if ( args.length ) { + options = $.widget.extend.apply( null, [ options ].concat(args) ); + } + + this.each(function() { + var instance = $.data( this, fullName ); + if ( instance ) { + instance.option( options || {} ); + if ( instance._init ) { + instance._init(); + } + } else { + $.data( this, fullName, new object( options, this ) ); + } + }); + } + + return returnValue; + }; +}; + +$.Widget = function( /* options, element */ ) {}; +$.Widget._childConstructors = []; + +$.Widget.prototype = { + widgetName: "widget", + widgetEventPrefix: "", + defaultElement: "
", + options: { + disabled: false, + + // callbacks + create: null + }, + _createWidget: function( options, element ) { + element = $( element || this.defaultElement || this )[ 0 ]; + this.element = $( element ); + this.uuid = widget_uuid++; + this.eventNamespace = "." + this.widgetName + this.uuid; + + this.bindings = $(); + this.hoverable = $(); + this.focusable = $(); + + if ( element !== this ) { + $.data( element, this.widgetFullName, this ); + this._on( true, this.element, { + remove: function( event ) { + if ( event.target === element ) { + this.destroy(); + } + } + }); + this.document = $( element.style ? + // element within the document + element.ownerDocument : + // element is window or document + element.document || element ); + this.window = $( this.document[0].defaultView || this.document[0].parentWindow ); + } + + this.options = $.widget.extend( {}, + this.options, + this._getCreateOptions(), + options ); + + this._create(); + this._trigger( "create", null, this._getCreateEventData() ); + this._init(); + }, + _getCreateOptions: $.noop, + _getCreateEventData: $.noop, + _create: $.noop, + _init: $.noop, + + destroy: function() { + this._destroy(); + // we can probably remove the unbind calls in 2.0 + // all event bindings should go through this._on() + this.element + .unbind( this.eventNamespace ) + .removeData( this.widgetFullName ) + // support: jquery <1.6.3 + // http://bugs.jquery.com/ticket/9413 + .removeData( $.camelCase( this.widgetFullName ) ); + this.widget() + .unbind( this.eventNamespace ) + .removeAttr( "aria-disabled" ) + .removeClass( + this.widgetFullName + "-disabled " + + "ui-state-disabled" ); + + // clean up events and states + this.bindings.unbind( this.eventNamespace ); + this.hoverable.removeClass( "ui-state-hover" ); + this.focusable.removeClass( "ui-state-focus" ); + }, + _destroy: $.noop, + + widget: function() { + return this.element; + }, + + option: function( key, value ) { + var options = key, + parts, + curOption, + i; + + if ( arguments.length === 0 ) { + // don't return a reference to the internal hash + return $.widget.extend( {}, this.options ); + } + + if ( typeof key === "string" ) { + // handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } } + options = {}; + parts = key.split( "." ); + key = parts.shift(); + if ( parts.length ) { + curOption = options[ key ] = $.widget.extend( {}, this.options[ key ] ); + for ( i = 0; i < parts.length - 1; i++ ) { + curOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {}; + curOption = curOption[ parts[ i ] ]; + } + key = parts.pop(); + if ( arguments.length === 1 ) { + return curOption[ key ] === undefined ? null : curOption[ key ]; + } + curOption[ key ] = value; + } else { + if ( arguments.length === 1 ) { + return this.options[ key ] === undefined ? null : this.options[ key ]; + } + options[ key ] = value; + } + } + + this._setOptions( options ); + + return this; + }, + _setOptions: function( options ) { + var key; + + for ( key in options ) { + this._setOption( key, options[ key ] ); + } + + return this; + }, + _setOption: function( key, value ) { + this.options[ key ] = value; + + if ( key === "disabled" ) { + this.widget() + .toggleClass( this.widgetFullName + "-disabled", !!value ); + + // If the widget is becoming disabled, then nothing is interactive + if ( value ) { + this.hoverable.removeClass( "ui-state-hover" ); + this.focusable.removeClass( "ui-state-focus" ); + } + } + + return this; + }, + + enable: function() { + return this._setOptions({ disabled: false }); + }, + disable: function() { + return this._setOptions({ disabled: true }); + }, + + _on: function( suppressDisabledCheck, element, handlers ) { + var delegateElement, + instance = this; + + // no suppressDisabledCheck flag, shuffle arguments + if ( typeof suppressDisabledCheck !== "boolean" ) { + handlers = element; + element = suppressDisabledCheck; + suppressDisabledCheck = false; + } + + // no element argument, shuffle and use this.element + if ( !handlers ) { + handlers = element; + element = this.element; + delegateElement = this.widget(); + } else { + element = delegateElement = $( element ); + this.bindings = this.bindings.add( element ); + } + + $.each( handlers, function( event, handler ) { + function handlerProxy() { + // allow widgets to customize the disabled handling + // - disabled as an array instead of boolean + // - disabled class as method for disabling individual parts + if ( !suppressDisabledCheck && + ( instance.options.disabled === true || + $( this ).hasClass( "ui-state-disabled" ) ) ) { + return; + } + return ( typeof handler === "string" ? instance[ handler ] : handler ) + .apply( instance, arguments ); + } + + // copy the guid so direct unbinding works + if ( typeof handler !== "string" ) { + handlerProxy.guid = handler.guid = + handler.guid || handlerProxy.guid || $.guid++; + } + + var match = event.match( /^([\w:-]*)\s*(.*)$/ ), + eventName = match[1] + instance.eventNamespace, + selector = match[2]; + if ( selector ) { + delegateElement.delegate( selector, eventName, handlerProxy ); + } else { + element.bind( eventName, handlerProxy ); + } + }); + }, + + _off: function( element, eventName ) { + eventName = (eventName || "").split( " " ).join( this.eventNamespace + " " ) + + this.eventNamespace; + element.unbind( eventName ).undelegate( eventName ); + + // Clear the stack to avoid memory leaks (#10056) + this.bindings = $( this.bindings.not( element ).get() ); + this.focusable = $( this.focusable.not( element ).get() ); + this.hoverable = $( this.hoverable.not( element ).get() ); + }, + + _delay: function( handler, delay ) { + function handlerProxy() { + return ( typeof handler === "string" ? instance[ handler ] : handler ) + .apply( instance, arguments ); + } + var instance = this; + return setTimeout( handlerProxy, delay || 0 ); + }, + + _hoverable: function( element ) { + this.hoverable = this.hoverable.add( element ); + this._on( element, { + mouseenter: function( event ) { + $( event.currentTarget ).addClass( "ui-state-hover" ); + }, + mouseleave: function( event ) { + $( event.currentTarget ).removeClass( "ui-state-hover" ); + } + }); + }, + + _focusable: function( element ) { + this.focusable = this.focusable.add( element ); + this._on( element, { + focusin: function( event ) { + $( event.currentTarget ).addClass( "ui-state-focus" ); + }, + focusout: function( event ) { + $( event.currentTarget ).removeClass( "ui-state-focus" ); + } + }); + }, + + _trigger: function( type, event, data ) { + var prop, orig, + callback = this.options[ type ]; + + data = data || {}; + event = $.Event( event ); + event.type = ( type === this.widgetEventPrefix ? + type : + this.widgetEventPrefix + type ).toLowerCase(); + // the original event may come from any element + // so we need to reset the target on the new event + event.target = this.element[ 0 ]; + + // copy original event properties over to the new event + orig = event.originalEvent; + if ( orig ) { + for ( prop in orig ) { + if ( !( prop in event ) ) { + event[ prop ] = orig[ prop ]; + } + } + } + + this.element.trigger( event, data ); + return !( $.isFunction( callback ) && + callback.apply( this.element[0], [ event ].concat( data ) ) === false || + event.isDefaultPrevented() ); + } +}; + +$.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) { + $.Widget.prototype[ "_" + method ] = function( element, options, callback ) { + if ( typeof options === "string" ) { + options = { effect: options }; + } + var hasOptions, + effectName = !options ? + method : + options === true || typeof options === "number" ? + defaultEffect : + options.effect || defaultEffect; + options = options || {}; + if ( typeof options === "number" ) { + options = { duration: options }; + } + hasOptions = !$.isEmptyObject( options ); + options.complete = callback; + if ( options.delay ) { + element.delay( options.delay ); + } + if ( hasOptions && $.effects && $.effects.effect[ effectName ] ) { + element[ method ]( options ); + } else if ( effectName !== method && element[ effectName ] ) { + element[ effectName ]( options.duration, options.easing, callback ); + } else { + element.queue(function( next ) { + $( this )[ method ](); + if ( callback ) { + callback.call( element[ 0 ] ); + } + next(); + }); + } + }; +}); + +var widget = $.widget; + + + +})); diff --git a/public/js/jqFileUploads/package.json b/public/js/jqFileUploads/package.json new file mode 100644 index 0000000..2dd5f45 --- /dev/null +++ b/public/js/jqFileUploads/package.json @@ -0,0 +1,54 @@ +{ + "name": "blueimp-file-upload", + "version": "9.11.2", + "title": "jQuery File Upload", + "description": "File Upload widget with multiple file selection, drag&drop support, progress bar, validation and preview images, audio and video for jQuery. Supports cross-domain, chunked and resumable file uploads. Works with any server-side platform (Google App Engine, PHP, Python, Ruby on Rails, Java, etc.) that supports standard HTML form file uploads.", + "keywords": [ + "jquery", + "file", + "upload", + "widget", + "multiple", + "selection", + "drag", + "drop", + "progress", + "preview", + "cross-domain", + "cross-site", + "chunk", + "resume", + "gae", + "go", + "python", + "php", + "bootstrap" + ], + "homepage": "https://github.com/blueimp/jQuery-File-Upload", + "author": { + "name": "Sebastian Tschan", + "url": "https://blueimp.net" + }, + "maintainers": [ + { + "name": "Sebastian Tschan", + "url": "https://blueimp.net" + } + ], + "repository": { + "type": "git", + "url": "git://github.com/blueimp/jQuery-File-Upload.git" + }, + "bugs": "https://github.com/blueimp/jQuery-File-Upload/issues", + "license": "MIT", + "main": "js/jquery.fileupload.js", + "devDependencies": { + "bower-json": "0.6.0", + "grunt": "^0.4.5", + "grunt-bump-build-git": "1.1.2", + "grunt-contrib-concat": "^0.5.1", + "grunt-contrib-jshint": "0.11.2", + "grunt-contrib-uglify": "^0.11.0", + "grunt-contrib-watch": "^0.6.1" + } +} diff --git a/public/js/jqFileUploads/server/gae-go/app.yaml b/public/js/jqFileUploads/server/gae-go/app.yaml new file mode 100755 index 0000000..2d09daa --- /dev/null +++ b/public/js/jqFileUploads/server/gae-go/app.yaml @@ -0,0 +1,12 @@ +application: jquery-file-upload +version: 2 +runtime: go +api_version: go1 + +handlers: +- url: /(favicon\.ico|robots\.txt) + static_files: static/\1 + upload: static/(.*) + expiration: '1d' +- url: /.* + script: _go_app diff --git a/public/js/jqFileUploads/server/gae-go/app/main.go b/public/js/jqFileUploads/server/gae-go/app/main.go new file mode 100755 index 0000000..85df03c --- /dev/null +++ b/public/js/jqFileUploads/server/gae-go/app/main.go @@ -0,0 +1,361 @@ +/* + * jQuery File Upload Plugin GAE Go Example + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2011, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/MIT + */ + +package app + +import ( + "bufio" + "bytes" + "encoding/json" + "fmt" + "github.com/disintegration/gift" + "golang.org/x/net/context" + "google.golang.org/appengine" + "google.golang.org/appengine/memcache" + "hash/crc32" + "image" + "image/gif" + "image/jpeg" + "image/png" + "io" + "log" + "mime/multipart" + "net/http" + "net/url" + "path/filepath" + "regexp" + "strings" +) + +const ( + WEBSITE = "https://blueimp.github.io/jQuery-File-Upload/" + MIN_FILE_SIZE = 1 // bytes + // Max file size is memcache limit (1MB) minus key size minus overhead: + MAX_FILE_SIZE = 999000 // bytes + IMAGE_TYPES = "image/(gif|p?jpeg|(x-)?png)" + ACCEPT_FILE_TYPES = IMAGE_TYPES + THUMB_MAX_WIDTH = 80 + THUMB_MAX_HEIGHT = 80 + EXPIRATION_TIME = 300 // seconds + // If empty, only allow redirects to the referer protocol+host. + // Set to a regexp string for custom pattern matching: + REDIRECT_ALLOW_TARGET = "" +) + +var ( + imageTypes = regexp.MustCompile(IMAGE_TYPES) + acceptFileTypes = regexp.MustCompile(ACCEPT_FILE_TYPES) + thumbSuffix = "." + fmt.Sprint(THUMB_MAX_WIDTH) + "x" + + fmt.Sprint(THUMB_MAX_HEIGHT) +) + +func escape(s string) string { + return strings.Replace(url.QueryEscape(s), "+", "%20", -1) +} + +func extractKey(r *http.Request) string { + // Use RequestURI instead of r.URL.Path, as we need the encoded form: + path := strings.Split(r.RequestURI, "?")[0] + // Also adjust double encoded slashes: + return strings.Replace(path[1:], "%252F", "%2F", -1) +} + +func check(err error) { + if err != nil { + panic(err) + } +} + +type FileInfo struct { + Key string `json:"-"` + ThumbnailKey string `json:"-"` + Url string `json:"url,omitempty"` + ThumbnailUrl string `json:"thumbnailUrl,omitempty"` + Name string `json:"name"` + Type string `json:"type"` + Size int64 `json:"size"` + Error string `json:"error,omitempty"` + DeleteUrl string `json:"deleteUrl,omitempty"` + DeleteType string `json:"deleteType,omitempty"` +} + +func (fi *FileInfo) ValidateType() (valid bool) { + if acceptFileTypes.MatchString(fi.Type) { + return true + } + fi.Error = "Filetype not allowed" + return false +} + +func (fi *FileInfo) ValidateSize() (valid bool) { + if fi.Size < MIN_FILE_SIZE { + fi.Error = "File is too small" + } else if fi.Size > MAX_FILE_SIZE { + fi.Error = "File is too big" + } else { + return true + } + return false +} + +func (fi *FileInfo) CreateUrls(r *http.Request, c context.Context) { + u := &url.URL{ + Scheme: r.URL.Scheme, + Host: appengine.DefaultVersionHostname(c), + Path: "/", + } + uString := u.String() + fi.Url = uString + fi.Key + fi.DeleteUrl = fi.Url + fi.DeleteType = "DELETE" + if fi.ThumbnailKey != "" { + fi.ThumbnailUrl = uString + fi.ThumbnailKey + } +} + +func (fi *FileInfo) SetKey(checksum uint32) { + fi.Key = escape(string(fi.Type)) + "/" + + escape(fmt.Sprint(checksum)) + "/" + + escape(string(fi.Name)) +} + +func (fi *FileInfo) createThumb(buffer *bytes.Buffer, c context.Context) { + if imageTypes.MatchString(fi.Type) { + src, _, err := image.Decode(bytes.NewReader(buffer.Bytes())) + check(err) + filter := gift.New(gift.ResizeToFit( + THUMB_MAX_WIDTH, + THUMB_MAX_HEIGHT, + gift.LanczosResampling, + )) + dst := image.NewNRGBA(filter.Bounds(src.Bounds())) + filter.Draw(dst, src) + buffer.Reset() + bWriter := bufio.NewWriter(buffer) + switch fi.Type { + case "image/jpeg", "image/pjpeg": + err = jpeg.Encode(bWriter, dst, nil) + case "image/gif": + err = gif.Encode(bWriter, dst, nil) + default: + err = png.Encode(bWriter, dst) + } + check(err) + bWriter.Flush() + thumbnailKey := fi.Key + thumbSuffix + filepath.Ext(fi.Name) + item := &memcache.Item{ + Key: thumbnailKey, + Value: buffer.Bytes(), + } + err = memcache.Set(c, item) + check(err) + fi.ThumbnailKey = thumbnailKey + } +} + +func handleUpload(r *http.Request, p *multipart.Part) (fi *FileInfo) { + fi = &FileInfo{ + Name: p.FileName(), + Type: p.Header.Get("Content-Type"), + } + if !fi.ValidateType() { + return + } + defer func() { + if rec := recover(); rec != nil { + log.Println(rec) + fi.Error = rec.(error).Error() + } + }() + var buffer bytes.Buffer + hash := crc32.NewIEEE() + mw := io.MultiWriter(&buffer, hash) + lr := &io.LimitedReader{R: p, N: MAX_FILE_SIZE + 1} + _, err := io.Copy(mw, lr) + check(err) + fi.Size = MAX_FILE_SIZE + 1 - lr.N + if !fi.ValidateSize() { + return + } + fi.SetKey(hash.Sum32()) + item := &memcache.Item{ + Key: fi.Key, + Value: buffer.Bytes(), + } + context := appengine.NewContext(r) + err = memcache.Set(context, item) + check(err) + fi.createThumb(&buffer, context) + fi.CreateUrls(r, context) + return +} + +func getFormValue(p *multipart.Part) string { + var b bytes.Buffer + io.CopyN(&b, p, int64(1<<20)) // Copy max: 1 MiB + return b.String() +} + +func handleUploads(r *http.Request) (fileInfos []*FileInfo) { + fileInfos = make([]*FileInfo, 0) + mr, err := r.MultipartReader() + check(err) + r.Form, err = url.ParseQuery(r.URL.RawQuery) + check(err) + part, err := mr.NextPart() + for err == nil { + if name := part.FormName(); name != "" { + if part.FileName() != "" { + fileInfos = append(fileInfos, handleUpload(r, part)) + } else { + r.Form[name] = append(r.Form[name], getFormValue(part)) + } + } + part, err = mr.NextPart() + } + return +} + +func validateRedirect(r *http.Request, redirect string) bool { + if redirect != "" { + var redirectAllowTarget *regexp.Regexp + if REDIRECT_ALLOW_TARGET != "" { + redirectAllowTarget = regexp.MustCompile(REDIRECT_ALLOW_TARGET) + } else { + referer := r.Referer() + if referer == "" { + return false + } + refererUrl, err := url.Parse(referer) + if err != nil { + return false + } + redirectAllowTarget = regexp.MustCompile("^" + regexp.QuoteMeta( + refererUrl.Scheme+"://"+refererUrl.Host+"/", + )) + } + return redirectAllowTarget.MatchString(redirect) + } + return false +} + +func get(w http.ResponseWriter, r *http.Request) { + if r.URL.Path == "/" { + http.Redirect(w, r, WEBSITE, http.StatusFound) + return + } + // Use RequestURI instead of r.URL.Path, as we need the encoded form: + key := extractKey(r) + parts := strings.Split(key, "/") + if len(parts) == 3 { + context := appengine.NewContext(r) + item, err := memcache.Get(context, key) + if err == nil { + w.Header().Add("X-Content-Type-Options", "nosniff") + contentType, _ := url.QueryUnescape(parts[0]) + if !imageTypes.MatchString(contentType) { + contentType = "application/octet-stream" + } + w.Header().Add("Content-Type", contentType) + w.Header().Add( + "Cache-Control", + fmt.Sprintf("public,max-age=%d", EXPIRATION_TIME), + ) + w.Write(item.Value) + return + } + } + http.Error(w, "404 Not Found", http.StatusNotFound) +} + +func post(w http.ResponseWriter, r *http.Request) { + result := make(map[string][]*FileInfo, 1) + result["files"] = handleUploads(r) + b, err := json.Marshal(result) + check(err) + if redirect := r.FormValue("redirect"); validateRedirect(r, redirect) { + if strings.Contains(redirect, "%s") { + redirect = fmt.Sprintf( + redirect, + escape(string(b)), + ) + } + http.Redirect(w, r, redirect, http.StatusFound) + return + } + w.Header().Set("Cache-Control", "no-cache") + jsonType := "application/json" + if strings.Index(r.Header.Get("Accept"), jsonType) != -1 { + w.Header().Set("Content-Type", jsonType) + } + fmt.Fprintln(w, string(b)) +} + +func delete(w http.ResponseWriter, r *http.Request) { + key := extractKey(r) + parts := strings.Split(key, "/") + if len(parts) == 3 { + result := make(map[string]bool, 1) + context := appengine.NewContext(r) + err := memcache.Delete(context, key) + if err == nil { + result[key] = true + contentType, _ := url.QueryUnescape(parts[0]) + if imageTypes.MatchString(contentType) { + thumbnailKey := key + thumbSuffix + filepath.Ext(parts[2]) + err := memcache.Delete(context, thumbnailKey) + if err == nil { + result[thumbnailKey] = true + } + } + } + w.Header().Set("Content-Type", "application/json") + b, err := json.Marshal(result) + check(err) + fmt.Fprintln(w, string(b)) + } else { + http.Error(w, "405 Method not allowed", http.StatusMethodNotAllowed) + } +} + +func handle(w http.ResponseWriter, r *http.Request) { + params, err := url.ParseQuery(r.URL.RawQuery) + check(err) + w.Header().Add("Access-Control-Allow-Origin", "*") + w.Header().Add( + "Access-Control-Allow-Methods", + "OPTIONS, HEAD, GET, POST, DELETE", + ) + w.Header().Add( + "Access-Control-Allow-Headers", + "Content-Type, Content-Range, Content-Disposition", + ) + switch r.Method { + case "OPTIONS", "HEAD": + return + case "GET": + get(w, r) + case "POST": + if len(params["_method"]) > 0 && params["_method"][0] == "DELETE" { + delete(w, r) + } else { + post(w, r) + } + case "DELETE": + delete(w, r) + default: + http.Error(w, "501 Not Implemented", http.StatusNotImplemented) + } +} + +func init() { + http.HandleFunc("/", handle) +} diff --git a/public/js/jqFileUploads/server/gae-go/static/favicon.ico b/public/js/jqFileUploads/server/gae-go/static/favicon.ico new file mode 100755 index 0000000000000000000000000000000000000000..1a71ea772e972df2e955b36261ae5d7f53b9c9b1 GIT binary patch literal 1150 zcmd5)OKVd>6rNI{3l|0|#f50WO+XjL$3`~+!3T;Ix^p413yHRhmS9^&ywzgVMH)<- zCQV34A4!wjylP%GkDGUz=QT;NG>gb*8n4`ye3#{^zkce45EvUvW9N8Y#yV5-i2?n|gRoZc<%s zmh~rn+mM*?Ph4ge?;K&MO=5dH$Y(hhHh2y-K8|XULpI_@BFLhc^dYyZ;RQd6ULnX% zY7XBrdX%kq;dvp(g8Ue4lb2A6TCi0~Be~{)e`OwVpB?PH2D#WOBIv*k9@h8svMjN%LB8=hT3X!a(GF&~^uI=HQRRDv3$W^b7s@-uyV zh0r)6|MU>DZWSsYRM^NkQI4_jJUxMR7lX9x9lUlU?B*HdJ=56ZweCUP$ZoY9rFF+p zujNrIgppL7LdhyaA;coEVs7#ao|(V$&G-5wg`mF4|60vrXX_&(76p9^7qVeblj~)T zDEamE)_Ys!wZ}cExSr6rOJIAGMbZ`| MAX_FILE_SIZE: + file['error'] = 'File is too big' + elif not ACCEPT_FILE_TYPES.match(file['type']): + file['error'] = 'Filetype not allowed' + else: + return True + return False + + def validate_redirect(self, redirect): + if redirect: + if REDIRECT_ALLOW_TARGET: + return REDIRECT_ALLOW_TARGET.match(redirect) + referer = self.request.headers['referer'] + if referer: + from urlparse import urlparse + parts = urlparse(referer) + redirect_allow_target = '^' + re.escape( + parts.scheme + '://' + parts.netloc + '/' + ) + return re.match(redirect_allow_target, redirect) + return False + + def get_file_size(self, file): + file.seek(0, 2) # Seek to the end of the file + size = file.tell() # Get the position of EOF + file.seek(0) # Reset the file position to the beginning + return size + + def write_blob(self, data, info): + key = urllib.quote(info['type'].encode('utf-8'), '') +\ + '/' + str(hash(data)) +\ + '/' + urllib.quote(info['name'].encode('utf-8'), '') + try: + memcache.set(key, data, time=EXPIRATION_TIME) + except: #Failed to add to memcache + return (None, None) + thumbnail_key = None + if IMAGE_TYPES.match(info['type']): + try: + img = images.Image(image_data=data) + img.resize( + width=THUMB_MAX_WIDTH, + height=THUMB_MAX_HEIGHT + ) + thumbnail_data = img.execute_transforms() + thumbnail_key = key + THUMB_SUFFIX + memcache.set( + thumbnail_key, + thumbnail_data, + time=EXPIRATION_TIME + ) + except: #Failed to resize Image or add to memcache + thumbnail_key = None + return (key, thumbnail_key) + + def handle_upload(self): + results = [] + for name, fieldStorage in self.request.POST.items(): + if type(fieldStorage) is unicode: + continue + result = {} + result['name'] = urllib.unquote(fieldStorage.filename) + result['type'] = fieldStorage.type + result['size'] = self.get_file_size(fieldStorage.file) + if self.validate(result): + key, thumbnail_key = self.write_blob( + fieldStorage.value, + result + ) + if key is not None: + result['url'] = self.request.host_url + '/' + key + result['deleteUrl'] = result['url'] + result['deleteType'] = 'DELETE' + if thumbnail_key is not None: + result['thumbnailUrl'] = self.request.host_url +\ + '/' + thumbnail_key + else: + result['error'] = 'Failed to store uploaded file.' + results.append(result) + return results + + def head(self): + pass + + def get(self): + self.redirect(WEBSITE) + + def post(self): + if (self.request.get('_method') == 'DELETE'): + return self.delete() + result = {'files': self.handle_upload()} + s = self.json_stringify(result) + redirect = self.request.get('redirect') + if self.validate_redirect(redirect): + return self.redirect(str( + redirect.replace('%s', urllib.quote(s, ''), 1) + )) + if 'application/json' in self.request.headers.get('Accept'): + self.response.headers['Content-Type'] = 'application/json' + self.response.write(s) + +class FileHandler(CORSHandler): + def normalize(self, str): + return urllib.quote(urllib.unquote(str), '') + + def get(self, content_type, data_hash, file_name): + content_type = self.normalize(content_type) + file_name = self.normalize(file_name) + key = content_type + '/' + data_hash + '/' + file_name + data = memcache.get(key) + if data is None: + return self.error(404) + # Prevent browsers from MIME-sniffing the content-type: + self.response.headers['X-Content-Type-Options'] = 'nosniff' + content_type = urllib.unquote(content_type) + if not IMAGE_TYPES.match(content_type): + # Force a download dialog for non-image types: + content_type = 'application/octet-stream' + elif file_name.endswith(THUMB_SUFFIX): + content_type = 'image/png' + self.response.headers['Content-Type'] = content_type + # Cache for the expiration time: + self.response.headers['Cache-Control'] = 'public,max-age=%d' \ + % EXPIRATION_TIME + self.response.write(data) + + def delete(self, content_type, data_hash, file_name): + content_type = self.normalize(content_type) + file_name = self.normalize(file_name) + key = content_type + '/' + data_hash + '/' + file_name + result = {key: memcache.delete(key)} + content_type = urllib.unquote(content_type) + if IMAGE_TYPES.match(content_type): + thumbnail_key = key + THUMB_SUFFIX + result[thumbnail_key] = memcache.delete(thumbnail_key) + if 'application/json' in self.request.headers.get('Accept'): + self.response.headers['Content-Type'] = 'application/json' + s = self.json_stringify(result) + self.response.write(s) + +app = webapp2.WSGIApplication( + [ + ('/', UploadHandler), + ('/(.+)/([^/]+)/([^/]+)', FileHandler) + ], + debug=DEBUG +) diff --git a/public/js/jqFileUploads/server/gae-python/static/favicon.ico b/public/js/jqFileUploads/server/gae-python/static/favicon.ico new file mode 100755 index 0000000000000000000000000000000000000000..1a71ea772e972df2e955b36261ae5d7f53b9c9b1 GIT binary patch literal 1150 zcmd5)OKVd>6rNI{3l|0|#f50WO+XjL$3`~+!3T;Ix^p413yHRhmS9^&ywzgVMH)<- zCQV34A4!wjylP%GkDGUz=QT;NG>gb*8n4`ye3#{^zkce45EvUvW9N8Y#yV5-i2?n|gRoZc<%s zmh~rn+mM*?Ph4ge?;K&MO=5dH$Y(hhHh2y-K8|XULpI_@BFLhc^dYyZ;RQd6ULnX% zY7XBrdX%kq;dvp(g8Ue4lb2A6TCi0~Be~{)e`OwVpB?PH2D#WOBIv*k9@h8svMjN%LB8=hT3X!a(GF&~^uI=HQRRDv3$W^b7s@-uyV zh0r)6|MU>DZWSsYRM^NkQI4_jJUxMR7lX9x9lUlU?B*HdJ=56ZweCUP$ZoY9rFF+p zujNrIgppL7LdhyaA;coEVs7#ao|(V$&G-5wg`mF4|60vrXX_&(76p9^7qVeblj~)T zDEamE)_Ys!wZ}cExSr6rOJIAGMbZ`| 'The uploaded file exceeds the upload_max_filesize directive in php.ini', + 2 => 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form', + 3 => 'The uploaded file was only partially uploaded', + 4 => 'No file was uploaded', + 6 => 'Missing a temporary folder', + 7 => 'Failed to write file to disk', + 8 => 'A PHP extension stopped the file upload', + 'post_max_size' => 'The uploaded file exceeds the post_max_size directive in php.ini', + 'max_file_size' => 'File is too big', + 'min_file_size' => 'File is too small', + 'accept_file_types' => 'Filetype not allowed', + 'max_number_of_files' => 'Maximum number of files exceeded', + 'max_width' => 'Image exceeds maximum width', + 'min_width' => 'Image requires a minimum width', + 'max_height' => 'Image exceeds maximum height', + 'min_height' => 'Image requires a minimum height', + 'abort' => 'File upload aborted', + 'image_resize' => 'Failed to resize image' + ); + + protected $image_objects = array(); + + function __construct($options = null, $initialize = true, $error_messages = null) { + $this->response = array(); + $this->options = array( + 'script_url' => $this->get_full_url().'/'.basename($this->get_server_var('SCRIPT_NAME')), + 'upload_dir' => dirname($this->get_server_var('SCRIPT_FILENAME')).'/files/', + 'upload_url' => $this->get_full_url().'/files/', + 'user_dirs' => false, + 'mkdir_mode' => 0755, + 'param_name' => 'files', + // Set the following option to 'POST', if your server does not support + // DELETE requests. This is a parameter sent to the client: + 'delete_type' => 'DELETE', + 'access_control_allow_origin' => '*', + 'access_control_allow_credentials' => false, + 'access_control_allow_methods' => array( + 'OPTIONS', + 'HEAD', + 'GET', + 'POST', + 'PUT', + 'PATCH', + 'DELETE' + ), + 'access_control_allow_headers' => array( + 'Content-Type', + 'Content-Range', + 'Content-Disposition' + ), + // By default, allow redirects to the referer protocol+host: + 'redirect_allow_target' => '/^'.preg_quote( + parse_url($this->get_server_var('HTTP_REFERER'), PHP_URL_SCHEME) + .'://' + .parse_url($this->get_server_var('HTTP_REFERER'), PHP_URL_HOST) + .'/', // Trailing slash to not match subdomains by mistake + '/' // preg_quote delimiter param + ).'/', + // Enable to provide file downloads via GET requests to the PHP script: + // 1. Set to 1 to download files via readfile method through PHP + // 2. Set to 2 to send a X-Sendfile header for lighttpd/Apache + // 3. Set to 3 to send a X-Accel-Redirect header for nginx + // If set to 2 or 3, adjust the upload_url option to the base path of + // the redirect parameter, e.g. '/files/'. + 'download_via_php' => false, + // Read files in chunks to avoid memory limits when download_via_php + // is enabled, set to 0 to disable chunked reading of files: + 'readfile_chunk_size' => 10 * 1024 * 1024, // 10 MiB + // Defines which files can be displayed inline when downloaded: + 'inline_file_types' => '/\.(gif|jpe?g|png)$/i', + // Defines which files (based on their names) are accepted for upload: + 'accept_file_types' => '/.+$/i', + // The php.ini settings upload_max_filesize and post_max_size + // take precedence over the following max_file_size setting: + 'max_file_size' => null, + 'min_file_size' => 1, + // The maximum number of files for the upload directory: + 'max_number_of_files' => null, + // Defines which files are handled as image files: + 'image_file_types' => '/\.(gif|jpe?g|png)$/i', + // Use exif_imagetype on all files to correct file extensions: + 'correct_image_extensions' => false, + // Image resolution restrictions: + 'max_width' => null, + 'max_height' => null, + 'min_width' => 1, + 'min_height' => 1, + // Set the following option to false to enable resumable uploads: + 'discard_aborted_uploads' => true, + // Set to 0 to use the GD library to scale and orient images, + // set to 1 to use imagick (if installed, falls back to GD), + // set to 2 to use the ImageMagick convert binary directly: + 'image_library' => 1, + // Uncomment the following to define an array of resource limits + // for imagick: + /* + 'imagick_resource_limits' => array( + imagick::RESOURCETYPE_MAP => 32, + imagick::RESOURCETYPE_MEMORY => 32 + ), + */ + // Command or path for to the ImageMagick convert binary: + 'convert_bin' => 'convert', + // Uncomment the following to add parameters in front of each + // ImageMagick convert call (the limit constraints seem only + // to have an effect if put in front): + /* + 'convert_params' => '-limit memory 32MiB -limit map 32MiB', + */ + // Command or path for to the ImageMagick identify binary: + 'identify_bin' => 'identify', + 'image_versions' => array( + // The empty image version key defines options for the original image: + '' => array( + // Automatically rotate images based on EXIF meta data: + 'auto_orient' => true + ), + // Uncomment the following to create medium sized images: + /* + 'medium' => array( + 'max_width' => 800, + 'max_height' => 600 + ), + */ + 'thumbnail' => array( + // Uncomment the following to use a defined directory for the thumbnails + // instead of a subdirectory based on the version identifier. + // Make sure that this directory doesn't allow execution of files if you + // don't pose any restrictions on the type of uploaded files, e.g. by + // copying the .htaccess file from the files directory for Apache: + //'upload_dir' => dirname($this->get_server_var('SCRIPT_FILENAME')).'/thumb/', + //'upload_url' => $this->get_full_url().'/thumb/', + // Uncomment the following to force the max + // dimensions and e.g. create square thumbnails: + //'crop' => true, + 'max_width' => 80, + 'max_height' => 80 + ) + ), + 'print_response' => true + ); + if ($options) { + $this->options = $options + $this->options; + } + if ($error_messages) { + $this->error_messages = $error_messages + $this->error_messages; + } + if ($initialize) { + $this->initialize(); + } + } + + protected function initialize() { + switch ($this->get_server_var('REQUEST_METHOD')) { + case 'OPTIONS': + case 'HEAD': + $this->head(); + break; + case 'GET': + $this->get($this->options['print_response']); + break; + case 'PATCH': + case 'PUT': + case 'POST': + $this->post($this->options['print_response']); + break; + case 'DELETE': + $this->delete($this->options['print_response']); + break; + default: + $this->header('HTTP/1.1 405 Method Not Allowed'); + } + } + + protected function get_full_url() { + $https = !empty($_SERVER['HTTPS']) && strcasecmp($_SERVER['HTTPS'], 'on') === 0 || + !empty($_SERVER['HTTP_X_FORWARDED_PROTO']) && + strcasecmp($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') === 0; + return + ($https ? 'https://' : 'http://'). + (!empty($_SERVER['REMOTE_USER']) ? $_SERVER['REMOTE_USER'].'@' : ''). + (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : ($_SERVER['SERVER_NAME']. + ($https && $_SERVER['SERVER_PORT'] === 443 || + $_SERVER['SERVER_PORT'] === 80 ? '' : ':'.$_SERVER['SERVER_PORT']))). + substr($_SERVER['SCRIPT_NAME'],0, strrpos($_SERVER['SCRIPT_NAME'], '/')); + } + + protected function get_user_id() { + @session_start(); + return session_id(); + } + + protected function get_user_path() { + if ($this->options['user_dirs']) { + return $this->get_user_id().'/'; + } + return ''; + } + + protected function get_upload_path($file_name = null, $version = null) { + $file_name = $file_name ? $file_name : ''; + if (empty($version)) { + $version_path = ''; + } else { + $version_dir = @$this->options['image_versions'][$version]['upload_dir']; + if ($version_dir) { + return $version_dir.$this->get_user_path().$file_name; + } + $version_path = $version.'/'; + } + return $this->options['upload_dir'].$this->get_user_path() + .$version_path.$file_name; + } + + protected function get_query_separator($url) { + return strpos($url, '?') === false ? '?' : '&'; + } + + protected function get_download_url($file_name, $version = null, $direct = false) { + if (!$direct && $this->options['download_via_php']) { + $url = $this->options['script_url'] + .$this->get_query_separator($this->options['script_url']) + .$this->get_singular_param_name() + .'='.rawurlencode($file_name); + if ($version) { + $url .= '&version='.rawurlencode($version); + } + return $url.'&download=1'; + } + if (empty($version)) { + $version_path = ''; + } else { + $version_url = @$this->options['image_versions'][$version]['upload_url']; + if ($version_url) { + return $version_url.$this->get_user_path().rawurlencode($file_name); + } + $version_path = rawurlencode($version).'/'; + } + return $this->options['upload_url'].$this->get_user_path() + .$version_path.rawurlencode($file_name); + } + + protected function set_additional_file_properties($file) { + $file->deleteUrl = $this->options['script_url'] + .$this->get_query_separator($this->options['script_url']) + .$this->get_singular_param_name() + .'='.rawurlencode($file->name); + $file->deleteType = $this->options['delete_type']; + if ($file->deleteType !== 'DELETE') { + $file->deleteUrl .= '&_method=DELETE'; + } + if ($this->options['access_control_allow_credentials']) { + $file->deleteWithCredentials = true; + } + } + + // Fix for overflowing signed 32 bit integers, + // works for sizes up to 2^32-1 bytes (4 GiB - 1): + protected function fix_integer_overflow($size) { + if ($size < 0) { + $size += 2.0 * (PHP_INT_MAX + 1); + } + return $size; + } + + protected function get_file_size($file_path, $clear_stat_cache = false) { + if ($clear_stat_cache) { + if (version_compare(PHP_VERSION, '5.3.0') >= 0) { + clearstatcache(true, $file_path); + } else { + clearstatcache(); + } + } + return $this->fix_integer_overflow(filesize($file_path)); + } + + protected function is_valid_file_object($file_name) { + $file_path = $this->get_upload_path($file_name); + if (is_file($file_path) && $file_name[0] !== '.') { + return true; + } + return false; + } + + protected function get_file_object($file_name) { + if ($this->is_valid_file_object($file_name)) { + $file = new \stdClass(); + $file->name = $file_name; + $file->size = $this->get_file_size( + $this->get_upload_path($file_name) + ); + $file->url = $this->get_download_url($file->name); + foreach($this->options['image_versions'] as $version => $options) { + if (!empty($version)) { + if (is_file($this->get_upload_path($file_name, $version))) { + $file->{$version.'Url'} = $this->get_download_url( + $file->name, + $version + ); + } + } + } + $this->set_additional_file_properties($file); + return $file; + } + return null; + } + + protected function get_file_objects($iteration_method = 'get_file_object') { + $upload_dir = $this->get_upload_path(); + if (!is_dir($upload_dir)) { + return array(); + } + return array_values(array_filter(array_map( + array($this, $iteration_method), + scandir($upload_dir) + ))); + } + + protected function count_file_objects() { + return count($this->get_file_objects('is_valid_file_object')); + } + + protected function get_error_message($error) { + return isset($this->error_messages[$error]) ? + $this->error_messages[$error] : $error; + } + + function get_config_bytes($val) { + $val = trim($val); + $last = strtolower($val[strlen($val)-1]); + switch($last) { + case 'g': + $val *= 1024; + case 'm': + $val *= 1024; + case 'k': + $val *= 1024; + } + return $this->fix_integer_overflow($val); + } + + protected function validate($uploaded_file, $file, $error, $index) { + if ($error) { + $file->error = $this->get_error_message($error); + return false; + } + $content_length = $this->fix_integer_overflow( + (int)$this->get_server_var('CONTENT_LENGTH') + ); + $post_max_size = $this->get_config_bytes(ini_get('post_max_size')); + if ($post_max_size && ($content_length > $post_max_size)) { + $file->error = $this->get_error_message('post_max_size'); + return false; + } + if (!preg_match($this->options['accept_file_types'], $file->name)) { + $file->error = $this->get_error_message('accept_file_types'); + return false; + } + if ($uploaded_file && is_uploaded_file($uploaded_file)) { + $file_size = $this->get_file_size($uploaded_file); + } else { + $file_size = $content_length; + } + if ($this->options['max_file_size'] && ( + $file_size > $this->options['max_file_size'] || + $file->size > $this->options['max_file_size']) + ) { + $file->error = $this->get_error_message('max_file_size'); + return false; + } + if ($this->options['min_file_size'] && + $file_size < $this->options['min_file_size']) { + $file->error = $this->get_error_message('min_file_size'); + return false; + } + if (is_int($this->options['max_number_of_files']) && + ($this->count_file_objects() >= $this->options['max_number_of_files']) && + // Ignore additional chunks of existing files: + !is_file($this->get_upload_path($file->name))) { + $file->error = $this->get_error_message('max_number_of_files'); + return false; + } + $max_width = @$this->options['max_width']; + $max_height = @$this->options['max_height']; + $min_width = @$this->options['min_width']; + $min_height = @$this->options['min_height']; + if (($max_width || $max_height || $min_width || $min_height) + && preg_match($this->options['image_file_types'], $file->name)) { + list($img_width, $img_height) = $this->get_image_size($uploaded_file); + + // If we are auto rotating the image by default, do the checks on + // the correct orientation + if ( + @$this->options['image_versions']['']['auto_orient'] && + function_exists('exif_read_data') && + ($exif = @exif_read_data($uploaded_file)) && + (((int) @$exif['Orientation']) >= 5 ) + ) { + $tmp = $img_width; + $img_width = $img_height; + $img_height = $tmp; + unset($tmp); + } + + } + if (!empty($img_width)) { + if ($max_width && $img_width > $max_width) { + $file->error = $this->get_error_message('max_width'); + return false; + } + if ($max_height && $img_height > $max_height) { + $file->error = $this->get_error_message('max_height'); + return false; + } + if ($min_width && $img_width < $min_width) { + $file->error = $this->get_error_message('min_width'); + return false; + } + if ($min_height && $img_height < $min_height) { + $file->error = $this->get_error_message('min_height'); + return false; + } + } + return true; + } + + protected function upcount_name_callback($matches) { + $index = isset($matches[1]) ? ((int)$matches[1]) + 1 : 1; + $ext = isset($matches[2]) ? $matches[2] : ''; + return ' ('.$index.')'.$ext; + } + + protected function upcount_name($name) { + return preg_replace_callback( + '/(?:(?: \(([\d]+)\))?(\.[^.]+))?$/', + array($this, 'upcount_name_callback'), + $name, + 1 + ); + } + + protected function get_unique_filename($file_path, $name, $size, $type, $error, + $index, $content_range) { + while(is_dir($this->get_upload_path($name))) { + $name = $this->upcount_name($name); + } + // Keep an existing filename if this is part of a chunked upload: + $uploaded_bytes = $this->fix_integer_overflow((int)$content_range[1]); + while(is_file($this->get_upload_path($name))) { + if ($uploaded_bytes === $this->get_file_size( + $this->get_upload_path($name))) { + break; + } + $name = $this->upcount_name($name); + } + return $name; + } + + protected function fix_file_extension($file_path, $name, $size, $type, $error, + $index, $content_range) { + // Add missing file extension for known image types: + if (strpos($name, '.') === false && + preg_match('/^image\/(gif|jpe?g|png)/', $type, $matches)) { + $name .= '.'.$matches[1]; + } + if ($this->options['correct_image_extensions'] && + function_exists('exif_imagetype')) { + switch(@exif_imagetype($file_path)){ + case IMAGETYPE_JPEG: + $extensions = array('jpg', 'jpeg'); + break; + case IMAGETYPE_PNG: + $extensions = array('png'); + break; + case IMAGETYPE_GIF: + $extensions = array('gif'); + break; + } + // Adjust incorrect image file extensions: + if (!empty($extensions)) { + $parts = explode('.', $name); + $extIndex = count($parts) - 1; + $ext = strtolower(@$parts[$extIndex]); + if (!in_array($ext, $extensions)) { + $parts[$extIndex] = $extensions[0]; + $name = implode('.', $parts); + } + } + } + return $name; + } + + protected function trim_file_name($file_path, $name, $size, $type, $error, + $index, $content_range) { + // Remove path information and dots around the filename, to prevent uploading + // into different directories or replacing hidden system files. + // Also remove control characters and spaces (\x00..\x20) around the filename: + $name = trim(basename(stripslashes($name)), ".\x00..\x20"); + // Use a timestamp for empty filenames: + if (!$name) { + $name = str_replace('.', '-', microtime(true)); + } + return $name; + } + + protected function get_file_name($file_path, $name, $size, $type, $error, + $index, $content_range) { + $name = $this->trim_file_name($file_path, $name, $size, $type, $error, + $index, $content_range); + return $this->get_unique_filename( + $file_path, + $this->fix_file_extension($file_path, $name, $size, $type, $error, + $index, $content_range), + $size, + $type, + $error, + $index, + $content_range + ); + } + + protected function get_scaled_image_file_paths($file_name, $version) { + $file_path = $this->get_upload_path($file_name); + if (!empty($version)) { + $version_dir = $this->get_upload_path(null, $version); + if (!is_dir($version_dir)) { + mkdir($version_dir, $this->options['mkdir_mode'], true); + } + $new_file_path = $version_dir.'/'.$file_name; + } else { + $new_file_path = $file_path; + } + return array($file_path, $new_file_path); + } + + protected function gd_get_image_object($file_path, $func, $no_cache = false) { + if (empty($this->image_objects[$file_path]) || $no_cache) { + $this->gd_destroy_image_object($file_path); + $this->image_objects[$file_path] = $func($file_path); + } + return $this->image_objects[$file_path]; + } + + protected function gd_set_image_object($file_path, $image) { + $this->gd_destroy_image_object($file_path); + $this->image_objects[$file_path] = $image; + } + + protected function gd_destroy_image_object($file_path) { + $image = (isset($this->image_objects[$file_path])) ? $this->image_objects[$file_path] : null ; + return $image && imagedestroy($image); + } + + protected function gd_imageflip($image, $mode) { + if (function_exists('imageflip')) { + return imageflip($image, $mode); + } + $new_width = $src_width = imagesx($image); + $new_height = $src_height = imagesy($image); + $new_img = imagecreatetruecolor($new_width, $new_height); + $src_x = 0; + $src_y = 0; + switch ($mode) { + case '1': // flip on the horizontal axis + $src_y = $new_height - 1; + $src_height = -$new_height; + break; + case '2': // flip on the vertical axis + $src_x = $new_width - 1; + $src_width = -$new_width; + break; + case '3': // flip on both axes + $src_y = $new_height - 1; + $src_height = -$new_height; + $src_x = $new_width - 1; + $src_width = -$new_width; + break; + default: + return $image; + } + imagecopyresampled( + $new_img, + $image, + 0, + 0, + $src_x, + $src_y, + $new_width, + $new_height, + $src_width, + $src_height + ); + return $new_img; + } + + protected function gd_orient_image($file_path, $src_img) { + if (!function_exists('exif_read_data')) { + return false; + } + $exif = @exif_read_data($file_path); + if ($exif === false) { + return false; + } + $orientation = (int)@$exif['Orientation']; + if ($orientation < 2 || $orientation > 8) { + return false; + } + switch ($orientation) { + case 2: + $new_img = $this->gd_imageflip( + $src_img, + defined('IMG_FLIP_VERTICAL') ? IMG_FLIP_VERTICAL : 2 + ); + break; + case 3: + $new_img = imagerotate($src_img, 180, 0); + break; + case 4: + $new_img = $this->gd_imageflip( + $src_img, + defined('IMG_FLIP_HORIZONTAL') ? IMG_FLIP_HORIZONTAL : 1 + ); + break; + case 5: + $tmp_img = $this->gd_imageflip( + $src_img, + defined('IMG_FLIP_HORIZONTAL') ? IMG_FLIP_HORIZONTAL : 1 + ); + $new_img = imagerotate($tmp_img, 270, 0); + imagedestroy($tmp_img); + break; + case 6: + $new_img = imagerotate($src_img, 270, 0); + break; + case 7: + $tmp_img = $this->gd_imageflip( + $src_img, + defined('IMG_FLIP_VERTICAL') ? IMG_FLIP_VERTICAL : 2 + ); + $new_img = imagerotate($tmp_img, 270, 0); + imagedestroy($tmp_img); + break; + case 8: + $new_img = imagerotate($src_img, 90, 0); + break; + default: + return false; + } + $this->gd_set_image_object($file_path, $new_img); + return true; + } + + protected function gd_create_scaled_image($file_name, $version, $options) { + if (!function_exists('imagecreatetruecolor')) { + error_log('Function not found: imagecreatetruecolor'); + return false; + } + list($file_path, $new_file_path) = + $this->get_scaled_image_file_paths($file_name, $version); + $type = strtolower(substr(strrchr($file_name, '.'), 1)); + switch ($type) { + case 'jpg': + case 'jpeg': + $src_func = 'imagecreatefromjpeg'; + $write_func = 'imagejpeg'; + $image_quality = isset($options['jpeg_quality']) ? + $options['jpeg_quality'] : 75; + break; + case 'gif': + $src_func = 'imagecreatefromgif'; + $write_func = 'imagegif'; + $image_quality = null; + break; + case 'png': + $src_func = 'imagecreatefrompng'; + $write_func = 'imagepng'; + $image_quality = isset($options['png_quality']) ? + $options['png_quality'] : 9; + break; + default: + return false; + } + $src_img = $this->gd_get_image_object( + $file_path, + $src_func, + !empty($options['no_cache']) + ); + $image_oriented = false; + if (!empty($options['auto_orient']) && $this->gd_orient_image( + $file_path, + $src_img + )) { + $image_oriented = true; + $src_img = $this->gd_get_image_object( + $file_path, + $src_func + ); + } + $max_width = $img_width = imagesx($src_img); + $max_height = $img_height = imagesy($src_img); + if (!empty($options['max_width'])) { + $max_width = $options['max_width']; + } + if (!empty($options['max_height'])) { + $max_height = $options['max_height']; + } + $scale = min( + $max_width / $img_width, + $max_height / $img_height + ); + if ($scale >= 1) { + if ($image_oriented) { + return $write_func($src_img, $new_file_path, $image_quality); + } + if ($file_path !== $new_file_path) { + return copy($file_path, $new_file_path); + } + return true; + } + if (empty($options['crop'])) { + $new_width = $img_width * $scale; + $new_height = $img_height * $scale; + $dst_x = 0; + $dst_y = 0; + $new_img = imagecreatetruecolor($new_width, $new_height); + } else { + if (($img_width / $img_height) >= ($max_width / $max_height)) { + $new_width = $img_width / ($img_height / $max_height); + $new_height = $max_height; + } else { + $new_width = $max_width; + $new_height = $img_height / ($img_width / $max_width); + } + $dst_x = 0 - ($new_width - $max_width) / 2; + $dst_y = 0 - ($new_height - $max_height) / 2; + $new_img = imagecreatetruecolor($max_width, $max_height); + } + // Handle transparency in GIF and PNG images: + switch ($type) { + case 'gif': + case 'png': + imagecolortransparent($new_img, imagecolorallocate($new_img, 0, 0, 0)); + case 'png': + imagealphablending($new_img, false); + imagesavealpha($new_img, true); + break; + } + $success = imagecopyresampled( + $new_img, + $src_img, + $dst_x, + $dst_y, + 0, + 0, + $new_width, + $new_height, + $img_width, + $img_height + ) && $write_func($new_img, $new_file_path, $image_quality); + $this->gd_set_image_object($file_path, $new_img); + return $success; + } + + protected function imagick_get_image_object($file_path, $no_cache = false) { + if (empty($this->image_objects[$file_path]) || $no_cache) { + $this->imagick_destroy_image_object($file_path); + $image = new \Imagick(); + if (!empty($this->options['imagick_resource_limits'])) { + foreach ($this->options['imagick_resource_limits'] as $type => $limit) { + $image->setResourceLimit($type, $limit); + } + } + $image->readImage($file_path); + $this->image_objects[$file_path] = $image; + } + return $this->image_objects[$file_path]; + } + + protected function imagick_set_image_object($file_path, $image) { + $this->imagick_destroy_image_object($file_path); + $this->image_objects[$file_path] = $image; + } + + protected function imagick_destroy_image_object($file_path) { + $image = (isset($this->image_objects[$file_path])) ? $this->image_objects[$file_path] : null ; + return $image && $image->destroy(); + } + + protected function imagick_orient_image($image) { + $orientation = $image->getImageOrientation(); + $background = new \ImagickPixel('none'); + switch ($orientation) { + case \imagick::ORIENTATION_TOPRIGHT: // 2 + $image->flopImage(); // horizontal flop around y-axis + break; + case \imagick::ORIENTATION_BOTTOMRIGHT: // 3 + $image->rotateImage($background, 180); + break; + case \imagick::ORIENTATION_BOTTOMLEFT: // 4 + $image->flipImage(); // vertical flip around x-axis + break; + case \imagick::ORIENTATION_LEFTTOP: // 5 + $image->flopImage(); // horizontal flop around y-axis + $image->rotateImage($background, 270); + break; + case \imagick::ORIENTATION_RIGHTTOP: // 6 + $image->rotateImage($background, 90); + break; + case \imagick::ORIENTATION_RIGHTBOTTOM: // 7 + $image->flipImage(); // vertical flip around x-axis + $image->rotateImage($background, 270); + break; + case \imagick::ORIENTATION_LEFTBOTTOM: // 8 + $image->rotateImage($background, 270); + break; + default: + return false; + } + $image->setImageOrientation(\imagick::ORIENTATION_TOPLEFT); // 1 + return true; + } + + protected function imagick_create_scaled_image($file_name, $version, $options) { + list($file_path, $new_file_path) = + $this->get_scaled_image_file_paths($file_name, $version); + $image = $this->imagick_get_image_object( + $file_path, + !empty($options['crop']) || !empty($options['no_cache']) + ); + if ($image->getImageFormat() === 'GIF') { + // Handle animated GIFs: + $images = $image->coalesceImages(); + foreach ($images as $frame) { + $image = $frame; + $this->imagick_set_image_object($file_name, $image); + break; + } + } + $image_oriented = false; + if (!empty($options['auto_orient'])) { + $image_oriented = $this->imagick_orient_image($image); + } + $new_width = $max_width = $img_width = $image->getImageWidth(); + $new_height = $max_height = $img_height = $image->getImageHeight(); + if (!empty($options['max_width'])) { + $new_width = $max_width = $options['max_width']; + } + if (!empty($options['max_height'])) { + $new_height = $max_height = $options['max_height']; + } + if (!($image_oriented || $max_width < $img_width || $max_height < $img_height)) { + if ($file_path !== $new_file_path) { + return copy($file_path, $new_file_path); + } + return true; + } + $crop = !empty($options['crop']); + if ($crop) { + $x = 0; + $y = 0; + if (($img_width / $img_height) >= ($max_width / $max_height)) { + $new_width = 0; // Enables proportional scaling based on max_height + $x = ($img_width / ($img_height / $max_height) - $max_width) / 2; + } else { + $new_height = 0; // Enables proportional scaling based on max_width + $y = ($img_height / ($img_width / $max_width) - $max_height) / 2; + } + } + $success = $image->resizeImage( + $new_width, + $new_height, + isset($options['filter']) ? $options['filter'] : \imagick::FILTER_LANCZOS, + isset($options['blur']) ? $options['blur'] : 1, + $new_width && $new_height // fit image into constraints if not to be cropped + ); + if ($success && $crop) { + $success = $image->cropImage( + $max_width, + $max_height, + $x, + $y + ); + if ($success) { + $success = $image->setImagePage($max_width, $max_height, 0, 0); + } + } + $type = strtolower(substr(strrchr($file_name, '.'), 1)); + switch ($type) { + case 'jpg': + case 'jpeg': + if (!empty($options['jpeg_quality'])) { + $image->setImageCompression(\imagick::COMPRESSION_JPEG); + $image->setImageCompressionQuality($options['jpeg_quality']); + } + break; + } + if (!empty($options['strip'])) { + $image->stripImage(); + } + return $success && $image->writeImage($new_file_path); + } + + protected function imagemagick_create_scaled_image($file_name, $version, $options) { + list($file_path, $new_file_path) = + $this->get_scaled_image_file_paths($file_name, $version); + $resize = @$options['max_width'] + .(empty($options['max_height']) ? '' : 'X'.$options['max_height']); + if (!$resize && empty($options['auto_orient'])) { + if ($file_path !== $new_file_path) { + return copy($file_path, $new_file_path); + } + return true; + } + $cmd = $this->options['convert_bin']; + if (!empty($this->options['convert_params'])) { + $cmd .= ' '.$this->options['convert_params']; + } + $cmd .= ' '.escapeshellarg($file_path); + if (!empty($options['auto_orient'])) { + $cmd .= ' -auto-orient'; + } + if ($resize) { + // Handle animated GIFs: + $cmd .= ' -coalesce'; + if (empty($options['crop'])) { + $cmd .= ' -resize '.escapeshellarg($resize.'>'); + } else { + $cmd .= ' -resize '.escapeshellarg($resize.'^'); + $cmd .= ' -gravity center'; + $cmd .= ' -crop '.escapeshellarg($resize.'+0+0'); + } + // Make sure the page dimensions are correct (fixes offsets of animated GIFs): + $cmd .= ' +repage'; + } + if (!empty($options['convert_params'])) { + $cmd .= ' '.$options['convert_params']; + } + $cmd .= ' '.escapeshellarg($new_file_path); + exec($cmd, $output, $error); + if ($error) { + error_log(implode('\n', $output)); + return false; + } + return true; + } + + protected function get_image_size($file_path) { + if ($this->options['image_library']) { + if (extension_loaded('imagick')) { + $image = new \Imagick(); + try { + if (@$image->pingImage($file_path)) { + $dimensions = array($image->getImageWidth(), $image->getImageHeight()); + $image->destroy(); + return $dimensions; + } + return false; + } catch (\Exception $e) { + error_log($e->getMessage()); + } + } + if ($this->options['image_library'] === 2) { + $cmd = $this->options['identify_bin']; + $cmd .= ' -ping '.escapeshellarg($file_path); + exec($cmd, $output, $error); + if (!$error && !empty($output)) { + // image.jpg JPEG 1920x1080 1920x1080+0+0 8-bit sRGB 465KB 0.000u 0:00.000 + $infos = preg_split('/\s+/', substr($output[0], strlen($file_path))); + $dimensions = preg_split('/x/', $infos[2]); + return $dimensions; + } + return false; + } + } + if (!function_exists('getimagesize')) { + error_log('Function not found: getimagesize'); + return false; + } + return @getimagesize($file_path); + } + + protected function create_scaled_image($file_name, $version, $options) { + if ($this->options['image_library'] === 2) { + return $this->imagemagick_create_scaled_image($file_name, $version, $options); + } + if ($this->options['image_library'] && extension_loaded('imagick')) { + return $this->imagick_create_scaled_image($file_name, $version, $options); + } + return $this->gd_create_scaled_image($file_name, $version, $options); + } + + protected function destroy_image_object($file_path) { + if ($this->options['image_library'] && extension_loaded('imagick')) { + return $this->imagick_destroy_image_object($file_path); + } + } + + protected function is_valid_image_file($file_path) { + if (!preg_match($this->options['image_file_types'], $file_path)) { + return false; + } + if (function_exists('exif_imagetype')) { + return @exif_imagetype($file_path); + } + $image_info = $this->get_image_size($file_path); + return $image_info && $image_info[0] && $image_info[1]; + } + + protected function handle_image_file($file_path, $file) { + $failed_versions = array(); + foreach($this->options['image_versions'] as $version => $options) { + if ($this->create_scaled_image($file->name, $version, $options)) { + if (!empty($version)) { + $file->{$version.'Url'} = $this->get_download_url( + $file->name, + $version + ); + } else { + $file->size = $this->get_file_size($file_path, true); + } + } else { + $failed_versions[] = $version ? $version : 'original'; + } + } + if (count($failed_versions)) { + $file->error = $this->get_error_message('image_resize') + .' ('.implode($failed_versions,', ').')'; + } + // Free memory: + $this->destroy_image_object($file_path); + } + + protected function handle_file_upload($uploaded_file, $name, $size, $type, $error, + $index = null, $content_range = null) { + $file = new \stdClass(); + $file->name = $this->get_file_name($uploaded_file, $name, $size, $type, $error, + $index, $content_range); + $file->size = $this->fix_integer_overflow((int)$size); + $file->type = $type; + if ($this->validate($uploaded_file, $file, $error, $index)) { + $this->handle_form_data($file, $index); + $upload_dir = $this->get_upload_path(); + if (!is_dir($upload_dir)) { + mkdir($upload_dir, $this->options['mkdir_mode'], true); + } + $file_path = $this->get_upload_path($file->name); + $append_file = $content_range && is_file($file_path) && + $file->size > $this->get_file_size($file_path); + if ($uploaded_file && is_uploaded_file($uploaded_file)) { + // multipart/formdata uploads (POST method uploads) + if ($append_file) { + file_put_contents( + $file_path, + fopen($uploaded_file, 'r'), + FILE_APPEND + ); + } else { + move_uploaded_file($uploaded_file, $file_path); + } + } else { + // Non-multipart uploads (PUT method support) + file_put_contents( + $file_path, + fopen('php://input', 'r'), + $append_file ? FILE_APPEND : 0 + ); + } + $file_size = $this->get_file_size($file_path, $append_file); + if ($file_size === $file->size) { + $file->url = $this->get_download_url($file->name); + if ($this->is_valid_image_file($file_path)) { + $this->handle_image_file($file_path, $file); + } + } else { + $file->size = $file_size; + if (!$content_range && $this->options['discard_aborted_uploads']) { + unlink($file_path); + $file->error = $this->get_error_message('abort'); + } + } + $this->set_additional_file_properties($file); + } + return $file; + } + + protected function readfile($file_path) { + $file_size = $this->get_file_size($file_path); + $chunk_size = $this->options['readfile_chunk_size']; + if ($chunk_size && $file_size > $chunk_size) { + $handle = fopen($file_path, 'rb'); + while (!feof($handle)) { + echo fread($handle, $chunk_size); + @ob_flush(); + @flush(); + } + fclose($handle); + return $file_size; + } + return readfile($file_path); + } + + protected function body($str) { + echo $str; + } + + protected function header($str) { + header($str); + } + + protected function get_upload_data($id) { + return @$_FILES[$id]; + } + + protected function get_post_param($id) { + return @$_POST[$id]; + } + + protected function get_query_param($id) { + return @$_GET[$id]; + } + + protected function get_server_var($id) { + return @$_SERVER[$id]; + } + + protected function handle_form_data($file, $index) { + // Handle form data, e.g. $_POST['description'][$index] + } + + protected function get_version_param() { + return basename(stripslashes($this->get_query_param('version'))); + } + + protected function get_singular_param_name() { + return substr($this->options['param_name'], 0, -1); + } + + protected function get_file_name_param() { + $name = $this->get_singular_param_name(); + return basename(stripslashes($this->get_query_param($name))); + } + + protected function get_file_names_params() { + $params = $this->get_query_param($this->options['param_name']); + if (!$params) { + return null; + } + foreach ($params as $key => $value) { + $params[$key] = basename(stripslashes($value)); + } + return $params; + } + + protected function get_file_type($file_path) { + switch (strtolower(pathinfo($file_path, PATHINFO_EXTENSION))) { + case 'jpeg': + case 'jpg': + return 'image/jpeg'; + case 'png': + return 'image/png'; + case 'gif': + return 'image/gif'; + default: + return ''; + } + } + + protected function download() { + switch ($this->options['download_via_php']) { + case 1: + $redirect_header = null; + break; + case 2: + $redirect_header = 'X-Sendfile'; + break; + case 3: + $redirect_header = 'X-Accel-Redirect'; + break; + default: + return $this->header('HTTP/1.1 403 Forbidden'); + } + $file_name = $this->get_file_name_param(); + if (!$this->is_valid_file_object($file_name)) { + return $this->header('HTTP/1.1 404 Not Found'); + } + if ($redirect_header) { + return $this->header( + $redirect_header.': '.$this->get_download_url( + $file_name, + $this->get_version_param(), + true + ) + ); + } + $file_path = $this->get_upload_path($file_name, $this->get_version_param()); + // Prevent browsers from MIME-sniffing the content-type: + $this->header('X-Content-Type-Options: nosniff'); + if (!preg_match($this->options['inline_file_types'], $file_name)) { + $this->header('Content-Type: application/octet-stream'); + $this->header('Content-Disposition: attachment; filename="'.$file_name.'"'); + } else { + $this->header('Content-Type: '.$this->get_file_type($file_path)); + $this->header('Content-Disposition: inline; filename="'.$file_name.'"'); + } + $this->header('Content-Length: '.$this->get_file_size($file_path)); + $this->header('Last-Modified: '.gmdate('D, d M Y H:i:s T', filemtime($file_path))); + $this->readfile($file_path); + } + + protected function send_content_type_header() { + $this->header('Vary: Accept'); + if (strpos($this->get_server_var('HTTP_ACCEPT'), 'application/json') !== false) { + $this->header('Content-type: application/json'); + } else { + $this->header('Content-type: text/plain'); + } + } + + protected function send_access_control_headers() { + $this->header('Access-Control-Allow-Origin: '.$this->options['access_control_allow_origin']); + $this->header('Access-Control-Allow-Credentials: ' + .($this->options['access_control_allow_credentials'] ? 'true' : 'false')); + $this->header('Access-Control-Allow-Methods: ' + .implode(', ', $this->options['access_control_allow_methods'])); + $this->header('Access-Control-Allow-Headers: ' + .implode(', ', $this->options['access_control_allow_headers'])); + } + + public function generate_response($content, $print_response = true) { + $this->response = $content; + if ($print_response) { + $json = json_encode($content); + $redirect = stripslashes($this->get_post_param('redirect')); + if ($redirect && preg_match($this->options['redirect_allow_target'], $redirect)) { + $this->header('Location: '.sprintf($redirect, rawurlencode($json))); + return; + } + $this->head(); + if ($this->get_server_var('HTTP_CONTENT_RANGE')) { + $files = isset($content[$this->options['param_name']]) ? + $content[$this->options['param_name']] : null; + if ($files && is_array($files) && is_object($files[0]) && $files[0]->size) { + $this->header('Range: 0-'.( + $this->fix_integer_overflow((int)$files[0]->size) - 1 + )); + } + } + $this->body($json); + } + return $content; + } + + public function get_response () { + return $this->response; + } + + public function head() { + $this->header('Pragma: no-cache'); + $this->header('Cache-Control: no-store, no-cache, must-revalidate'); + $this->header('Content-Disposition: inline; filename="files.json"'); + // Prevent Internet Explorer from MIME-sniffing the content-type: + $this->header('X-Content-Type-Options: nosniff'); + if ($this->options['access_control_allow_origin']) { + $this->send_access_control_headers(); + } + $this->send_content_type_header(); + } + + public function get($print_response = true) { + if ($print_response && $this->get_query_param('download')) { + return $this->download(); + } + $file_name = $this->get_file_name_param(); + if ($file_name) { + $response = array( + $this->get_singular_param_name() => $this->get_file_object($file_name) + ); + } else { + $response = array( + $this->options['param_name'] => $this->get_file_objects() + ); + } + return $this->generate_response($response, $print_response); + } + + public function post($print_response = true) { + if ($this->get_query_param('_method') === 'DELETE') { + return $this->delete($print_response); + } + $upload = $this->get_upload_data($this->options['param_name']); + // Parse the Content-Disposition header, if available: + $content_disposition_header = $this->get_server_var('HTTP_CONTENT_DISPOSITION'); + $file_name = $content_disposition_header ? + rawurldecode(preg_replace( + '/(^[^"]+")|("$)/', + '', + $content_disposition_header + )) : null; + // Parse the Content-Range header, which has the following form: + // Content-Range: bytes 0-524287/2000000 + $content_range_header = $this->get_server_var('HTTP_CONTENT_RANGE'); + $content_range = $content_range_header ? + preg_split('/[^0-9]+/', $content_range_header) : null; + $size = $content_range ? $content_range[3] : null; + $files = array(); + if ($upload) { + if (is_array($upload['tmp_name'])) { + // param_name is an array identifier like "files[]", + // $upload is a multi-dimensional array: + foreach ($upload['tmp_name'] as $index => $value) { + $files[] = $this->handle_file_upload( + $upload['tmp_name'][$index], + $file_name ? $file_name : $upload['name'][$index], + $size ? $size : $upload['size'][$index], + $upload['type'][$index], + $upload['error'][$index], + $index, + $content_range + ); + } + } else { + // param_name is a single object identifier like "file", + // $upload is a one-dimensional array: + $files[] = $this->handle_file_upload( + isset($upload['tmp_name']) ? $upload['tmp_name'] : null, + $file_name ? $file_name : (isset($upload['name']) ? + $upload['name'] : null), + $size ? $size : (isset($upload['size']) ? + $upload['size'] : $this->get_server_var('CONTENT_LENGTH')), + isset($upload['type']) ? + $upload['type'] : $this->get_server_var('CONTENT_TYPE'), + isset($upload['error']) ? $upload['error'] : null, + null, + $content_range + ); + } + } + $response = array($this->options['param_name'] => $files); + return $this->generate_response($response, $print_response); + } + + public function delete($print_response = true) { + $file_names = $this->get_file_names_params(); + if (empty($file_names)) { + $file_names = array($this->get_file_name_param()); + } + $response = array(); + foreach($file_names as $file_name) { + $file_path = $this->get_upload_path($file_name); + $success = is_file($file_path) && $file_name[0] !== '.' && unlink($file_path); + if ($success) { + foreach($this->options['image_versions'] as $version => $options) { + if (!empty($version)) { + $file = $this->get_upload_path($file_name, $version); + if (is_file($file)) { + unlink($file); + } + } + } + } + $response[$file_name] = $success; + } + return $this->generate_response($response, $print_response); + } + +} diff --git a/public/js/jqFileUploads/server/php/files/.gitignore b/public/js/jqFileUploads/server/php/files/.gitignore new file mode 100755 index 0000000..e24a60f --- /dev/null +++ b/public/js/jqFileUploads/server/php/files/.gitignore @@ -0,0 +1,3 @@ +* +!.gitignore +!.htaccess diff --git a/public/js/jqFileUploads/server/php/files/.htaccess b/public/js/jqFileUploads/server/php/files/.htaccess new file mode 100755 index 0000000..83fca55 --- /dev/null +++ b/public/js/jqFileUploads/server/php/files/.htaccess @@ -0,0 +1,23 @@ +# The following directives prevent the execution of script files +# in the context of the website. +# They also force the content-type application/octet-stream and +# force browsers to display a download dialog for non-image files. +SetHandler default-handler +ForceType application/octet-stream +Header set Content-Disposition attachment + +# The following unsets the forced type and Content-Disposition headers +# for known image files: + + ForceType none + Header unset Content-Disposition + + +# The following directive prevents browsers from MIME-sniffing the content-type. +# This is an important complement to the ForceType directive above: +Header set X-Content-Type-Options nosniff + +# Uncomment the following lines to prevent unauthorized download of files: +#AuthName "Authorization required" +#AuthType Basic +#require valid-user diff --git a/public/js/jqFileUploads/server/php/index.php b/public/js/jqFileUploads/server/php/index.php new file mode 100755 index 0000000..1edb3cc --- /dev/null +++ b/public/js/jqFileUploads/server/php/index.php @@ -0,0 +1,15 @@ + + + + + + + +jQuery File Upload Plugin Test + + + + +

jQuery File Upload Plugin Test

+

+
+

+
    +
    + +
    + +
    +
    + + + + Add files... + + + + + + + + +
    + +
    + +
    +
    +
    + +
     
    +
    +
    + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/js/jqFileUploads/test/test.js b/public/js/jqFileUploads/test/test.js new file mode 100755 index 0000000..adc96dc --- /dev/null +++ b/public/js/jqFileUploads/test/test.js @@ -0,0 +1,1292 @@ +/* + * jQuery File Upload Plugin Test + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2010, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/MIT + */ + +/* global $, QUnit, window, document, expect, module, test, asyncTest, start, ok, strictEqual, notStrictEqual */ + +$(function () { + // jshint nomen:false + 'use strict'; + + QUnit.done = function () { + // Delete all uploaded files: + var url = $('#fileupload').prop('action'); + $.getJSON(url, function (result) { + $.each(result.files, function (index, file) { + $.ajax({ + url: url + '?file=' + encodeURIComponent(file.name), + type: 'DELETE' + }); + }); + }); + }; + + var lifecycle = { + setup: function () { + // Set the .fileupload method to the basic widget method: + $.widget('blueimp.fileupload', window.testBasicWidget, {}); + }, + teardown: function () { + // Remove all remaining event listeners: + $(document).unbind(); + } + }, + lifecycleUI = { + setup: function () { + // Set the .fileupload method to the UI widget method: + $.widget('blueimp.fileupload', window.testUIWidget, {}); + }, + teardown: function () { + // Remove all remaining event listeners: + $(document).unbind(); + } + }; + + module('Initialization', lifecycle); + + test('Widget initialization', function () { + var fu = $('#fileupload').fileupload(); + ok(fu.data('blueimp-fileupload') || fu.data('fileupload')); + }); + + test('Data attribute options', function () { + $('#fileupload').attr('data-url', 'http://example.org'); + $('#fileupload').fileupload(); + strictEqual( + $('#fileupload').fileupload('option', 'url'), + 'http://example.org' + ); + }); + + test('File input initialization', function () { + var fu = $('#fileupload').fileupload(); + ok( + fu.fileupload('option', 'fileInput').length, + 'File input field inside of the widget' + ); + ok( + fu.fileupload('option', 'fileInput').length, + 'Widget element as file input field' + ); + }); + + test('Drop zone initialization', function () { + ok($('#fileupload').fileupload() + .fileupload('option', 'dropZone').length); + }); + + test('Paste zone initialization', function () { + ok($('#fileupload').fileupload({pasteZone: document}) + .fileupload('option', 'pasteZone').length); + }); + + test('Event listeners initialization', function () { + expect( + $.support.xhrFormDataFileUpload ? 4 : 1 + ); + var eo = { + originalEvent: { + dataTransfer: {files: [{}], types: ['Files']}, + clipboardData: {items: [{}]} + } + }, + fu = $('#fileupload').fileupload({ + pasteZone: document, + dragover: function () { + ok(true, 'Triggers dragover callback'); + return false; + }, + drop: function () { + ok(true, 'Triggers drop callback'); + return false; + }, + paste: function () { + ok(true, 'Triggers paste callback'); + return false; + }, + change: function () { + ok(true, 'Triggers change callback'); + return false; + } + }), + fileInput = fu.fileupload('option', 'fileInput'), + dropZone = fu.fileupload('option', 'dropZone'), + pasteZone = fu.fileupload('option', 'pasteZone'); + fileInput.trigger($.Event('change', eo)); + dropZone.trigger($.Event('dragover', eo)); + dropZone.trigger($.Event('drop', eo)); + pasteZone.trigger($.Event('paste', eo)); + }); + + module('API', lifecycle); + + test('destroy', function () { + expect(4); + var eo = { + originalEvent: { + dataTransfer: {files: [{}], types: ['Files']}, + clipboardData: {items: [{}]} + } + }, + options = { + pasteZone: document, + dragover: function () { + ok(true, 'Triggers dragover callback'); + return false; + }, + drop: function () { + ok(true, 'Triggers drop callback'); + return false; + }, + paste: function () { + ok(true, 'Triggers paste callback'); + return false; + }, + change: function () { + ok(true, 'Triggers change callback'); + return false; + } + }, + fu = $('#fileupload').fileupload(options), + fileInput = fu.fileupload('option', 'fileInput'), + dropZone = fu.fileupload('option', 'dropZone'), + pasteZone = fu.fileupload('option', 'pasteZone'); + dropZone.bind('dragover', options.dragover); + dropZone.bind('drop', options.drop); + pasteZone.bind('paste', options.paste); + fileInput.bind('change', options.change); + fu.fileupload('destroy'); + fileInput.trigger($.Event('change', eo)); + dropZone.trigger($.Event('dragover', eo)); + dropZone.trigger($.Event('drop', eo)); + pasteZone.trigger($.Event('paste', eo)); + }); + + test('disable/enable', function () { + expect( + $.support.xhrFormDataFileUpload ? 4 : 1 + ); + var eo = { + originalEvent: { + dataTransfer: {files: [{}], types: ['Files']}, + clipboardData: {items: [{}]} + } + }, + fu = $('#fileupload').fileupload({ + pasteZone: document, + dragover: function () { + ok(true, 'Triggers dragover callback'); + return false; + }, + drop: function () { + ok(true, 'Triggers drop callback'); + return false; + }, + paste: function () { + ok(true, 'Triggers paste callback'); + return false; + }, + change: function () { + ok(true, 'Triggers change callback'); + return false; + } + }), + fileInput = fu.fileupload('option', 'fileInput'), + dropZone = fu.fileupload('option', 'dropZone'), + pasteZone = fu.fileupload('option', 'pasteZone'); + fu.fileupload('disable'); + fileInput.trigger($.Event('change', eo)); + dropZone.trigger($.Event('dragover', eo)); + dropZone.trigger($.Event('drop', eo)); + pasteZone.trigger($.Event('paste', eo)); + fu.fileupload('enable'); + fileInput.trigger($.Event('change', eo)); + dropZone.trigger($.Event('dragover', eo)); + dropZone.trigger($.Event('drop', eo)); + pasteZone.trigger($.Event('paste', eo)); + }); + + test('option', function () { + expect( + $.support.xhrFormDataFileUpload ? 10 : 7 + ); + var eo = { + originalEvent: { + dataTransfer: {files: [{}], types: ['Files']}, + clipboardData: {items: [{}]} + } + }, + fu = $('#fileupload').fileupload({ + pasteZone: document, + dragover: function () { + ok(true, 'Triggers dragover callback'); + return false; + }, + drop: function () { + ok(true, 'Triggers drop callback'); + return false; + }, + paste: function () { + ok(true, 'Triggers paste callback'); + return false; + }, + change: function () { + ok(true, 'Triggers change callback'); + return false; + } + }), + fileInput = fu.fileupload('option', 'fileInput'), + dropZone = fu.fileupload('option', 'dropZone'), + pasteZone = fu.fileupload('option', 'pasteZone'); + fu.fileupload('option', 'fileInput', null); + fu.fileupload('option', 'dropZone', null); + fu.fileupload('option', 'pasteZone', null); + fileInput.trigger($.Event('change', eo)); + dropZone.trigger($.Event('dragover', eo)); + dropZone.trigger($.Event('drop', eo)); + pasteZone.trigger($.Event('paste', eo)); + fu.fileupload('option', 'dropZone', 'body'); + strictEqual( + fu.fileupload('option', 'dropZone')[0], + document.body, + 'Allow a query string as parameter for the dropZone option' + ); + fu.fileupload('option', 'dropZone', document); + strictEqual( + fu.fileupload('option', 'dropZone')[0], + document, + 'Allow a document element as parameter for the dropZone option' + ); + fu.fileupload('option', 'pasteZone', 'body'); + strictEqual( + fu.fileupload('option', 'pasteZone')[0], + document.body, + 'Allow a query string as parameter for the pasteZone option' + ); + fu.fileupload('option', 'pasteZone', document); + strictEqual( + fu.fileupload('option', 'pasteZone')[0], + document, + 'Allow a document element as parameter for the pasteZone option' + ); + fu.fileupload('option', 'fileInput', ':file'); + strictEqual( + fu.fileupload('option', 'fileInput')[0], + $(':file')[0], + 'Allow a query string as parameter for the fileInput option' + ); + fu.fileupload('option', 'fileInput', $(':file')[0]); + strictEqual( + fu.fileupload('option', 'fileInput')[0], + $(':file')[0], + 'Allow a document element as parameter for the fileInput option' + ); + fu.fileupload('option', 'fileInput', fileInput); + fu.fileupload('option', 'dropZone', dropZone); + fu.fileupload('option', 'pasteZone', pasteZone); + fileInput.trigger($.Event('change', eo)); + dropZone.trigger($.Event('dragover', eo)); + dropZone.trigger($.Event('drop', eo)); + pasteZone.trigger($.Event('paste', eo)); + }); + + asyncTest('add', function () { + expect(2); + var param = {files: [{name: 'test'}]}; + $('#fileupload').fileupload({ + add: function (e, data) { + strictEqual( + data.files[0].name, + param.files[0].name, + 'Triggers add callback' + ); + } + }).fileupload('add', param).fileupload( + 'option', + 'add', + function (e, data) { + data.submit().complete(function () { + ok(true, 'data.submit() Returns a jqXHR object'); + start(); + }); + } + ).fileupload('add', param); + }); + + asyncTest('send', function () { + expect(3); + var param = {files: [{name: 'test'}]}; + $('#fileupload').fileupload({ + send: function (e, data) { + strictEqual( + data.files[0].name, + 'test', + 'Triggers send callback' + ); + } + }).fileupload('send', param).fail(function () { + ok(true, 'Allows to abort the request'); + }).complete(function () { + ok(true, 'Returns a jqXHR object'); + start(); + }).abort(); + }); + + module('Callbacks', lifecycle); + + asyncTest('add', function () { + expect(1); + var param = {files: [{name: 'test'}]}; + $('#fileupload').fileupload({ + add: function () { + ok(true, 'Triggers add callback'); + start(); + } + }).fileupload('add', param); + }); + + asyncTest('submit', function () { + expect(1); + var param = {files: [{name: 'test'}]}; + $('#fileupload').fileupload({ + submit: function () { + ok(true, 'Triggers submit callback'); + start(); + return false; + } + }).fileupload('add', param); + }); + + asyncTest('send', function () { + expect(1); + var param = {files: [{name: 'test'}]}; + $('#fileupload').fileupload({ + send: function () { + ok(true, 'Triggers send callback'); + start(); + return false; + } + }).fileupload('send', param); + }); + + asyncTest('done', function () { + expect(1); + var param = {files: [{name: 'test'}]}; + $('#fileupload').fileupload({ + done: function () { + ok(true, 'Triggers done callback'); + start(); + } + }).fileupload('send', param); + }); + + asyncTest('fail', function () { + expect(1); + var param = {files: [{name: 'test'}]}, + fu = $('#fileupload').fileupload({ + url: '404', + fail: function () { + ok(true, 'Triggers fail callback'); + start(); + } + }); + (fu.data('blueimp-fileupload') || fu.data('fileupload')) + ._isXHRUpload = function () { + return true; + }; + fu.fileupload('send', param); + }); + + asyncTest('always', function () { + expect(2); + var param = {files: [{name: 'test'}]}, + counter = 0, + fu = $('#fileupload').fileupload({ + always: function () { + ok(true, 'Triggers always callback'); + if (counter === 1) { + start(); + } else { + counter += 1; + } + } + }); + (fu.data('blueimp-fileupload') || fu.data('fileupload')) + ._isXHRUpload = function () { + return true; + }; + fu.fileupload('add', param).fileupload( + 'option', + 'url', + '404' + ).fileupload('add', param); + }); + + asyncTest('progress', function () { + expect(1); + var param = {files: [{name: 'test'}]}, + counter = 0; + $('#fileupload').fileupload({ + forceIframeTransport: true, + progress: function () { + ok(true, 'Triggers progress callback'); + if (counter === 0) { + start(); + } else { + counter += 1; + } + } + }).fileupload('send', param); + }); + + asyncTest('progressall', function () { + expect(1); + var param = {files: [{name: 'test'}]}, + counter = 0; + $('#fileupload').fileupload({ + forceIframeTransport: true, + progressall: function () { + ok(true, 'Triggers progressall callback'); + if (counter === 0) { + start(); + } else { + counter += 1; + } + } + }).fileupload('send', param); + }); + + asyncTest('start', function () { + expect(1); + var param = {files: [{name: '1'}, {name: '2'}]}, + active = 0; + $('#fileupload').fileupload({ + send: function () { + active += 1; + }, + start: function () { + ok(!active, 'Triggers start callback before uploads'); + start(); + } + }).fileupload('send', param); + }); + + asyncTest('stop', function () { + expect(1); + var param = {files: [{name: '1'}, {name: '2'}]}, + active = 0; + $('#fileupload').fileupload({ + send: function () { + active += 1; + }, + always: function () { + active -= 1; + }, + stop: function () { + ok(!active, 'Triggers stop callback after uploads'); + start(); + } + }).fileupload('send', param); + }); + + test('change', function () { + var fu = $('#fileupload').fileupload(), + fuo = fu.data('blueimp-fileupload') || fu.data('fileupload'), + fileInput = fu.fileupload('option', 'fileInput'); + expect(2); + fu.fileupload({ + change: function (e, data) { + ok(true, 'Triggers change callback'); + strictEqual( + data.files.length, + 0, + 'Returns empty files list' + ); + }, + add: $.noop + }); + fuo._onChange({ + data: {fileupload: fuo}, + target: fileInput[0] + }); + }); + + test('paste', function () { + var fu = $('#fileupload').fileupload(), + fuo = fu.data('blueimp-fileupload') || fu.data('fileupload'); + expect(1); + fu.fileupload({ + paste: function () { + ok(true, 'Triggers paste callback'); + }, + add: $.noop + }); + fuo._onPaste({ + data: {fileupload: fuo}, + originalEvent: { + dataTransfer: {files: [{}]}, + clipboardData: {items: [{}]} + }, + preventDefault: $.noop + }); + }); + + test('drop', function () { + var fu = $('#fileupload').fileupload(), + fuo = fu.data('blueimp-fileupload') || fu.data('fileupload'); + expect(1); + fu.fileupload({ + drop: function () { + ok(true, 'Triggers drop callback'); + }, + add: $.noop + }); + fuo._onDrop({ + data: {fileupload: fuo}, + originalEvent: { + dataTransfer: {files: [{}]}, + clipboardData: {items: [{}]} + }, + preventDefault: $.noop + }); + }); + + test('dragover', function () { + var fu = $('#fileupload').fileupload(), + fuo = fu.data('blueimp-fileupload') || fu.data('fileupload'); + expect(1); + fu.fileupload({ + dragover: function () { + ok(true, 'Triggers dragover callback'); + }, + add: $.noop + }); + fuo._onDragOver({ + data: {fileupload: fuo}, + originalEvent: {dataTransfer: {types: ['Files']}}, + preventDefault: $.noop + }); + }); + + module('Options', lifecycle); + + test('paramName', function () { + expect(1); + var param = {files: [{name: 'test'}]}; + $('#fileupload').fileupload({ + paramName: null, + send: function (e, data) { + strictEqual( + data.paramName[0], + data.fileInput.prop('name'), + 'Takes paramName from file input field if not set' + ); + return false; + } + }).fileupload('send', param); + }); + + test('url', function () { + expect(1); + var param = {files: [{name: 'test'}]}; + $('#fileupload').fileupload({ + url: null, + send: function (e, data) { + strictEqual( + data.url, + $(data.fileInput.prop('form')).prop('action'), + 'Takes url from form action if not set' + ); + return false; + } + }).fileupload('send', param); + }); + + test('type', function () { + expect(2); + var param = {files: [{name: 'test'}]}; + $('#fileupload').fileupload({ + type: null, + send: function (e, data) { + strictEqual( + data.type, + 'POST', + 'Request type is "POST" if not set to "PUT"' + ); + return false; + } + }).fileupload('send', param); + $('#fileupload').fileupload({ + type: 'PUT', + send: function (e, data) { + strictEqual( + data.type, + 'PUT', + 'Request type is "PUT" if set to "PUT"' + ); + return false; + } + }).fileupload('send', param); + }); + + test('replaceFileInput', function () { + var fu = $('#fileupload').fileupload(), + fuo = fu.data('blueimp-fileupload') || fu.data('fileupload'), + fileInput = fu.fileupload('option', 'fileInput'), + fileInputElement = fileInput[0]; + expect(2); + fu.fileupload({ + replaceFileInput: false, + change: function () { + strictEqual( + fu.fileupload('option', 'fileInput')[0], + fileInputElement, + 'Keeps file input with replaceFileInput: false' + ); + }, + add: $.noop + }); + fuo._onChange({ + data: {fileupload: fuo}, + target: fileInput[0] + }); + fu.fileupload({ + replaceFileInput: true, + change: function () { + notStrictEqual( + fu.fileupload('option', 'fileInput')[0], + fileInputElement, + 'Replaces file input with replaceFileInput: true' + ); + }, + add: $.noop + }); + fuo._onChange({ + data: {fileupload: fuo}, + target: fileInput[0] + }); + }); + + asyncTest('forceIframeTransport', function () { + expect(1); + var param = {files: [{name: 'test'}]}; + $('#fileupload').fileupload({ + forceIframeTransport: true, + done: function (e, data) { + strictEqual( + data.dataType.substr(0, 6), + 'iframe', + 'Iframe Transport is used' + ); + start(); + } + }).fileupload('send', param); + }); + + test('singleFileUploads', function () { + expect(3); + var fu = $('#fileupload').fileupload(), + param = {files: [{name: '1'}, {name: '2'}]}, + index = 1; + (fu.data('blueimp-fileupload') || fu.data('fileupload')) + ._isXHRUpload = function () { + return true; + }; + $('#fileupload').fileupload({ + singleFileUploads: true, + add: function () { + ok(true, 'Triggers callback number ' + index.toString()); + index += 1; + } + }).fileupload('add', param).fileupload( + 'option', + 'singleFileUploads', + false + ).fileupload('add', param); + }); + + test('limitMultiFileUploads', function () { + expect(3); + var fu = $('#fileupload').fileupload(), + param = {files: [ + {name: '1'}, + {name: '2'}, + {name: '3'}, + {name: '4'}, + {name: '5'} + ]}, + index = 1; + (fu.data('blueimp-fileupload') || fu.data('fileupload')) + ._isXHRUpload = function () { + return true; + }; + $('#fileupload').fileupload({ + singleFileUploads: false, + limitMultiFileUploads: 2, + add: function () { + ok(true, 'Triggers callback number ' + index.toString()); + index += 1; + } + }).fileupload('add', param); + }); + + test('limitMultiFileUploadSize', function () { + expect(7); + var fu = $('#fileupload').fileupload(), + param = {files: [ + {name: '1-1', size: 100000}, + {name: '1-2', size: 40000}, + {name: '2-1', size: 100000}, + {name: '3-1', size: 50000}, + {name: '3-2', size: 40000}, + {name: '4-1', size: 45000} // New request due to limitMultiFileUploads + ]}, + param2 = {files: [ + {name: '5-1'}, + {name: '5-2'}, + {name: '6-1'}, + {name: '6-2'}, + {name: '7-1'} + ]}, + index = 1; + (fu.data('blueimp-fileupload') || fu.data('fileupload')) + ._isXHRUpload = function () { + return true; + }; + $('#fileupload').fileupload({ + singleFileUploads: false, + limitMultiFileUploads: 2, + limitMultiFileUploadSize: 150000, + limitMultiFileUploadSizeOverhead: 5000, + add: function () { + ok(true, 'Triggers callback number ' + index.toString()); + index += 1; + } + }).fileupload('add', param).fileupload('add', param2); + }); + + asyncTest('sequentialUploads', function () { + expect(6); + var param = {files: [ + {name: '1'}, + {name: '2'}, + {name: '3'}, + {name: '4'}, + {name: '5'}, + {name: '6'} + ]}, + addIndex = 0, + sendIndex = 0, + loadIndex = 0, + fu = $('#fileupload').fileupload({ + sequentialUploads: true, + add: function (e, data) { + addIndex += 1; + if (addIndex === 4) { + data.submit().abort(); + } else { + data.submit(); + } + }, + send: function () { + sendIndex += 1; + }, + done: function () { + loadIndex += 1; + strictEqual(sendIndex, loadIndex, 'upload in order'); + }, + fail: function (e, data) { + strictEqual(data.errorThrown, 'abort', 'upload aborted'); + }, + stop: function () { + start(); + } + }); + (fu.data('blueimp-fileupload') || fu.data('fileupload')) + ._isXHRUpload = function () { + return true; + }; + fu.fileupload('add', param); + }); + + asyncTest('limitConcurrentUploads', function () { + expect(12); + var param = {files: [ + {name: '1'}, + {name: '2'}, + {name: '3'}, + {name: '4'}, + {name: '5'}, + {name: '6'}, + {name: '7'}, + {name: '8'}, + {name: '9'}, + {name: '10'}, + {name: '11'}, + {name: '12'} + ]}, + addIndex = 0, + sendIndex = 0, + loadIndex = 0, + fu = $('#fileupload').fileupload({ + limitConcurrentUploads: 3, + add: function (e, data) { + addIndex += 1; + if (addIndex === 4) { + data.submit().abort(); + } else { + data.submit(); + } + }, + send: function () { + sendIndex += 1; + }, + done: function () { + loadIndex += 1; + ok(sendIndex - loadIndex < 3); + }, + fail: function (e, data) { + strictEqual(data.errorThrown, 'abort', 'upload aborted'); + }, + stop: function () { + start(); + } + }); + (fu.data('blueimp-fileupload') || fu.data('fileupload')) + ._isXHRUpload = function () { + return true; + }; + fu.fileupload('add', param); + }); + + if ($.support.xhrFileUpload) { + asyncTest('multipart', function () { + expect(2); + var param = {files: [{ + name: 'test.png', + size: 123, + type: 'image/png' + }]}, + fu = $('#fileupload').fileupload({ + multipart: false, + always: function (e, data) { + strictEqual( + data.contentType, + param.files[0].type, + 'non-multipart upload sets file type as contentType' + ); + strictEqual( + data.headers['Content-Disposition'], + 'attachment; filename="' + param.files[0].name + '"', + 'non-multipart upload sets Content-Disposition header' + ); + start(); + } + }); + fu.fileupload('send', param); + }); + } + + module('UI Initialization', lifecycleUI); + + test('Widget initialization', function () { + var fu = $('#fileupload').fileupload(); + ok(fu.data('blueimp-fileupload') || fu.data('fileupload')); + ok( + $('#fileupload').fileupload('option', 'uploadTemplate').length, + 'Initialized upload template' + ); + ok( + $('#fileupload').fileupload('option', 'downloadTemplate').length, + 'Initialized download template' + ); + }); + + test('Buttonbar event listeners', function () { + var buttonbar = $('#fileupload .fileupload-buttonbar'), + files = [{name: 'test'}]; + expect(4); + $('#fileupload').fileupload({ + send: function () { + ok(true, 'Started file upload via global start button'); + }, + fail: function (e, data) { + ok(true, 'Canceled file upload via global cancel button'); + data.context.remove(); + }, + destroy: function () { + ok(true, 'Delete action called via global delete button'); + } + }); + $('#fileupload').fileupload('add', {files: files}); + buttonbar.find('.cancel').click(); + $('#fileupload').fileupload('add', {files: files}); + buttonbar.find('.start').click(); + buttonbar.find('.cancel').click(); + files[0].deleteUrl = 'http://example.org/banana.jpg'; + ($('#fileupload').data('blueimp-fileupload') || + $('#fileupload').data('fileupload')) + ._renderDownload(files) + .appendTo($('#fileupload .files')).show() + .find('.toggle').click(); + buttonbar.find('.delete').click(); + }); + + module('UI API', lifecycleUI); + + test('destroy', function () { + var buttonbar = $('#fileupload .fileupload-buttonbar'), + files = [{name: 'test'}]; + expect(1); + $('#fileupload').fileupload({ + send: function () { + ok(true, 'This test should not run'); + return false; + } + }) + .fileupload('add', {files: files}) + .fileupload('destroy'); + buttonbar.find('.start').click(function () { + ok(true, 'Clicked global start button'); + return false; + }).click(); + }); + + test('disable/enable', function () { + var buttonbar = $('#fileupload .fileupload-buttonbar'); + $('#fileupload').fileupload(); + $('#fileupload').fileupload('disable'); + strictEqual( + buttonbar.find('input[type=file], button').not(':disabled').length, + 0, + 'Disables the buttonbar buttons' + ); + $('#fileupload').fileupload('enable'); + strictEqual( + buttonbar.find('input[type=file], button').not(':disabled').length, + 4, + 'Enables the buttonbar buttons' + ); + }); + + module('UI Callbacks', lifecycleUI); + + test('destroy', function () { + expect(3); + $('#fileupload').fileupload({ + destroy: function (e, data) { + ok(true, 'Triggers destroy callback'); + strictEqual( + data.url, + 'test', + 'Passes over deletion url parameter' + ); + strictEqual( + data.type, + 'DELETE', + 'Passes over deletion request type parameter' + ); + } + }); + ($('#fileupload').data('blueimp-fileupload') || + $('#fileupload').data('fileupload')) + ._renderDownload([{ + name: 'test', + deleteUrl: 'test', + deleteType: 'DELETE' + }]) + .appendTo($('#fileupload .files')) + .show() + .find('.toggle').click(); + $('#fileupload .fileupload-buttonbar .delete').click(); + }); + + asyncTest('added', function () { + expect(1); + var param = {files: [{name: 'test'}]}; + $('#fileupload').fileupload({ + added: function (e, data) { + start(); + strictEqual( + data.files[0].name, + param.files[0].name, + 'Triggers added callback' + ); + }, + send: function () { + return false; + } + }).fileupload('add', param); + }); + + asyncTest('started', function () { + expect(1); + var param = {files: [{name: 'test'}]}; + $('#fileupload').fileupload({ + started: function () { + start(); + ok('Triggers started callback'); + return false; + }, + sent: function () { + return false; + } + }).fileupload('send', param); + }); + + asyncTest('sent', function () { + expect(1); + var param = {files: [{name: 'test'}]}; + $('#fileupload').fileupload({ + sent: function (e, data) { + start(); + strictEqual( + data.files[0].name, + param.files[0].name, + 'Triggers sent callback' + ); + return false; + } + }).fileupload('send', param); + }); + + asyncTest('completed', function () { + expect(1); + var param = {files: [{name: 'test'}]}; + $('#fileupload').fileupload({ + completed: function () { + start(); + ok('Triggers completed callback'); + return false; + } + }).fileupload('send', param); + }); + + asyncTest('failed', function () { + expect(1); + var param = {files: [{name: 'test'}]}; + $('#fileupload').fileupload({ + failed: function () { + start(); + ok('Triggers failed callback'); + return false; + } + }).fileupload('send', param).abort(); + }); + + asyncTest('stopped', function () { + expect(1); + var param = {files: [{name: 'test'}]}; + $('#fileupload').fileupload({ + stopped: function () { + start(); + ok('Triggers stopped callback'); + return false; + } + }).fileupload('send', param); + }); + + asyncTest('destroyed', function () { + expect(1); + $('#fileupload').fileupload({ + dataType: 'html', + destroyed: function () { + start(); + ok(true, 'Triggers destroyed callback'); + } + }); + ($('#fileupload').data('blueimp-fileupload') || + $('#fileupload').data('fileupload')) + ._renderDownload([{ + name: 'test', + deleteUrl: '.', + deleteType: 'GET' + }]) + .appendTo($('#fileupload .files')) + .show() + .find('.toggle').click(); + $('#fileupload .fileupload-buttonbar .delete').click(); + }); + + module('UI Options', lifecycleUI); + + test('autoUpload', function () { + expect(1); + $('#fileupload') + .fileupload({ + autoUpload: true, + send: function () { + ok(true, 'Started file upload automatically'); + return false; + } + }) + .fileupload('add', {files: [{name: 'test'}]}) + .fileupload('option', 'autoUpload', false) + .fileupload('add', {files: [{name: 'test'}]}); + }); + + test('maxNumberOfFiles', function () { + expect(3); + var addIndex = 0, + sendIndex = 0; + $('#fileupload') + .fileupload({ + autoUpload: true, + maxNumberOfFiles: 3, + singleFileUploads: false, + send: function () { + strictEqual( + sendIndex += 1, + addIndex + ); + }, + progress: $.noop, + progressall: $.noop, + done: $.noop, + stop: $.noop + }) + .fileupload('add', {files: [{name: (addIndex += 1)}]}) + .fileupload('add', {files: [{name: (addIndex += 1)}]}) + .fileupload('add', {files: [{name: (addIndex += 1)}]}) + .fileupload('add', {files: [{name: 'test'}]}); + }); + + test('maxFileSize', function () { + expect(2); + var addIndex = 0, + sendIndex = 0; + $('#fileupload') + .fileupload({ + autoUpload: true, + maxFileSize: 1000, + send: function () { + strictEqual( + sendIndex += 1, + addIndex + ); + return false; + } + }) + .fileupload('add', {files: [{ + name: (addIndex += 1) + }]}) + .fileupload('add', {files: [{ + name: (addIndex += 1), + size: 999 + }]}) + .fileupload('add', {files: [{ + name: 'test', + size: 1001 + }]}) + .fileupload({ + send: function (e, data) { + ok( + !$.blueimp.fileupload.prototype.options + .send.call(this, e, data) + ); + return false; + } + }); + }); + + test('minFileSize', function () { + expect(2); + var addIndex = 0, + sendIndex = 0; + $('#fileupload') + .fileupload({ + autoUpload: true, + minFileSize: 1000, + send: function () { + strictEqual( + sendIndex += 1, + addIndex + ); + return false; + } + }) + .fileupload('add', {files: [{ + name: (addIndex += 1) + }]}) + .fileupload('add', {files: [{ + name: (addIndex += 1), + size: 1001 + }]}) + .fileupload('add', {files: [{ + name: 'test', + size: 999 + }]}) + .fileupload({ + send: function (e, data) { + ok( + !$.blueimp.fileupload.prototype.options + .send.call(this, e, data) + ); + return false; + } + }); + }); + + test('acceptFileTypes', function () { + expect(2); + var addIndex = 0, + sendIndex = 0; + $('#fileupload') + .fileupload({ + autoUpload: true, + acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i, + disableImageMetaDataLoad: true, + send: function () { + strictEqual( + sendIndex += 1, + addIndex + ); + return false; + } + }) + .fileupload('add', {files: [{ + name: (addIndex += 1) + '.jpg' + }]}) + .fileupload('add', {files: [{ + name: (addIndex += 1), + type: 'image/jpeg' + }]}) + .fileupload('add', {files: [{ + name: 'test.txt', + type: 'text/plain' + }]}) + .fileupload({ + send: function (e, data) { + ok( + !$.blueimp.fileupload.prototype.options + .send.call(this, e, data) + ); + return false; + } + }); + }); + + test('acceptFileTypes as HTML5 data attribute', function () { + expect(2); + var regExp = /(\.|\/)(gif|jpe?g|png)$/i; + $('#fileupload') + .attr('data-accept-file-types', regExp.toString()) + .fileupload(); + strictEqual( + $.type($('#fileupload').fileupload('option', 'acceptFileTypes')), + $.type(regExp) + ); + strictEqual( + $('#fileupload').fileupload('option', 'acceptFileTypes').toString(), + regExp.toString() + ); + }); + +}); diff --git a/public/js/jquery-2.1.4.min.js b/public/js/jquery-2.1.4.min.js new file mode 100644 index 0000000..49990d6 --- /dev/null +++ b/public/js/jquery-2.1.4.min.js @@ -0,0 +1,4 @@ +/*! jQuery v2.1.4 | (c) 2005, 2015 jQuery Foundation, Inc. | jquery.org/license */ +!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l=a.document,m="2.1.4",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!n.isArray(a)&&a-parseFloat(a)+1>=0},isPlainObject:function(a){return"object"!==n.type(a)||a.nodeType||n.isWindow(a)?!1:a.constructor&&!j.call(a.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf("use strict")?(b=l.createElement("script"),b.text=a,l.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:g.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(e=d.call(arguments,2),f=function(){return a.apply(b||this,e.concat(d.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:k}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b="length"in a&&a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N=M.replace("w","w#"),O="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+N+"))|)"+L+"*\\]",P=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+O+")*)|.*)\\)|)",Q=new RegExp(L+"+","g"),R=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),S=new RegExp("^"+L+"*,"+L+"*"),T=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),U=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),V=new RegExp(P),W=new RegExp("^"+N+"$"),X={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+O),PSEUDO:new RegExp("^"+P),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,aa=/[+~]/,ba=/'|\\/g,ca=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),da=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ea=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fa){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],k=b.nodeType,"string"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(f=_.exec(a)))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(ba,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+ra(o[l]);w=aa.test(a)&&pa(b.parentNode)||b,x=o.join(",")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function pa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener("unload",ea,!1):e.attachEvent&&e.attachEvent("onunload",ea)),p=!f(g),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(g.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){var b=g.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",P)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?la(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ca,da),a[3]=(a[3]||a[4]||a[5]||"").replace(ca,da),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ca,da).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(Q," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(ca,da),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return W.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(ca,da).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:oa(function(){return[0]}),last:oa(function(a,b){return[b-1]}),eq:oa(function(a,b,c){return[0>c?c+b:c]}),even:oa(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:oa(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:oa(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:oa(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function sa(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function ta(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ua(a,b,c){for(var d=0,e=b.length;e>d;d++)ga(a,b[d],c);return c}function va(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function wa(a,b,c,d,e,f){return d&&!d[u]&&(d=wa(d)),e&&!e[u]&&(e=wa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ua(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:va(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=va(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=va(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=sa(function(a){return a===b},h,!0),l=sa(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sa(ta(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return wa(i>1&&ta(m),i>1&&ra(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&xa(a.slice(i,e)),f>e&&xa(a=a.slice(e)),f>e&&ra(a))}m.push(c)}return ta(m)}function ya(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=F.call(i));s=va(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&ga.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,ya(e,d)),f.selector=a}return f},i=ga.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ca,da),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ca,da),aa.test(j[0].type)&&pa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&ra(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,aa.test(a)&&pa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ja(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return g.call(b,a)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:l,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=l.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=l,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};A.prototype=n.fn,y=n(l);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?"string"==typeof a?g.call(n(a),this[0]):g.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(C[a]||n.unique(e),B.test(a)&&e.reverse()),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return n.each(a.match(E)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(b=a.memory&&l,c=!0,g=e||0,e=0,f=h.length,d=!0;h&&f>g;g++)if(h[g].apply(l[0],l[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,h&&(i?i.length&&j(i.shift()):b?h=[]:k.disable())},k={add:function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this},remove:function(){return h&&n.each(arguments,function(a,b){var c;while((c=n.inArray(b,h,c))>-1)h.splice(c,1),d&&(f>=c&&f--,g>=c&&g--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],f=0,this},disable:function(){return h=i=b=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,b||k.disable(),this},locked:function(){return!i},fireWith:function(a,b){return!h||c&&!i||(b=b||[],b=[a,b.slice?b.slice():b],d?i.push(b):j(b)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!c}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&n.isFunction(a.promise)?e:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(H.resolveWith(l,[n]),n.fn.triggerHandler&&(n(l).triggerHandler("ready"),n(l).off("ready"))))}});function I(){l.removeEventListener("DOMContentLoaded",I,!1),a.removeEventListener("load",I,!1),n.ready()}n.ready.promise=function(b){return H||(H=n.Deferred(),"complete"===l.readyState?setTimeout(n.ready):(l.addEventListener("DOMContentLoaded",I,!1),a.addEventListener("load",I,!1))),H.promise(b)},n.ready.promise();var J=n.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)n.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f};n.acceptData=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function K(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=n.expando+K.uid++}K.uid=1,K.accepts=n.acceptData,K.prototype={key:function(a){if(!K.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=K.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,n.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(n.isEmptyObject(f))n.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void 0===b?c:c[b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void 0===b)this.cache[f]={};else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(E)||[])),c=d.length;while(c--)delete g[d[c]]}},hasData:function(a){return!n.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var L=new K,M=new K,N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(O,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}M.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return M.hasData(a)||L.hasData(a)},data:function(a,b,c){ +return M.access(a,b,c)},removeData:function(a,b){M.remove(a,b)},_data:function(a,b,c){return L.access(a,b,c)},_removeData:function(a,b){L.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=M.get(f),1===f.nodeType&&!L.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));L.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){M.set(this,a)}):J(this,function(b){var c,d=n.camelCase(a);if(f&&void 0===b){if(c=M.get(f,a),void 0!==c)return c;if(c=M.get(f,d),void 0!==c)return c;if(c=P(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=M.get(this,d);M.set(this,d,b),-1!==a.indexOf("-")&&void 0!==c&&M.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){M.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=L.get(a,b),c&&(!d||n.isArray(c)?d=L.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return L.get(a,c)||L.access(a,c,{empty:n.Callbacks("once memory").add(function(){L.remove(a,[b+"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthx",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var U="undefined";k.focusinBubbles="onfocusin"in a;var V=/^key/,W=/^(?:mouse|pointer|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\.(.+)|)$/;function Z(){return!0}function $(){return!1}function _(){try{return l.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof n!==U&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(E)||[""],j=b.length;while(j--)h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&(delete r.handle,L.remove(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,m,o,p=[d||l],q=j.call(b,"type")?b.type:b,r=j.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||l,3!==d.nodeType&&8!==d.nodeType&&!X.test(q+n.event.triggered)&&(q.indexOf(".")>=0&&(r=q.split("."),q=r.shift(),r.sort()),k=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=r.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},e||!o.trigger||o.trigger.apply(d,c)!==!1)){if(!e&&!o.noBubble&&!n.isWindow(d)){for(i=o.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||l)&&p.push(h.defaultView||h.parentWindow||a)}f=0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f>1?i:o.bindType||q,m=(L.get(g,"events")||{})[b.type]&&L.get(g,"handle"),m&&m.apply(g,c),m=k&&g[k],m&&m.apply&&n.acceptData(g)&&(b.result=m.apply(g,c),b.result===!1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!1||!n.acceptData(d)||k&&n.isFunction(d[q])&&!n.isWindow(d)&&(h=d[k],h&&(d[k]=null),n.event.triggered=q,d[q](),n.event.triggered=void 0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(a.result=e)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!0||"click"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>=0:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h]*)\/>/gi,ba=/<([\w:]+)/,ca=/<|&#?\w+;/,da=/<(?:script|style|link)/i,ea=/checked\s*(?:[^=]|=\s*.checked.)/i,fa=/^$|\/(?:java|ecma)script/i,ga=/^true\/(.*)/,ha=/^\s*\s*$/g,ia={option:[1,""],thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};ia.optgroup=ia.option,ia.tbody=ia.tfoot=ia.colgroup=ia.caption=ia.thead,ia.th=ia.td;function ja(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function ka(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function la(a){var b=ga.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function ma(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],"globalEval",!b||L.get(b[c],"globalEval"))}function na(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=n.extend({},h),M.set(b,i))}}function oa(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function pa(a,b){var c=b.nodeName.toLowerCase();"input"===c&&T.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}n.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=oa(h),f=oa(a),d=0,e=f.length;e>d;d++)pa(f[d],g[d]);if(b)if(c)for(f=f||oa(a),g=g||oa(h),d=0,e=f.length;e>d;d++)na(f[d],g[d]);else na(a,h);return g=oa(h,"script"),g.length>0&&ma(g,!i&&oa(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,o=a.length;o>m;m++)if(e=a[m],e||0===e)if("object"===n.type(e))n.merge(l,e.nodeType?[e]:e);else if(ca.test(e)){f=f||k.appendChild(b.createElement("div")),g=(ba.exec(e)||["",""])[1].toLowerCase(),h=ia[g]||ia._default,f.innerHTML=h[1]+e.replace(aa,"<$1>")+h[2],j=h[0];while(j--)f=f.lastChild;n.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));k.textContent="",m=0;while(e=l[m++])if((!d||-1===n.inArray(e,d))&&(i=n.contains(e.ownerDocument,e),f=oa(k.appendChild(e),"script"),i&&ma(f),c)){j=0;while(e=f[j++])fa.test(e.type||"")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f=n.event.special,g=0;void 0!==(c=a[g]);g++){if(n.acceptData(c)&&(e=c[L.expando],e&&(b=L.cache[e]))){if(b.events)for(d in b.events)f[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);L.cache[e]&&delete L.cache[e]}delete M.cache[c[M.expando]]}}}),n.fn.extend({text:function(a){return J(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=ja(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=ja(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(oa(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&ma(oa(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(oa(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!da.test(a)&&!ia[(ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(aa,"<$1>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(oa(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(oa(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,m=this,o=l-1,p=a[0],q=n.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&ea.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(c=n.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=n.map(oa(c,"script"),ka),g=f.length;l>j;j++)h=c,j!==o&&(h=n.clone(h,!0,!0),g&&n.merge(f,oa(h,"script"))),b.call(this[j],h,j);if(g)for(i=f[f.length-1].ownerDocument,n.map(f,la),j=0;g>j;j++)h=f[j],fa.test(h.type||"")&&!L.access(h,"globalEval")&&n.contains(i,h)&&(h.src?n._evalUrl&&n._evalUrl(h.src):n.globalEval(h.textContent.replace(ha,"")))}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),g=e.length-1,h=0;g>=h;h++)c=h===g?this:this.clone(!0),n(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qa,ra={};function sa(b,c){var d,e=n(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:n.css(e[0],"display");return e.detach(),f}function ta(a){var b=l,c=ra[a];return c||(c=sa(a,b),"none"!==c&&c||(qa=(qa||n("').bind("load",function(){var t,o=e.isArray(i.paramName)?i.paramName:[i.paramName];r.unbind("load").bind("load",function(){var t;try{if(t=r.contents(),!t.length||!t[0].firstChild)throw new Error}catch(i){t=void 0}l(200,"success",{iframe:t}),e('').appendTo(n),window.setTimeout(function(){n.remove()},0)}),n.prop("target",r.prop("name")).prop("action",i.url).prop("method",i.type),i.formData&&e.each(i.formData,function(t,i){e('').prop("name",i.name).val(i.value).appendTo(n)}),i.fileInput&&i.fileInput.length&&"POST"===i.type&&(t=i.fileInput.clone(),i.fileInput.after(function(e){return t[e]}),i.paramName&&i.fileInput.each(function(t){e(this).prop("name",o[t]||i.paramName)}),n.append(i.fileInput).prop("enctype","multipart/form-data").prop("encoding","multipart/form-data"),i.fileInput.removeAttr("form")),n.submit(),t&&t.length&&i.fileInput.each(function(i,n){var r=e(t[i]);e(n).prop("name",r.prop("name")).attr("form",r.attr("form")),r.replaceWith(n)})}),n.append(r).appendTo(document.body)},abort:function(){r&&r.unbind("load").prop("src",a),n&&n.remove()}}}}),e.ajaxSetup({converters:{"iframe text":function(t){return t&&e(t[0].body).text()},"iframe json":function(t){return t&&e.parseJSON(e(t[0].body).text())},"iframe html":function(t){return t&&e(t[0].body).html()},"iframe xml":function(t){var i=t&&t[0];return i&&e.isXMLDoc(i)?i:e.parseXML(i.XMLDocument&&i.XMLDocument.xml||e(i.body).html())},"iframe script":function(t){return t&&e.globalEval(e(t[0].body).text())}}})}),$(function(){"use strict";$("#fileupload").fileupload({url:"server/php/"}),$("#fileupload").fileupload("option","redirect",window.location.href.replace(/\/[^\/]*$/,"/cors/result.html?%s")),"blueimp.github.io"===window.location.hostname?($("#fileupload").fileupload("option",{url:"//jquery-file-upload.appspot.com/",disableImageResize:/Android(?!.*Chrome)|Opera/.test(window.navigator.userAgent),maxFileSize:999e3,acceptFileTypes:/(\.|\/)(gif|jpe?g|png)$/i}),$.support.cors&&$.ajax({url:"//jquery-file-upload.appspot.com/",type:"HEAD"}).fail(function(){$('
    ').text("Upload server currently unavailable - "+new Date).appendTo("#fileupload")})):($("#fileupload").addClass("fileupload-processing"),$.ajax({url:$("#fileupload").fileupload("option","url"),dataType:"json",context:$("#fileupload")[0]}).always(function(){$(this).removeClass("fileupload-processing")}).done(function(e){$(this).fileupload("option","done").call(this,$.Event("done"),{result:e})}))}),function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","jquery.ui.widget"],e):"object"==typeof exports?e(require("jquery"),require("./vendor/jquery.ui.widget")):e(window.jQuery)}(function(e){"use strict";function t(t){var i="dragover"===t;return function(n){n.dataTransfer=n.originalEvent&&n.originalEvent.dataTransfer;var r=n.dataTransfer;r&&-1!==e.inArray("Files",r.types)&&this._trigger(t,e.Event(t,{delegatedEvent:n}))!==!1&&(n.preventDefault(),i&&(r.dropEffect="copy"))}}e.support.fileInput=!(new RegExp("(Android (1\\.[0156]|2\\.[01]))|(Windows Phone (OS 7|8\\.0))|(XBLWP)|(ZuneWP)|(WPDesktop)|(w(eb)?OSBrowser)|(webOS)|(Kindle/(1\\.0|2\\.[05]|3\\.0))").test(window.navigator.userAgent)||e('').prop("disabled")),e.support.xhrFileUpload=!(!window.ProgressEvent||!window.FileReader),e.support.xhrFormDataFileUpload=!!window.FormData,e.support.blobSlice=window.Blob&&(Blob.prototype.slice||Blob.prototype.webkitSlice||Blob.prototype.mozSlice),e.widget("blueimp.fileupload",{options:{dropZone:e(document),pasteZone:void 0,fileInput:void 0,replaceFileInput:!0,paramName:void 0,singleFileUploads:!0,limitMultiFileUploads:void 0,limitMultiFileUploadSize:void 0, +limitMultiFileUploadSizeOverhead:512,sequentialUploads:!1,limitConcurrentUploads:void 0,forceIframeTransport:!1,redirect:void 0,redirectParamName:void 0,postMessage:void 0,multipart:!0,maxChunkSize:void 0,uploadedBytes:void 0,recalculateProgress:!0,progressInterval:100,bitrateInterval:500,autoUpload:!0,messages:{uploadedBytes:"Uploaded bytes exceed file size"},i18n:function(t,i){return t=this.messages[t]||t.toString(),i&&e.each(i,function(e,i){t=t.replace("{"+e+"}",i)}),t},formData:function(e){return e.serializeArray()},add:function(t,i){return t.isDefaultPrevented()?!1:void((i.autoUpload||i.autoUpload!==!1&&e(this).fileupload("option","autoUpload"))&&i.process().done(function(){i.submit()}))},processData:!1,contentType:!1,cache:!1,timeout:0},_specialOptions:["fileInput","dropZone","pasteZone","multipart","forceIframeTransport"],_blobSlice:e.support.blobSlice&&function(){var e=this.slice||this.webkitSlice||this.mozSlice;return e.apply(this,arguments)},_BitrateTimer:function(){this.timestamp=Date.now?Date.now():(new Date).getTime(),this.loaded=0,this.bitrate=0,this.getBitrate=function(e,t,i){var n=e-this.timestamp;return(!this.bitrate||!i||n>i)&&(this.bitrate=(t-this.loaded)*(1e3/n)*8,this.loaded=t,this.timestamp=e),this.bitrate}},_isXHRUpload:function(t){return!t.forceIframeTransport&&(!t.multipart&&e.support.xhrFileUpload||e.support.xhrFormDataFileUpload)},_getFormData:function(t){var i;return"function"===e.type(t.formData)?t.formData(t.form):e.isArray(t.formData)?t.formData:"object"===e.type(t.formData)?(i=[],e.each(t.formData,function(e,t){i.push({name:e,value:t})}),i):[]},_getTotal:function(t){var i=0;return e.each(t,function(e,t){i+=t.size||1}),i},_initProgressObject:function(t){var i={loaded:0,total:0,bitrate:0};t._progress?e.extend(t._progress,i):t._progress=i},_initResponseObject:function(e){var t;if(e._response)for(t in e._response)e._response.hasOwnProperty(t)&&delete e._response[t];else e._response={}},_onProgress:function(t,i){if(t.lengthComputable){var n,r=Date.now?Date.now():(new Date).getTime();if(i._time&&i.progressInterval&&r-i._time").prop("href",t.url).prop("host");t.dataType="iframe "+(t.dataType||""),t.formData=this._getFormData(t),t.redirect&&i&&i!==location.host&&t.formData.push({name:t.redirectParamName||"redirect",value:t.redirect})},_initDataSettings:function(e){this._isXHRUpload(e)?(this._chunkedUpload(e,!0)||(e.data||this._initXHRData(e),this._initProgressListener(e)),e.postMessage&&(e.dataType="postmessage "+(e.dataType||""))):this._initIframeSettings(e)},_getParamName:function(t){var i=e(t.fileInput),n=t.paramName;return n?e.isArray(n)||(n=[n]):(n=[],i.each(function(){for(var t=e(this),i=t.prop("name")||"files[]",r=(t.prop("files")||[1]).length;r;)n.push(i),r-=1}),n.length||(n=[i.prop("name")||"files[]"])),n},_initFormSettings:function(t){t.form&&t.form.length||(t.form=e(t.fileInput.prop("form")),t.form.length||(t.form=e(this.options.fileInput.prop("form")))),t.paramName=this._getParamName(t),t.url||(t.url=t.form.prop("action")||location.href),t.type=(t.type||"string"===e.type(t.form.prop("method"))&&t.form.prop("method")||"").toUpperCase(),"POST"!==t.type&&"PUT"!==t.type&&"PATCH"!==t.type&&(t.type="POST"),t.formAcceptCharset||(t.formAcceptCharset=t.form.attr("accept-charset"))},_getAJAXSettings:function(t){var i=e.extend({},this.options,t);return this._initFormSettings(i),this._initDataSettings(i),i},_getDeferredState:function(e){return e.state?e.state():e.isResolved()?"resolved":e.isRejected()?"rejected":"pending"},_enhancePromise:function(e){return e.success=e.done,e.error=e.fail,e.complete=e.always,e},_getXHRPromise:function(t,i,n){var r=e.Deferred(),o=r.promise();return i=i||this.options.context||o,t===!0?r.resolveWith(i,n):t===!1&&r.rejectWith(i,n),o.abort=r.promise,this._enhancePromise(o)},_addConvenienceMethods:function(t,i){var n=this,r=function(t){return e.Deferred().resolveWith(n,t).promise()};i.process=function(t,o){return(t||o)&&(i._processQueue=this._processQueue=(this._processQueue||r([this])).pipe(function(){return i.errorThrown?e.Deferred().rejectWith(n,[i]).promise():r(arguments)}).pipe(t,o)),this._processQueue||r([this])},i.submit=function(){return"pending"!==this.state()&&(i.jqXHR=this.jqXHR=n._trigger("submit",e.Event("submit",{delegatedEvent:t}),this)!==!1&&n._onSend(t,this)),this.jqXHR||n._getXHRPromise()},i.abort=function(){return this.jqXHR?this.jqXHR.abort():(this.errorThrown="abort",n._trigger("fail",null,this),n._getXHRPromise(!1))},i.state=function(){return this.jqXHR?n._getDeferredState(this.jqXHR):this._processQueue?n._getDeferredState(this._processQueue):void 0},i.processing=function(){return!this.jqXHR&&this._processQueue&&"pending"===n._getDeferredState(this._processQueue)},i.progress=function(){return this._progress},i.response=function(){return this._response}},_getUploadedBytes:function(e){var t=e.getResponseHeader("Range"),i=t&&t.split("-"),n=i&&i.length>1&&parseInt(i[1],10);return n&&n+1},_chunkedUpload:function(t,i){t.uploadedBytes=t.uploadedBytes||0;var n,r,o=this,a=t.files[0],s=a.size,l=t.uploadedBytes,d=t.maxChunkSize||s,p=this._blobSlice,u=e.Deferred(),f=u.promise();return this._isXHRUpload(t)&&p&&(l||s>d)&&!t.data?i?!0:l>=s?(a.error=t.i18n("uploadedBytes"),this._getXHRPromise(!1,t.context,[null,"error",a.error])):(r=function(){var i=e.extend({},t),f=i._progress.loaded;i.blob=p.call(a,l,l+d,a.type),i.chunkSize=i.blob.size,i.contentRange="bytes "+l+"-"+(l+i.chunkSize-1)+"/"+s,o._initXHRData(i),o._initProgressListener(i),n=(o._trigger("chunksend",null,i)!==!1&&e.ajax(i)||o._getXHRPromise(!1,i.context)).done(function(n,a,d){l=o._getUploadedBytes(d)||l+i.chunkSize,f+i.chunkSize-i._progress.loaded&&o._onProgress(e.Event("progress",{lengthComputable:!0,loaded:l-i.uploadedBytes,total:l-i.uploadedBytes}),i),t.uploadedBytes=i.uploadedBytes=l,i.result=n,i.textStatus=a,i.jqXHR=d,o._trigger("chunkdone",null,i),o._trigger("chunkalways",null,i),s>l?r():u.resolveWith(i.context,[n,a,d])}).fail(function(e,t,n){i.jqXHR=e,i.textStatus=t,i.errorThrown=n,o._trigger("chunkfail",null,i),o._trigger("chunkalways",null,i),u.rejectWith(i.context,[e,t,n])})},this._enhancePromise(f),f.abort=function(){return n.abort()},r(),f):!1},_beforeSend:function(e,t){0===this._active&&(this._trigger("start"),this._bitrateTimer=new this._BitrateTimer,this._progress.loaded=this._progress.total=0,this._progress.bitrate=0),this._initResponseObject(t),this._initProgressObject(t),t._progress.loaded=t.loaded=t.uploadedBytes||0,t._progress.total=t.total=this._getTotal(t.files)||1,t._progress.bitrate=t.bitrate=0,this._active+=1,this._progress.loaded+=t.loaded,this._progress.total+=t.total},_onDone:function(t,i,n,r){var o=r._progress.total,a=r._response;r._progress.loadeds._sending)for(var n=s._slots.shift();n;){if("pending"===s._getDeferredState(n)){n.resolve();break}n=s._slots.shift()}0===s._active&&s._trigger("stop")})};return this._beforeSend(t,l),this.options.sequentialUploads||this.options.limitConcurrentUploads&&this.options.limitConcurrentUploads<=this._sending?(this.options.limitConcurrentUploads>1?(o=e.Deferred(),this._slots.push(o),a=o.pipe(d)):(this._sequence=this._sequence.pipe(d,d),a=this._sequence),a.abort=function(){return r=[void 0,"abort","abort"],n?n.abort():(o&&o.rejectWith(l.context,r),d())},this._enhancePromise(a)):d()},_onAdd:function(t,i){var n,r,o,a,s=this,l=!0,d=e.extend({},this.options,i),p=i.files,u=p.length,f=d.limitMultiFileUploads,c=d.limitMultiFileUploadSize,h=d.limitMultiFileUploadSizeOverhead,m=0,g=this._getParamName(d),_=0;if(!u)return!1;if(c&&void 0===p[0].size&&(c=void 0),(d.singleFileUploads||f||c)&&this._isXHRUpload(d))if(d.singleFileUploads||c||!f)if(!d.singleFileUploads&&c)for(o=[],n=[],a=0;u>a;a+=1)m+=p[a].size+h,(a+1===u||m+p[a+1].size+h>c||f&&a+1-_>=f)&&(o.push(p.slice(_,a+1)),r=g.slice(_,a+1),r.length||(r=g),n.push(r),_=a+1,m=0);else n=g;else for(o=[],n=[],a=0;u>a;a+=f)o.push(p.slice(a,a+f)),r=g.slice(a,a+f),r.length||(r=g),n.push(r);else o=[p],n=[g];return i.originalFiles=p,e.each(o||p,function(r,a){var d=e.extend({},i);return d.files=o?a:[a],d.paramName=n[r],s._initResponseObject(d),s._initProgressObject(d),s._addConvenienceMethods(t,d),l=s._trigger("add",e.Event("add",{delegatedEvent:t}),d)}),l},_replaceFileInput:function(t){var i=t.fileInput,n=i.clone(!0),r=i.is(document.activeElement);t.fileInputClone=n,e("
    ").append(n)[0].reset(),i.after(n).detach(),r&&n.focus(),e.cleanData(i.unbind("remove")),this.options.fileInput=this.options.fileInput.map(function(e,t){return t===i[0]?n[0]:t}),i[0]===this.element[0]&&(this.element=n)},_handleFileTreeEntry:function(t,i){var n,r=this,o=e.Deferred(),a=function(e){e&&!e.entry&&(e.entry=t),o.resolve([e])},s=function(e){r._handleFileTreeEntries(e,i+t.name+"/").done(function(e){o.resolve(e)}).fail(a)},l=function(){n.readEntries(function(e){e.length?(d=d.concat(e),l()):s(d)},a)},d=[];return i=i||"",t.isFile?t._file?(t._file.relativePath=i,o.resolve(t._file)):t.file(function(e){e.relativePath=i,o.resolve(e)},a):t.isDirectory?(n=t.createReader(),l()):o.resolve([]),o.promise()},_handleFileTreeEntries:function(t,i){var n=this;return e.when.apply(e,e.map(t,function(e){return n._handleFileTreeEntry(e,i)})).pipe(function(){return Array.prototype.concat.apply([],arguments)})},_getDroppedFiles:function(t){t=t||{};var i=t.items;return i&&i.length&&(i[0].webkitGetAsEntry||i[0].getAsEntry)?this._handleFileTreeEntries(e.map(i,function(e){var t;return e.webkitGetAsEntry?(t=e.webkitGetAsEntry(),t&&(t._file=e.getAsFile()),t):e.getAsEntry()})):e.Deferred().resolve(e.makeArray(t.files)).promise()},_getSingleFileInputFiles:function(t){t=e(t);var i,n,r=t.prop("webkitEntries")||t.prop("entries");if(r&&r.length)return this._handleFileTreeEntries(r);if(i=e.makeArray(t.prop("files")),i.length)void 0===i[0].name&&i[0].fileName&&e.each(i,function(e,t){t.name=t.fileName,t.size=t.fileSize});else{if(n=t.prop("value"),!n)return e.Deferred().resolve([]).promise();i=[{name:n.replace(/^.*\\/,"")}]}return e.Deferred().resolve(i).promise()},_getFileInputFiles:function(t){return t instanceof e&&1!==t.length?e.when.apply(e,e.map(t,this._getSingleFileInputFiles)).pipe(function(){return Array.prototype.concat.apply([],arguments)}):this._getSingleFileInputFiles(t)},_onChange:function(t){var i=this,n={fileInput:e(t.target),form:e(t.target.form)};this._getFileInputFiles(n.fileInput).always(function(r){n.files=r,i.options.replaceFileInput&&i._replaceFileInput(n),i._trigger("change",e.Event("change",{delegatedEvent:t}),n)!==!1&&i._onAdd(t,n)})},_onPaste:function(t){var i=t.originalEvent&&t.originalEvent.clipboardData&&t.originalEvent.clipboardData.items,n={files:[]};i&&i.length&&(e.each(i,function(e,t){var i=t.getAsFile&&t.getAsFile();i&&n.files.push(i)}),this._trigger("paste",e.Event("paste",{delegatedEvent:t}),n)!==!1&&this._onAdd(t,n))},_onDrop:function(t){t.dataTransfer=t.originalEvent&&t.originalEvent.dataTransfer;var i=this,n=t.dataTransfer,r={};n&&n.files&&n.files.length&&(t.preventDefault(),this._getDroppedFiles(n).always(function(n){r.files=n,i._trigger("drop",e.Event("drop",{delegatedEvent:t}),r)!==!1&&i._onAdd(t,r)}))},_onDragOver:t("dragover"),_onDragEnter:t("dragenter"),_onDragLeave:t("dragleave"),_initEventHandlers:function(){this._isXHRUpload(this.options)&&(this._on(this.options.dropZone,{dragover:this._onDragOver,drop:this._onDrop,dragenter:this._onDragEnter,dragleave:this._onDragLeave}),this._on(this.options.pasteZone,{paste:this._onPaste})),e.support.fileInput&&this._on(this.options.fileInput,{change:this._onChange})},_destroyEventHandlers:function(){this._off(this.options.dropZone,"dragenter dragleave dragover drop"),this._off(this.options.pasteZone,"paste"),this._off(this.options.fileInput,"change")},_setOption:function(t,i){var n=-1!==e.inArray(t,this._specialOptions);n&&this._destroyEventHandlers(),this._super(t,i),n&&(this._initSpecialOptions(),this._initEventHandlers())},_initSpecialOptions:function(){var t=this.options;void 0===t.fileInput?t.fileInput=this.element.is('input[type="file"]')?this.element:this.element.find('input[type="file"]'):t.fileInput instanceof e||(t.fileInput=e(t.fileInput)),t.dropZone instanceof e||(t.dropZone=e(t.dropZone)),t.pasteZone instanceof e||(t.pasteZone=e(t.pasteZone))},_getRegExp:function(e){var t=e.split("/"),i=t.pop();return t.shift(),new RegExp(t.join("/"),i)},_isRegExpOption:function(t,i){return"url"!==t&&"string"===e.type(i)&&/^\/.*\/[igm]{0,3}$/.test(i)},_initDataAttributes:function(){var t=this,i=this.options,n=this.element.data();e.each(this.element[0].attributes,function(e,r){var o,a=r.name.toLowerCase();/^data-/.test(a)&&(a=a.slice(5).replace(/-[a-z]/g,function(e){return e.charAt(1).toUpperCase()}),o=n[a],t._isRegExpOption(a,o)&&(o=t._getRegExp(o)),i[a]=o)})},_create:function(){this._initDataAttributes(),this._initSpecialOptions(),this._slots=[],this._sequence=this._getXHRPromise(!0),this._sending=this._active=0,this._initProgressObject(this),this._initEventHandlers()},active:function(){return this._active},progress:function(){return this._progress},add:function(t){var i=this;t&&!this.options.disabled&&(t.fileInput&&!t.files?this._getFileInputFiles(t.fileInput).always(function(e){t.files=e,i._onAdd(null,t)}):(t.files=e.makeArray(t.files),this._onAdd(null,t)))},send:function(t){if(t&&!this.options.disabled){if(t.fileInput&&!t.files){var i,n,r=this,o=e.Deferred(),a=o.promise();return a.abort=function(){return n=!0,i?i.abort():(o.reject(null,"abort","abort"),a)},this._getFileInputFiles(t.fileInput).always(function(e){if(!n){if(!e.length)return void o.reject();t.files=e,i=r._onSend(null,t),i.then(function(e,t,i){o.resolve(e,t,i)},function(e,t,i){o.reject(e,t,i)})}}),this._enhancePromise(a)}if(t.files=e.makeArray(t.files),t.files.length)return this._onSend(null,t)}return this._getXHRPromise(!1,t&&t.context)}})}); \ No newline at end of file diff --git a/public/js/jquery.iframe-transport.js b/public/js/jquery.iframe-transport.js new file mode 100755 index 0000000..a7d34e0 --- /dev/null +++ b/public/js/jquery.iframe-transport.js @@ -0,0 +1,217 @@ +/* + * jQuery Iframe Transport Plugin + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2011, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/MIT + */ + +/* global define, require, window, document */ + +(function (factory) { + 'use strict'; + if (typeof define === 'function' && define.amd) { + // Register as an anonymous AMD module: + define(['jquery'], factory); + } else if (typeof exports === 'object') { + // Node/CommonJS: + factory(require('jquery')); + } else { + // Browser globals: + factory(window.jQuery); + } +}(function ($) { + 'use strict'; + + // Helper variable to create unique names for the transport iframes: + var counter = 0; + + // The iframe transport accepts four additional options: + // options.fileInput: a jQuery collection of file input fields + // options.paramName: the parameter name for the file form data, + // overrides the name property of the file input field(s), + // can be a string or an array of strings. + // options.formData: an array of objects with name and value properties, + // equivalent to the return data of .serializeArray(), e.g.: + // [{name: 'a', value: 1}, {name: 'b', value: 2}] + // options.initialIframeSrc: the URL of the initial iframe src, + // by default set to "javascript:false;" + $.ajaxTransport('iframe', function (options) { + if (options.async) { + // javascript:false as initial iframe src + // prevents warning popups on HTTPS in IE6: + /*jshint scripturl: true */ + var initialIframeSrc = options.initialIframeSrc || 'javascript:false;', + /*jshint scripturl: false */ + form, + iframe, + addParamChar; + return { + send: function (_, completeCallback) { + form = $('
    '); + form.attr('accept-charset', options.formAcceptCharset); + addParamChar = /\?/.test(options.url) ? '&' : '?'; + // XDomainRequest only supports GET and POST: + if (options.type === 'DELETE') { + options.url = options.url + addParamChar + '_method=DELETE'; + options.type = 'POST'; + } else if (options.type === 'PUT') { + options.url = options.url + addParamChar + '_method=PUT'; + options.type = 'POST'; + } else if (options.type === 'PATCH') { + options.url = options.url + addParamChar + '_method=PATCH'; + options.type = 'POST'; + } + // IE versions below IE8 cannot set the name property of + // elements that have already been added to the DOM, + // so we set the name along with the iframe HTML markup: + counter += 1; + iframe = $( + '' + ).bind('load', function () { + var fileInputClones, + paramNames = $.isArray(options.paramName) ? + options.paramName : [options.paramName]; + iframe + .unbind('load') + .bind('load', function () { + var response; + // Wrap in a try/catch block to catch exceptions thrown + // when trying to access cross-domain iframe contents: + try { + response = iframe.contents(); + // Google Chrome and Firefox do not throw an + // exception when calling iframe.contents() on + // cross-domain requests, so we unify the response: + if (!response.length || !response[0].firstChild) { + throw new Error(); + } + } catch (e) { + response = undefined; + } + // The complete callback returns the + // iframe content document as response object: + completeCallback( + 200, + 'success', + {'iframe': response} + ); + // Fix for IE endless progress bar activity bug + // (happens on form submits to iframe targets): + $('') + .appendTo(form); + window.setTimeout(function () { + // Removing the form in a setTimeout call + // allows Chrome's developer tools to display + // the response result + form.remove(); + }, 0); + }); + form + .prop('target', iframe.prop('name')) + .prop('action', options.url) + .prop('method', options.type); + if (options.formData) { + $.each(options.formData, function (index, field) { + $('') + .prop('name', field.name) + .val(field.value) + .appendTo(form); + }); + } + if (options.fileInput && options.fileInput.length && + options.type === 'POST') { + fileInputClones = options.fileInput.clone(); + // Insert a clone for each file input field: + options.fileInput.after(function (index) { + return fileInputClones[index]; + }); + if (options.paramName) { + options.fileInput.each(function (index) { + $(this).prop( + 'name', + paramNames[index] || options.paramName + ); + }); + } + // Appending the file input fields to the hidden form + // removes them from their original location: + form + .append(options.fileInput) + .prop('enctype', 'multipart/form-data') + // enctype must be set as encoding for IE: + .prop('encoding', 'multipart/form-data'); + // Remove the HTML5 form attribute from the input(s): + options.fileInput.removeAttr('form'); + } + form.submit(); + // Insert the file input fields at their original location + // by replacing the clones with the originals: + if (fileInputClones && fileInputClones.length) { + options.fileInput.each(function (index, input) { + var clone = $(fileInputClones[index]); + // Restore the original name and form properties: + $(input) + .prop('name', clone.prop('name')) + .attr('form', clone.attr('form')); + clone.replaceWith(input); + }); + } + }); + form.append(iframe).appendTo(document.body); + }, + abort: function () { + if (iframe) { + // javascript:false as iframe src aborts the request + // and prevents warning popups on HTTPS in IE6. + // concat is used to avoid the "Script URL" JSLint error: + iframe + .unbind('load') + .prop('src', initialIframeSrc); + } + if (form) { + form.remove(); + } + } + }; + } + }); + + // The iframe transport returns the iframe content document as response. + // The following adds converters from iframe to text, json, html, xml + // and script. + // Please note that the Content-Type for JSON responses has to be text/plain + // or text/html, if the browser doesn't include application/json in the + // Accept header, else IE will show a download dialog. + // The Content-Type for XML responses on the other hand has to be always + // application/xml or text/xml, so IE properly parses the XML response. + // See also + // https://github.com/blueimp/jQuery-File-Upload/wiki/Setup#content-type-negotiation + $.ajaxSetup({ + converters: { + 'iframe text': function (iframe) { + return iframe && $(iframe[0].body).text(); + }, + 'iframe json': function (iframe) { + return iframe && $.parseJSON($(iframe[0].body).text()); + }, + 'iframe html': function (iframe) { + return iframe && $(iframe[0].body).html(); + }, + 'iframe xml': function (iframe) { + var xmlDoc = iframe && iframe[0]; + return xmlDoc && $.isXMLDoc(xmlDoc) ? xmlDoc : + $.parseXML((xmlDoc.XMLDocument && xmlDoc.XMLDocument.xml) || + $(xmlDoc.body).html()); + }, + 'iframe script': function (iframe) { + return iframe && $.globalEval($(iframe[0].body).text()); + } + } + }); + +})); diff --git a/public/js/lights.js b/public/js/lights.js new file mode 100644 index 0000000..24bde70 --- /dev/null +++ b/public/js/lights.js @@ -0,0 +1,45 @@ +/** + * Created by ZE on 2015/11/09. + */ + + +//'+cot_tl_bodyCSS+cot_tl_fixedCSS+cot_tl_popCSS+''); + + +function COT(cot_tl_theLogo,cot_tl_LogoType,LogoPosition,theAffiliate) +{document.write('
    '); + document.write('<>'); + document.write('
    ');} + +//if(window.location.protocol == "http:") +COT("http://www.honeybearplayhomes.com/resources/flashing%20christmas%20lights.gif", "SC2", "none"); +//]]> diff --git a/public/js/loadimage.demo.js b/public/js/loadimage.demo.js new file mode 100644 index 0000000..bc3d263 --- /dev/null +++ b/public/js/loadimage.demo.js @@ -0,0 +1,142 @@ +/** + * Created by ZE on 19/10/2015. + */ + +/* + * JavaScript Load Image Demo JS 1.9.1 + * https://github.com/blueimp/JavaScript-Load-Image + * + * Copyright 2013, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/MIT + */ + +/*global window, document, loadImage, HTMLCanvasElement, $ */ + +$(function () { + 'use strict'; + + var result = $('#result'), + exifNode = $('#exif'), + thumbNode = $('#thumbnail'), + actionsNode = $('#actions'), + currentFile, + replaceResults = function (img) { + var content; + if (!(img.src || img instanceof HTMLCanvasElement)) { + content = $('Loading image file failed'); + } else { + content = $('').append(img) + .attr('download', currentFile.name) + .attr('href', img.src || img.toDataURL()); + } + result.children().replaceWith(content); + if (img.getContext) { + actionsNode.show(); + } + }, + displayImage = function (file, options) { + currentFile = file; + if (!loadImage( + file, + replaceResults, + options + )) { + result.children().replaceWith( + $('Your browser does not support the URL or FileReader API.') + ); + } + }, + displayExifData = function (exif) { + var thumbnail = exif.get('Thumbnail'), + tags = exif.getAll(), + table = exifNode.find('table').empty(), + row = $(''), + cell = $(''), + prop; + if (thumbnail) { + thumbNode.empty(); + loadImage(thumbnail, function (img) { + thumbNode.append(img).show(); + }, {orientation: exif.get('Orientation')}); + } + for (prop in tags) { + if (tags.hasOwnProperty(prop)) { + table.append( + row.clone() + .append(cell.clone().text(prop)) + .append(cell.clone().text(tags[prop])) + ); + } + } + exifNode.show(); + }, + dropChangeHandler = function (e) { + e.preventDefault(); + e = e.originalEvent; + var target = e.dataTransfer || e.target, + file = target && target.files && target.files[0], + options = { + maxWidth: result.width(), + canvas: true + }; + if (!file) { + return; + } + exifNode.hide(); + thumbNode.hide(); + loadImage.parseMetaData(file, function (data) { + if (data.exif) { + options.orientation = data.exif.get('Orientation'); + displayExifData(data.exif); + } + displayImage(file, options); + }); + }, + coordinates; + // Hide URL/FileReader API requirement message in capable browsers: + if (window.createObjectURL || window.URL || window.webkitURL || window.FileReader) { + result.children().hide(); + } + $(document) + .on('dragover', function (e) { + e.preventDefault(); + e = e.originalEvent; + e.dataTransfer.dropEffect = 'copy'; + }) + .on('drop', dropChangeHandler); + $('#file-input').on('change', dropChangeHandler); + $('#edit').on('click', function (event) { + event.preventDefault(); + var imgNode = result.find('img, canvas'), + img = imgNode[0]; + imgNode.Jcrop({ + setSelect: [40, 40, img.width - 40, img.height - 40], + onSelect: function (coords) { + coordinates = coords; + }, + onRelease: function () { + coordinates = null; + } + }).parent().on('click', function (event) { + event.preventDefault(); + }); + }); + $('#crop').on('click', function (event) { + event.preventDefault(); + var img = result.find('img, canvas')[0]; + if (img && coordinates) { + replaceResults(loadImage.scale(img, { + left: coordinates.x, + top: coordinates.y, + sourceWidth: coordinates.w, + sourceHeight: coordinates.h, + minWidth: result.width() + })); + coordinates = null; + } + }); + +}); \ No newline at end of file diff --git a/public/js/main.js b/public/js/main.js new file mode 100755 index 0000000..85d085c --- /dev/null +++ b/public/js/main.js @@ -0,0 +1,75 @@ +/* + * jQuery File Upload Plugin JS Example + * https://github.com/blueimp/jQuery-File-Upload + * + * Copyright 2010, Sebastian Tschan + * https://blueimp.net + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/MIT + */ + +/* global $, window */ + +$(function () { + 'use strict'; + + // Initialize the jQuery File Upload widget: + $('#fileupload').fileupload({ + // Uncomment the following to send cross-domain cookies: + //xhrFields: {withCredentials: true}, + url: 'server/php/' + }); + + // Enable iframe cross-domain access via redirect option: + $('#fileupload').fileupload( + 'option', + 'redirect', + window.location.href.replace( + /\/[^\/]*$/, + '/cors/result.html?%s' + ) + ); + + if (window.location.hostname === 'blueimp.github.io') { + // Demo settings: + $('#fileupload').fileupload('option', { + url: '//jquery-file-upload.appspot.com/', + // Enable image resizing, except for Android and Opera, + // which actually support image resizing, but fail to + // send Blob objects via XHR requests: + disableImageResize: /Android(?!.*Chrome)|Opera/ + .test(window.navigator.userAgent), + maxFileSize: 999000, + acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i + }); + // Upload server status check for browsers with CORS support: + if ($.support.cors) { + $.ajax({ + url: '//jquery-file-upload.appspot.com/', + type: 'HEAD' + }).fail(function () { + $('
    ') + .text('Upload server currently unavailable - ' + + new Date()) + .appendTo('#fileupload'); + }); + } + } else { + // Load existing files: + $('#fileupload').addClass('fileupload-processing'); + $.ajax({ + // Uncomment the following to send cross-domain cookies: + //xhrFields: {withCredentials: true}, + url: $('#fileupload').fileupload('option', 'url'), + dataType: 'json', + context: $('#fileupload')[0] + }).always(function () { + $(this).removeClass('fileupload-processing'); + }).done(function (result) { + $(this).fileupload('option', 'done') + .call(this, $.Event('done'), {result: result}); + }); + } + +}); diff --git a/public/js/moment-with-locales.js b/public/js/moment-with-locales.js new file mode 100644 index 0000000..e2bc4a1 --- /dev/null +++ b/public/js/moment-with-locales.js @@ -0,0 +1,9977 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + global.moment = factory() +}(this, function () { 'use strict'; + + var hookCallback; + + function utils_hooks__hooks () { + return hookCallback.apply(null, arguments); + } + + // This is done to register the method called with moment() + // without creating circular dependencies. + function setHookCallback (callback) { + hookCallback = callback; + } + + function isArray(input) { + return Object.prototype.toString.call(input) === '[object Array]'; + } + + function isDate(input) { + return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]'; + } + + function map(arr, fn) { + var res = [], i; + for (i = 0; i < arr.length; ++i) { + res.push(fn(arr[i], i)); + } + return res; + } + + function hasOwnProp(a, b) { + return Object.prototype.hasOwnProperty.call(a, b); + } + + function extend(a, b) { + for (var i in b) { + if (hasOwnProp(b, i)) { + a[i] = b[i]; + } + } + + if (hasOwnProp(b, 'toString')) { + a.toString = b.toString; + } + + if (hasOwnProp(b, 'valueOf')) { + a.valueOf = b.valueOf; + } + + return a; + } + + function create_utc__createUTC (input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, true).utc(); + } + + function defaultParsingFlags() { + // We need to deep clone this object. + return { + empty : false, + unusedTokens : [], + unusedInput : [], + overflow : -2, + charsLeftOver : 0, + nullInput : false, + invalidMonth : null, + invalidFormat : false, + userInvalidated : false, + iso : false + }; + } + + function getParsingFlags(m) { + if (m._pf == null) { + m._pf = defaultParsingFlags(); + } + return m._pf; + } + + function valid__isValid(m) { + if (m._isValid == null) { + var flags = getParsingFlags(m); + m._isValid = !isNaN(m._d.getTime()) && + flags.overflow < 0 && + !flags.empty && + !flags.invalidMonth && + !flags.invalidWeekday && + !flags.nullInput && + !flags.invalidFormat && + !flags.userInvalidated; + + if (m._strict) { + m._isValid = m._isValid && + flags.charsLeftOver === 0 && + flags.unusedTokens.length === 0 && + flags.bigHour === undefined; + } + } + return m._isValid; + } + + function valid__createInvalid (flags) { + var m = create_utc__createUTC(NaN); + if (flags != null) { + extend(getParsingFlags(m), flags); + } + else { + getParsingFlags(m).userInvalidated = true; + } + + return m; + } + + var momentProperties = utils_hooks__hooks.momentProperties = []; + + function copyConfig(to, from) { + var i, prop, val; + + if (typeof from._isAMomentObject !== 'undefined') { + to._isAMomentObject = from._isAMomentObject; + } + if (typeof from._i !== 'undefined') { + to._i = from._i; + } + if (typeof from._f !== 'undefined') { + to._f = from._f; + } + if (typeof from._l !== 'undefined') { + to._l = from._l; + } + if (typeof from._strict !== 'undefined') { + to._strict = from._strict; + } + if (typeof from._tzm !== 'undefined') { + to._tzm = from._tzm; + } + if (typeof from._isUTC !== 'undefined') { + to._isUTC = from._isUTC; + } + if (typeof from._offset !== 'undefined') { + to._offset = from._offset; + } + if (typeof from._pf !== 'undefined') { + to._pf = getParsingFlags(from); + } + if (typeof from._locale !== 'undefined') { + to._locale = from._locale; + } + + if (momentProperties.length > 0) { + for (i in momentProperties) { + prop = momentProperties[i]; + val = from[prop]; + if (typeof val !== 'undefined') { + to[prop] = val; + } + } + } + + return to; + } + + var updateInProgress = false; + + // Moment prototype object + function Moment(config) { + copyConfig(this, config); + this._d = new Date(config._d != null ? config._d.getTime() : NaN); + // Prevent infinite loop in case updateOffset creates new moment + // objects. + if (updateInProgress === false) { + updateInProgress = true; + utils_hooks__hooks.updateOffset(this); + updateInProgress = false; + } + } + + function isMoment (obj) { + return obj instanceof Moment || (obj != null && obj._isAMomentObject != null); + } + + function absFloor (number) { + if (number < 0) { + return Math.ceil(number); + } else { + return Math.floor(number); + } + } + + function toInt(argumentForCoercion) { + var coercedNumber = +argumentForCoercion, + value = 0; + + if (coercedNumber !== 0 && isFinite(coercedNumber)) { + value = absFloor(coercedNumber); + } + + return value; + } + + function compareArrays(array1, array2, dontConvert) { + var len = Math.min(array1.length, array2.length), + lengthDiff = Math.abs(array1.length - array2.length), + diffs = 0, + i; + for (i = 0; i < len; i++) { + if ((dontConvert && array1[i] !== array2[i]) || + (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) { + diffs++; + } + } + return diffs + lengthDiff; + } + + function Locale() { + } + + var locales = {}; + var globalLocale; + + function normalizeLocale(key) { + return key ? key.toLowerCase().replace('_', '-') : key; + } + + // pick the locale from the array + // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each + // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root + function chooseLocale(names) { + var i = 0, j, next, locale, split; + + while (i < names.length) { + split = normalizeLocale(names[i]).split('-'); + j = split.length; + next = normalizeLocale(names[i + 1]); + next = next ? next.split('-') : null; + while (j > 0) { + locale = loadLocale(split.slice(0, j).join('-')); + if (locale) { + return locale; + } + if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) { + //the next array item is better than a shallower substring of this one + break; + } + j--; + } + i++; + } + return null; + } + + function loadLocale(name) { + var oldLocale = null; + // TODO: Find a better way to register and load all the locales in Node + if (!locales[name] && typeof module !== 'undefined' && + module && module.exports) { + try { + oldLocale = globalLocale._abbr; + require('./locale/' + name); + // because defineLocale currently also sets the global locale, we + // want to undo that for lazy loaded locales + locale_locales__getSetGlobalLocale(oldLocale); + } catch (e) { } + } + return locales[name]; + } + + // This function will load locale and then set the global locale. If + // no arguments are passed in, it will simply return the current global + // locale key. + function locale_locales__getSetGlobalLocale (key, values) { + var data; + if (key) { + if (typeof values === 'undefined') { + data = locale_locales__getLocale(key); + } + else { + data = defineLocale(key, values); + } + + if (data) { + // moment.duration._locale = moment._locale = data; + globalLocale = data; + } + } + + return globalLocale._abbr; + } + + function defineLocale (name, values) { + if (values !== null) { + values.abbr = name; + locales[name] = locales[name] || new Locale(); + locales[name].set(values); + + // backwards compat for now: also set the locale + locale_locales__getSetGlobalLocale(name); + + return locales[name]; + } else { + // useful for testing + delete locales[name]; + return null; + } + } + + // returns locale data + function locale_locales__getLocale (key) { + var locale; + + if (key && key._locale && key._locale._abbr) { + key = key._locale._abbr; + } + + if (!key) { + return globalLocale; + } + + if (!isArray(key)) { + //short-circuit everything else + locale = loadLocale(key); + if (locale) { + return locale; + } + key = [key]; + } + + return chooseLocale(key); + } + + var aliases = {}; + + function addUnitAlias (unit, shorthand) { + var lowerCase = unit.toLowerCase(); + aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit; + } + + function normalizeUnits(units) { + return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined; + } + + function normalizeObjectUnits(inputObject) { + var normalizedInput = {}, + normalizedProp, + prop; + + for (prop in inputObject) { + if (hasOwnProp(inputObject, prop)) { + normalizedProp = normalizeUnits(prop); + if (normalizedProp) { + normalizedInput[normalizedProp] = inputObject[prop]; + } + } + } + + return normalizedInput; + } + + function makeGetSet (unit, keepTime) { + return function (value) { + if (value != null) { + get_set__set(this, unit, value); + utils_hooks__hooks.updateOffset(this, keepTime); + return this; + } else { + return get_set__get(this, unit); + } + }; + } + + function get_set__get (mom, unit) { + return mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit](); + } + + function get_set__set (mom, unit, value) { + return mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value); + } + + // MOMENTS + + function getSet (units, value) { + var unit; + if (typeof units === 'object') { + for (unit in units) { + this.set(unit, units[unit]); + } + } else { + units = normalizeUnits(units); + if (typeof this[units] === 'function') { + return this[units](value); + } + } + return this; + } + + function zeroFill(number, targetLength, forceSign) { + var absNumber = '' + Math.abs(number), + zerosToFill = targetLength - absNumber.length, + sign = number >= 0; + return (sign ? (forceSign ? '+' : '') : '-') + + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber; + } + + var formattingTokens = /(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g; + + var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g; + + var formatFunctions = {}; + + var formatTokenFunctions = {}; + + // token: 'M' + // padded: ['MM', 2] + // ordinal: 'Mo' + // callback: function () { this.month() + 1 } + function addFormatToken (token, padded, ordinal, callback) { + var func = callback; + if (typeof callback === 'string') { + func = function () { + return this[callback](); + }; + } + if (token) { + formatTokenFunctions[token] = func; + } + if (padded) { + formatTokenFunctions[padded[0]] = function () { + return zeroFill(func.apply(this, arguments), padded[1], padded[2]); + }; + } + if (ordinal) { + formatTokenFunctions[ordinal] = function () { + return this.localeData().ordinal(func.apply(this, arguments), token); + }; + } + } + + function removeFormattingTokens(input) { + if (input.match(/\[[\s\S]/)) { + return input.replace(/^\[|\]$/g, ''); + } + return input.replace(/\\/g, ''); + } + + function makeFormatFunction(format) { + var array = format.match(formattingTokens), i, length; + + for (i = 0, length = array.length; i < length; i++) { + if (formatTokenFunctions[array[i]]) { + array[i] = formatTokenFunctions[array[i]]; + } else { + array[i] = removeFormattingTokens(array[i]); + } + } + + return function (mom) { + var output = ''; + for (i = 0; i < length; i++) { + output += array[i] instanceof Function ? array[i].call(mom, format) : array[i]; + } + return output; + }; + } + + // format date using native date object + function formatMoment(m, format) { + if (!m.isValid()) { + return m.localeData().invalidDate(); + } + + format = expandFormat(format, m.localeData()); + formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format); + + return formatFunctions[format](m); + } + + function expandFormat(format, locale) { + var i = 5; + + function replaceLongDateFormatTokens(input) { + return locale.longDateFormat(input) || input; + } + + localFormattingTokens.lastIndex = 0; + while (i >= 0 && localFormattingTokens.test(format)) { + format = format.replace(localFormattingTokens, replaceLongDateFormatTokens); + localFormattingTokens.lastIndex = 0; + i -= 1; + } + + return format; + } + + var match1 = /\d/; // 0 - 9 + var match2 = /\d\d/; // 00 - 99 + var match3 = /\d{3}/; // 000 - 999 + var match4 = /\d{4}/; // 0000 - 9999 + var match6 = /[+-]?\d{6}/; // -999999 - 999999 + var match1to2 = /\d\d?/; // 0 - 99 + var match1to3 = /\d{1,3}/; // 0 - 999 + var match1to4 = /\d{1,4}/; // 0 - 9999 + var match1to6 = /[+-]?\d{1,6}/; // -999999 - 999999 + + var matchUnsigned = /\d+/; // 0 - inf + var matchSigned = /[+-]?\d+/; // -inf - inf + + var matchOffset = /Z|[+-]\d\d:?\d\d/gi; // +00:00 -00:00 +0000 -0000 or Z + + var matchTimestamp = /[+-]?\d+(\.\d{1,3})?/; // 123456789 123456789.123 + + // any word (or two) characters or numbers including two/three word month in arabic. + var matchWord = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i; + + var regexes = {}; + + function isFunction (sth) { + // https://github.com/moment/moment/issues/2325 + return typeof sth === 'function' && + Object.prototype.toString.call(sth) === '[object Function]'; + } + + + function addRegexToken (token, regex, strictRegex) { + regexes[token] = isFunction(regex) ? regex : function (isStrict) { + return (isStrict && strictRegex) ? strictRegex : regex; + }; + } + + function getParseRegexForToken (token, config) { + if (!hasOwnProp(regexes, token)) { + return new RegExp(unescapeFormat(token)); + } + + return regexes[token](config._strict, config._locale); + } + + // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript + function unescapeFormat(s) { + return s.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) { + return p1 || p2 || p3 || p4; + }).replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); + } + + var tokens = {}; + + function addParseToken (token, callback) { + var i, func = callback; + if (typeof token === 'string') { + token = [token]; + } + if (typeof callback === 'number') { + func = function (input, array) { + array[callback] = toInt(input); + }; + } + for (i = 0; i < token.length; i++) { + tokens[token[i]] = func; + } + } + + function addWeekParseToken (token, callback) { + addParseToken(token, function (input, array, config, token) { + config._w = config._w || {}; + callback(input, config._w, config, token); + }); + } + + function addTimeToArrayFromToken(token, input, config) { + if (input != null && hasOwnProp(tokens, token)) { + tokens[token](input, config._a, config, token); + } + } + + var YEAR = 0; + var MONTH = 1; + var DATE = 2; + var HOUR = 3; + var MINUTE = 4; + var SECOND = 5; + var MILLISECOND = 6; + + function daysInMonth(year, month) { + return new Date(Date.UTC(year, month + 1, 0)).getUTCDate(); + } + + // FORMATTING + + addFormatToken('M', ['MM', 2], 'Mo', function () { + return this.month() + 1; + }); + + addFormatToken('MMM', 0, 0, function (format) { + return this.localeData().monthsShort(this, format); + }); + + addFormatToken('MMMM', 0, 0, function (format) { + return this.localeData().months(this, format); + }); + + // ALIASES + + addUnitAlias('month', 'M'); + + // PARSING + + addRegexToken('M', match1to2); + addRegexToken('MM', match1to2, match2); + addRegexToken('MMM', matchWord); + addRegexToken('MMMM', matchWord); + + addParseToken(['M', 'MM'], function (input, array) { + array[MONTH] = toInt(input) - 1; + }); + + addParseToken(['MMM', 'MMMM'], function (input, array, config, token) { + var month = config._locale.monthsParse(input, token, config._strict); + // if we didn't find a month name, mark the date as invalid. + if (month != null) { + array[MONTH] = month; + } else { + getParsingFlags(config).invalidMonth = input; + } + }); + + // LOCALES + + var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'); + function localeMonths (m) { + return this._months[m.month()]; + } + + var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'); + function localeMonthsShort (m) { + return this._monthsShort[m.month()]; + } + + function localeMonthsParse (monthName, format, strict) { + var i, mom, regex; + + if (!this._monthsParse) { + this._monthsParse = []; + this._longMonthsParse = []; + this._shortMonthsParse = []; + } + + for (i = 0; i < 12; i++) { + // make the regex if we don't have it already + mom = create_utc__createUTC([2000, i]); + if (strict && !this._longMonthsParse[i]) { + this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i'); + this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i'); + } + if (!strict && !this._monthsParse[i]) { + regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, ''); + this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) { + return i; + } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) { + return i; + } else if (!strict && this._monthsParse[i].test(monthName)) { + return i; + } + } + } + + // MOMENTS + + function setMonth (mom, value) { + var dayOfMonth; + + // TODO: Move this out of here! + if (typeof value === 'string') { + value = mom.localeData().monthsParse(value); + // TODO: Another silent failure? + if (typeof value !== 'number') { + return mom; + } + } + + dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value)); + mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth); + return mom; + } + + function getSetMonth (value) { + if (value != null) { + setMonth(this, value); + utils_hooks__hooks.updateOffset(this, true); + return this; + } else { + return get_set__get(this, 'Month'); + } + } + + function getDaysInMonth () { + return daysInMonth(this.year(), this.month()); + } + + function checkOverflow (m) { + var overflow; + var a = m._a; + + if (a && getParsingFlags(m).overflow === -2) { + overflow = + a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : + a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : + a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR : + a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : + a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : + a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : + -1; + + if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) { + overflow = DATE; + } + + getParsingFlags(m).overflow = overflow; + } + + return m; + } + + function warn(msg) { + if (utils_hooks__hooks.suppressDeprecationWarnings === false && typeof console !== 'undefined' && console.warn) { + console.warn('Deprecation warning: ' + msg); + } + } + + function deprecate(msg, fn) { + var firstTime = true; + + return extend(function () { + if (firstTime) { + warn(msg + '\n' + (new Error()).stack); + firstTime = false; + } + return fn.apply(this, arguments); + }, fn); + } + + var deprecations = {}; + + function deprecateSimple(name, msg) { + if (!deprecations[name]) { + warn(msg); + deprecations[name] = true; + } + } + + utils_hooks__hooks.suppressDeprecationWarnings = false; + + var from_string__isoRegex = /^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/; + + var isoDates = [ + ['YYYYYY-MM-DD', /[+-]\d{6}-\d{2}-\d{2}/], + ['YYYY-MM-DD', /\d{4}-\d{2}-\d{2}/], + ['GGGG-[W]WW-E', /\d{4}-W\d{2}-\d/], + ['GGGG-[W]WW', /\d{4}-W\d{2}/], + ['YYYY-DDD', /\d{4}-\d{3}/] + ]; + + // iso time formats and regexes + var isoTimes = [ + ['HH:mm:ss.SSSS', /(T| )\d\d:\d\d:\d\d\.\d+/], + ['HH:mm:ss', /(T| )\d\d:\d\d:\d\d/], + ['HH:mm', /(T| )\d\d:\d\d/], + ['HH', /(T| )\d\d/] + ]; + + var aspNetJsonRegex = /^\/?Date\((\-?\d+)/i; + + // date from iso format + function configFromISO(config) { + var i, l, + string = config._i, + match = from_string__isoRegex.exec(string); + + if (match) { + getParsingFlags(config).iso = true; + for (i = 0, l = isoDates.length; i < l; i++) { + if (isoDates[i][1].exec(string)) { + config._f = isoDates[i][0]; + break; + } + } + for (i = 0, l = isoTimes.length; i < l; i++) { + if (isoTimes[i][1].exec(string)) { + // match[6] should be 'T' or space + config._f += (match[6] || ' ') + isoTimes[i][0]; + break; + } + } + if (string.match(matchOffset)) { + config._f += 'Z'; + } + configFromStringAndFormat(config); + } else { + config._isValid = false; + } + } + + // date from iso format or fallback + function configFromString(config) { + var matched = aspNetJsonRegex.exec(config._i); + + if (matched !== null) { + config._d = new Date(+matched[1]); + return; + } + + configFromISO(config); + if (config._isValid === false) { + delete config._isValid; + utils_hooks__hooks.createFromInputFallback(config); + } + } + + utils_hooks__hooks.createFromInputFallback = deprecate( + 'moment construction falls back to js Date. This is ' + + 'discouraged and will be removed in upcoming major ' + + 'release. Please refer to ' + + 'https://github.com/moment/moment/issues/1407 for more info.', + function (config) { + config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); + } + ); + + function createDate (y, m, d, h, M, s, ms) { + //can't just apply() to create a date: + //http://stackoverflow.com/questions/181348/instantiating-a-javascript-object-by-calling-prototype-constructor-apply + var date = new Date(y, m, d, h, M, s, ms); + + //the date constructor doesn't accept years < 1970 + if (y < 1970) { + date.setFullYear(y); + } + return date; + } + + function createUTCDate (y) { + var date = new Date(Date.UTC.apply(null, arguments)); + if (y < 1970) { + date.setUTCFullYear(y); + } + return date; + } + + addFormatToken(0, ['YY', 2], 0, function () { + return this.year() % 100; + }); + + addFormatToken(0, ['YYYY', 4], 0, 'year'); + addFormatToken(0, ['YYYYY', 5], 0, 'year'); + addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); + + // ALIASES + + addUnitAlias('year', 'y'); + + // PARSING + + addRegexToken('Y', matchSigned); + addRegexToken('YY', match1to2, match2); + addRegexToken('YYYY', match1to4, match4); + addRegexToken('YYYYY', match1to6, match6); + addRegexToken('YYYYYY', match1to6, match6); + + addParseToken(['YYYYY', 'YYYYYY'], YEAR); + addParseToken('YYYY', function (input, array) { + array[YEAR] = input.length === 2 ? utils_hooks__hooks.parseTwoDigitYear(input) : toInt(input); + }); + addParseToken('YY', function (input, array) { + array[YEAR] = utils_hooks__hooks.parseTwoDigitYear(input); + }); + + // HELPERS + + function daysInYear(year) { + return isLeapYear(year) ? 366 : 365; + } + + function isLeapYear(year) { + return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; + } + + // HOOKS + + utils_hooks__hooks.parseTwoDigitYear = function (input) { + return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); + }; + + // MOMENTS + + var getSetYear = makeGetSet('FullYear', false); + + function getIsLeapYear () { + return isLeapYear(this.year()); + } + + addFormatToken('w', ['ww', 2], 'wo', 'week'); + addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); + + // ALIASES + + addUnitAlias('week', 'w'); + addUnitAlias('isoWeek', 'W'); + + // PARSING + + addRegexToken('w', match1to2); + addRegexToken('ww', match1to2, match2); + addRegexToken('W', match1to2); + addRegexToken('WW', match1to2, match2); + + addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) { + week[token.substr(0, 1)] = toInt(input); + }); + + // HELPERS + + // firstDayOfWeek 0 = sun, 6 = sat + // the day of the week that starts the week + // (usually sunday or monday) + // firstDayOfWeekOfYear 0 = sun, 6 = sat + // the first week is the week that contains the first + // of this day of the week + // (eg. ISO weeks use thursday (4)) + function weekOfYear(mom, firstDayOfWeek, firstDayOfWeekOfYear) { + var end = firstDayOfWeekOfYear - firstDayOfWeek, + daysToDayOfWeek = firstDayOfWeekOfYear - mom.day(), + adjustedMoment; + + + if (daysToDayOfWeek > end) { + daysToDayOfWeek -= 7; + } + + if (daysToDayOfWeek < end - 7) { + daysToDayOfWeek += 7; + } + + adjustedMoment = local__createLocal(mom).add(daysToDayOfWeek, 'd'); + return { + week: Math.ceil(adjustedMoment.dayOfYear() / 7), + year: adjustedMoment.year() + }; + } + + // LOCALES + + function localeWeek (mom) { + return weekOfYear(mom, this._week.dow, this._week.doy).week; + } + + var defaultLocaleWeek = { + dow : 0, // Sunday is the first day of the week. + doy : 6 // The week that contains Jan 1st is the first week of the year. + }; + + function localeFirstDayOfWeek () { + return this._week.dow; + } + + function localeFirstDayOfYear () { + return this._week.doy; + } + + // MOMENTS + + function getSetWeek (input) { + var week = this.localeData().week(this); + return input == null ? week : this.add((input - week) * 7, 'd'); + } + + function getSetISOWeek (input) { + var week = weekOfYear(this, 1, 4).week; + return input == null ? week : this.add((input - week) * 7, 'd'); + } + + addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); + + // ALIASES + + addUnitAlias('dayOfYear', 'DDD'); + + // PARSING + + addRegexToken('DDD', match1to3); + addRegexToken('DDDD', match3); + addParseToken(['DDD', 'DDDD'], function (input, array, config) { + config._dayOfYear = toInt(input); + }); + + // HELPERS + + //http://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday + function dayOfYearFromWeeks(year, week, weekday, firstDayOfWeekOfYear, firstDayOfWeek) { + var week1Jan = 6 + firstDayOfWeek - firstDayOfWeekOfYear, janX = createUTCDate(year, 0, 1 + week1Jan), d = janX.getUTCDay(), dayOfYear; + if (d < firstDayOfWeek) { + d += 7; + } + + weekday = weekday != null ? 1 * weekday : firstDayOfWeek; + + dayOfYear = 1 + week1Jan + 7 * (week - 1) - d + weekday; + + return { + year: dayOfYear > 0 ? year : year - 1, + dayOfYear: dayOfYear > 0 ? dayOfYear : daysInYear(year - 1) + dayOfYear + }; + } + + // MOMENTS + + function getSetDayOfYear (input) { + var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1; + return input == null ? dayOfYear : this.add((input - dayOfYear), 'd'); + } + + // Pick the first defined of two or three arguments. + function defaults(a, b, c) { + if (a != null) { + return a; + } + if (b != null) { + return b; + } + return c; + } + + function currentDateArray(config) { + var now = new Date(); + if (config._useUTC) { + return [now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate()]; + } + return [now.getFullYear(), now.getMonth(), now.getDate()]; + } + + // convert an array to a date. + // the array should mirror the parameters below + // note: all values past the year are optional and will default to the lowest possible value. + // [year, month, day , hour, minute, second, millisecond] + function configFromArray (config) { + var i, date, input = [], currentDate, yearToUse; + + if (config._d) { + return; + } + + currentDate = currentDateArray(config); + + //compute day of the year from weeks and weekdays + if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { + dayOfYearFromWeekInfo(config); + } + + //if the day of the year is set, figure out what it is + if (config._dayOfYear) { + yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); + + if (config._dayOfYear > daysInYear(yearToUse)) { + getParsingFlags(config)._overflowDayOfYear = true; + } + + date = createUTCDate(yearToUse, 0, config._dayOfYear); + config._a[MONTH] = date.getUTCMonth(); + config._a[DATE] = date.getUTCDate(); + } + + // Default to current date. + // * if no year, month, day of month are given, default to today + // * if day of month is given, default month and year + // * if month is given, default only year + // * if year is given, don't default anything + for (i = 0; i < 3 && config._a[i] == null; ++i) { + config._a[i] = input[i] = currentDate[i]; + } + + // Zero out whatever was not defaulted, including time + for (; i < 7; i++) { + config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i]; + } + + // Check for 24:00:00.000 + if (config._a[HOUR] === 24 && + config._a[MINUTE] === 0 && + config._a[SECOND] === 0 && + config._a[MILLISECOND] === 0) { + config._nextDay = true; + config._a[HOUR] = 0; + } + + config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input); + // Apply timezone offset from input. The actual utcOffset can be changed + // with parseZone. + if (config._tzm != null) { + config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); + } + + if (config._nextDay) { + config._a[HOUR] = 24; + } + } + + function dayOfYearFromWeekInfo(config) { + var w, weekYear, week, weekday, dow, doy, temp; + + w = config._w; + if (w.GG != null || w.W != null || w.E != null) { + dow = 1; + doy = 4; + + // TODO: We need to take the current isoWeekYear, but that depends on + // how we interpret now (local, utc, fixed offset). So create + // a now version of current config (take local/utc/offset flags, and + // create now). + weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(local__createLocal(), 1, 4).year); + week = defaults(w.W, 1); + weekday = defaults(w.E, 1); + } else { + dow = config._locale._week.dow; + doy = config._locale._week.doy; + + weekYear = defaults(w.gg, config._a[YEAR], weekOfYear(local__createLocal(), dow, doy).year); + week = defaults(w.w, 1); + + if (w.d != null) { + // weekday -- low day numbers are considered next week + weekday = w.d; + if (weekday < dow) { + ++week; + } + } else if (w.e != null) { + // local weekday -- counting starts from begining of week + weekday = w.e + dow; + } else { + // default to begining of week + weekday = dow; + } + } + temp = dayOfYearFromWeeks(weekYear, week, weekday, doy, dow); + + config._a[YEAR] = temp.year; + config._dayOfYear = temp.dayOfYear; + } + + utils_hooks__hooks.ISO_8601 = function () {}; + + // date from string and format string + function configFromStringAndFormat(config) { + // TODO: Move this to another part of the creation flow to prevent circular deps + if (config._f === utils_hooks__hooks.ISO_8601) { + configFromISO(config); + return; + } + + config._a = []; + getParsingFlags(config).empty = true; + + // This array is used to make a Date, either with `new Date` or `Date.UTC` + var string = '' + config._i, + i, parsedInput, tokens, token, skipped, + stringLength = string.length, + totalParsedInputLength = 0; + + tokens = expandFormat(config._f, config._locale).match(formattingTokens) || []; + + for (i = 0; i < tokens.length; i++) { + token = tokens[i]; + parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0]; + if (parsedInput) { + skipped = string.substr(0, string.indexOf(parsedInput)); + if (skipped.length > 0) { + getParsingFlags(config).unusedInput.push(skipped); + } + string = string.slice(string.indexOf(parsedInput) + parsedInput.length); + totalParsedInputLength += parsedInput.length; + } + // don't parse if it's not a known token + if (formatTokenFunctions[token]) { + if (parsedInput) { + getParsingFlags(config).empty = false; + } + else { + getParsingFlags(config).unusedTokens.push(token); + } + addTimeToArrayFromToken(token, parsedInput, config); + } + else if (config._strict && !parsedInput) { + getParsingFlags(config).unusedTokens.push(token); + } + } + + // add remaining unparsed input length to the string + getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength; + if (string.length > 0) { + getParsingFlags(config).unusedInput.push(string); + } + + // clear _12h flag if hour is <= 12 + if (getParsingFlags(config).bigHour === true && + config._a[HOUR] <= 12 && + config._a[HOUR] > 0) { + getParsingFlags(config).bigHour = undefined; + } + // handle meridiem + config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem); + + configFromArray(config); + checkOverflow(config); + } + + + function meridiemFixWrap (locale, hour, meridiem) { + var isPm; + + if (meridiem == null) { + // nothing to do + return hour; + } + if (locale.meridiemHour != null) { + return locale.meridiemHour(hour, meridiem); + } else if (locale.isPM != null) { + // Fallback + isPm = locale.isPM(meridiem); + if (isPm && hour < 12) { + hour += 12; + } + if (!isPm && hour === 12) { + hour = 0; + } + return hour; + } else { + // this is not supposed to happen + return hour; + } + } + + function configFromStringAndArray(config) { + var tempConfig, + bestMoment, + + scoreToBeat, + i, + currentScore; + + if (config._f.length === 0) { + getParsingFlags(config).invalidFormat = true; + config._d = new Date(NaN); + return; + } + + for (i = 0; i < config._f.length; i++) { + currentScore = 0; + tempConfig = copyConfig({}, config); + if (config._useUTC != null) { + tempConfig._useUTC = config._useUTC; + } + tempConfig._f = config._f[i]; + configFromStringAndFormat(tempConfig); + + if (!valid__isValid(tempConfig)) { + continue; + } + + // if there is any input that was not parsed add a penalty for that format + currentScore += getParsingFlags(tempConfig).charsLeftOver; + + //or tokens + currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; + + getParsingFlags(tempConfig).score = currentScore; + + if (scoreToBeat == null || currentScore < scoreToBeat) { + scoreToBeat = currentScore; + bestMoment = tempConfig; + } + } + + extend(config, bestMoment || tempConfig); + } + + function configFromObject(config) { + if (config._d) { + return; + } + + var i = normalizeObjectUnits(config._i); + config._a = [i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond]; + + configFromArray(config); + } + + function createFromConfig (config) { + var res = new Moment(checkOverflow(prepareConfig(config))); + if (res._nextDay) { + // Adding is smart enough around DST + res.add(1, 'd'); + res._nextDay = undefined; + } + + return res; + } + + function prepareConfig (config) { + var input = config._i, + format = config._f; + + config._locale = config._locale || locale_locales__getLocale(config._l); + + if (input === null || (format === undefined && input === '')) { + return valid__createInvalid({nullInput: true}); + } + + if (typeof input === 'string') { + config._i = input = config._locale.preparse(input); + } + + if (isMoment(input)) { + return new Moment(checkOverflow(input)); + } else if (isArray(format)) { + configFromStringAndArray(config); + } else if (format) { + configFromStringAndFormat(config); + } else if (isDate(input)) { + config._d = input; + } else { + configFromInput(config); + } + + return config; + } + + function configFromInput(config) { + var input = config._i; + if (input === undefined) { + config._d = new Date(); + } else if (isDate(input)) { + config._d = new Date(+input); + } else if (typeof input === 'string') { + configFromString(config); + } else if (isArray(input)) { + config._a = map(input.slice(0), function (obj) { + return parseInt(obj, 10); + }); + configFromArray(config); + } else if (typeof(input) === 'object') { + configFromObject(config); + } else if (typeof(input) === 'number') { + // from milliseconds + config._d = new Date(input); + } else { + utils_hooks__hooks.createFromInputFallback(config); + } + } + + function createLocalOrUTC (input, format, locale, strict, isUTC) { + var c = {}; + + if (typeof(locale) === 'boolean') { + strict = locale; + locale = undefined; + } + // object construction must be done this way. + // https://github.com/moment/moment/issues/1423 + c._isAMomentObject = true; + c._useUTC = c._isUTC = isUTC; + c._l = locale; + c._i = input; + c._f = format; + c._strict = strict; + + return createFromConfig(c); + } + + function local__createLocal (input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, false); + } + + var prototypeMin = deprecate( + 'moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548', + function () { + var other = local__createLocal.apply(null, arguments); + return other < this ? this : other; + } + ); + + var prototypeMax = deprecate( + 'moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548', + function () { + var other = local__createLocal.apply(null, arguments); + return other > this ? this : other; + } + ); + + // Pick a moment m from moments so that m[fn](other) is true for all + // other. This relies on the function fn to be transitive. + // + // moments should either be an array of moment objects or an array, whose + // first element is an array of moment objects. + function pickBy(fn, moments) { + var res, i; + if (moments.length === 1 && isArray(moments[0])) { + moments = moments[0]; + } + if (!moments.length) { + return local__createLocal(); + } + res = moments[0]; + for (i = 1; i < moments.length; ++i) { + if (!moments[i].isValid() || moments[i][fn](res)) { + res = moments[i]; + } + } + return res; + } + + // TODO: Use [].sort instead? + function min () { + var args = [].slice.call(arguments, 0); + + return pickBy('isBefore', args); + } + + function max () { + var args = [].slice.call(arguments, 0); + + return pickBy('isAfter', args); + } + + function Duration (duration) { + var normalizedInput = normalizeObjectUnits(duration), + years = normalizedInput.year || 0, + quarters = normalizedInput.quarter || 0, + months = normalizedInput.month || 0, + weeks = normalizedInput.week || 0, + days = normalizedInput.day || 0, + hours = normalizedInput.hour || 0, + minutes = normalizedInput.minute || 0, + seconds = normalizedInput.second || 0, + milliseconds = normalizedInput.millisecond || 0; + + // representation for dateAddRemove + this._milliseconds = +milliseconds + + seconds * 1e3 + // 1000 + minutes * 6e4 + // 1000 * 60 + hours * 36e5; // 1000 * 60 * 60 + // Because of dateAddRemove treats 24 hours as different from a + // day when working around DST, we need to store them separately + this._days = +days + + weeks * 7; + // It is impossible translate months into days without knowing + // which months you are are talking about, so we have to store + // it separately. + this._months = +months + + quarters * 3 + + years * 12; + + this._data = {}; + + this._locale = locale_locales__getLocale(); + + this._bubble(); + } + + function isDuration (obj) { + return obj instanceof Duration; + } + + function offset (token, separator) { + addFormatToken(token, 0, 0, function () { + var offset = this.utcOffset(); + var sign = '+'; + if (offset < 0) { + offset = -offset; + sign = '-'; + } + return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2); + }); + } + + offset('Z', ':'); + offset('ZZ', ''); + + // PARSING + + addRegexToken('Z', matchOffset); + addRegexToken('ZZ', matchOffset); + addParseToken(['Z', 'ZZ'], function (input, array, config) { + config._useUTC = true; + config._tzm = offsetFromString(input); + }); + + // HELPERS + + // timezone chunker + // '+10:00' > ['10', '00'] + // '-1530' > ['-15', '30'] + var chunkOffset = /([\+\-]|\d\d)/gi; + + function offsetFromString(string) { + var matches = ((string || '').match(matchOffset) || []); + var chunk = matches[matches.length - 1] || []; + var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0]; + var minutes = +(parts[1] * 60) + toInt(parts[2]); + + return parts[0] === '+' ? minutes : -minutes; + } + + // Return a moment from input, that is local/utc/zone equivalent to model. + function cloneWithOffset(input, model) { + var res, diff; + if (model._isUTC) { + res = model.clone(); + diff = (isMoment(input) || isDate(input) ? +input : +local__createLocal(input)) - (+res); + // Use low-level api, because this fn is low-level api. + res._d.setTime(+res._d + diff); + utils_hooks__hooks.updateOffset(res, false); + return res; + } else { + return local__createLocal(input).local(); + } + } + + function getDateOffset (m) { + // On Firefox.24 Date#getTimezoneOffset returns a floating point. + // https://github.com/moment/moment/pull/1871 + return -Math.round(m._d.getTimezoneOffset() / 15) * 15; + } + + // HOOKS + + // This function will be called whenever a moment is mutated. + // It is intended to keep the offset in sync with the timezone. + utils_hooks__hooks.updateOffset = function () {}; + + // MOMENTS + + // keepLocalTime = true means only change the timezone, without + // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> + // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset + // +0200, so we adjust the time as needed, to be valid. + // + // Keeping the time actually adds/subtracts (one hour) + // from the actual represented time. That is why we call updateOffset + // a second time. In case it wants us to change the offset again + // _changeInProgress == true case, then we have to adjust, because + // there is no such time in the given timezone. + function getSetOffset (input, keepLocalTime) { + var offset = this._offset || 0, + localAdjust; + if (input != null) { + if (typeof input === 'string') { + input = offsetFromString(input); + } + if (Math.abs(input) < 16) { + input = input * 60; + } + if (!this._isUTC && keepLocalTime) { + localAdjust = getDateOffset(this); + } + this._offset = input; + this._isUTC = true; + if (localAdjust != null) { + this.add(localAdjust, 'm'); + } + if (offset !== input) { + if (!keepLocalTime || this._changeInProgress) { + add_subtract__addSubtract(this, create__createDuration(input - offset, 'm'), 1, false); + } else if (!this._changeInProgress) { + this._changeInProgress = true; + utils_hooks__hooks.updateOffset(this, true); + this._changeInProgress = null; + } + } + return this; + } else { + return this._isUTC ? offset : getDateOffset(this); + } + } + + function getSetZone (input, keepLocalTime) { + if (input != null) { + if (typeof input !== 'string') { + input = -input; + } + + this.utcOffset(input, keepLocalTime); + + return this; + } else { + return -this.utcOffset(); + } + } + + function setOffsetToUTC (keepLocalTime) { + return this.utcOffset(0, keepLocalTime); + } + + function setOffsetToLocal (keepLocalTime) { + if (this._isUTC) { + this.utcOffset(0, keepLocalTime); + this._isUTC = false; + + if (keepLocalTime) { + this.subtract(getDateOffset(this), 'm'); + } + } + return this; + } + + function setOffsetToParsedOffset () { + if (this._tzm) { + this.utcOffset(this._tzm); + } else if (typeof this._i === 'string') { + this.utcOffset(offsetFromString(this._i)); + } + return this; + } + + function hasAlignedHourOffset (input) { + input = input ? local__createLocal(input).utcOffset() : 0; + + return (this.utcOffset() - input) % 60 === 0; + } + + function isDaylightSavingTime () { + return ( + this.utcOffset() > this.clone().month(0).utcOffset() || + this.utcOffset() > this.clone().month(5).utcOffset() + ); + } + + function isDaylightSavingTimeShifted () { + if (typeof this._isDSTShifted !== 'undefined') { + return this._isDSTShifted; + } + + var c = {}; + + copyConfig(c, this); + c = prepareConfig(c); + + if (c._a) { + var other = c._isUTC ? create_utc__createUTC(c._a) : local__createLocal(c._a); + this._isDSTShifted = this.isValid() && + compareArrays(c._a, other.toArray()) > 0; + } else { + this._isDSTShifted = false; + } + + return this._isDSTShifted; + } + + function isLocal () { + return !this._isUTC; + } + + function isUtcOffset () { + return this._isUTC; + } + + function isUtc () { + return this._isUTC && this._offset === 0; + } + + var aspNetRegex = /(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/; + + // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html + // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere + var create__isoRegex = /^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/; + + function create__createDuration (input, key) { + var duration = input, + // matching against regexp is expensive, do it on demand + match = null, + sign, + ret, + diffRes; + + if (isDuration(input)) { + duration = { + ms : input._milliseconds, + d : input._days, + M : input._months + }; + } else if (typeof input === 'number') { + duration = {}; + if (key) { + duration[key] = input; + } else { + duration.milliseconds = input; + } + } else if (!!(match = aspNetRegex.exec(input))) { + sign = (match[1] === '-') ? -1 : 1; + duration = { + y : 0, + d : toInt(match[DATE]) * sign, + h : toInt(match[HOUR]) * sign, + m : toInt(match[MINUTE]) * sign, + s : toInt(match[SECOND]) * sign, + ms : toInt(match[MILLISECOND]) * sign + }; + } else if (!!(match = create__isoRegex.exec(input))) { + sign = (match[1] === '-') ? -1 : 1; + duration = { + y : parseIso(match[2], sign), + M : parseIso(match[3], sign), + d : parseIso(match[4], sign), + h : parseIso(match[5], sign), + m : parseIso(match[6], sign), + s : parseIso(match[7], sign), + w : parseIso(match[8], sign) + }; + } else if (duration == null) {// checks for null or undefined + duration = {}; + } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) { + diffRes = momentsDifference(local__createLocal(duration.from), local__createLocal(duration.to)); + + duration = {}; + duration.ms = diffRes.milliseconds; + duration.M = diffRes.months; + } + + ret = new Duration(duration); + + if (isDuration(input) && hasOwnProp(input, '_locale')) { + ret._locale = input._locale; + } + + return ret; + } + + create__createDuration.fn = Duration.prototype; + + function parseIso (inp, sign) { + // We'd normally use ~~inp for this, but unfortunately it also + // converts floats to ints. + // inp may be undefined, so careful calling replace on it. + var res = inp && parseFloat(inp.replace(',', '.')); + // apply sign while we're at it + return (isNaN(res) ? 0 : res) * sign; + } + + function positiveMomentsDifference(base, other) { + var res = {milliseconds: 0, months: 0}; + + res.months = other.month() - base.month() + + (other.year() - base.year()) * 12; + if (base.clone().add(res.months, 'M').isAfter(other)) { + --res.months; + } + + res.milliseconds = +other - +(base.clone().add(res.months, 'M')); + + return res; + } + + function momentsDifference(base, other) { + var res; + other = cloneWithOffset(other, base); + if (base.isBefore(other)) { + res = positiveMomentsDifference(base, other); + } else { + res = positiveMomentsDifference(other, base); + res.milliseconds = -res.milliseconds; + res.months = -res.months; + } + + return res; + } + + function createAdder(direction, name) { + return function (val, period) { + var dur, tmp; + //invert the arguments, but complain about it + if (period !== null && !isNaN(+period)) { + deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period).'); + tmp = val; val = period; period = tmp; + } + + val = typeof val === 'string' ? +val : val; + dur = create__createDuration(val, period); + add_subtract__addSubtract(this, dur, direction); + return this; + }; + } + + function add_subtract__addSubtract (mom, duration, isAdding, updateOffset) { + var milliseconds = duration._milliseconds, + days = duration._days, + months = duration._months; + updateOffset = updateOffset == null ? true : updateOffset; + + if (milliseconds) { + mom._d.setTime(+mom._d + milliseconds * isAdding); + } + if (days) { + get_set__set(mom, 'Date', get_set__get(mom, 'Date') + days * isAdding); + } + if (months) { + setMonth(mom, get_set__get(mom, 'Month') + months * isAdding); + } + if (updateOffset) { + utils_hooks__hooks.updateOffset(mom, days || months); + } + } + + var add_subtract__add = createAdder(1, 'add'); + var add_subtract__subtract = createAdder(-1, 'subtract'); + + function moment_calendar__calendar (time, formats) { + // We want to compare the start of today, vs this. + // Getting start-of-today depends on whether we're local/utc/offset or not. + var now = time || local__createLocal(), + sod = cloneWithOffset(now, this).startOf('day'), + diff = this.diff(sod, 'days', true), + format = diff < -6 ? 'sameElse' : + diff < -1 ? 'lastWeek' : + diff < 0 ? 'lastDay' : + diff < 1 ? 'sameDay' : + diff < 2 ? 'nextDay' : + diff < 7 ? 'nextWeek' : 'sameElse'; + return this.format(formats && formats[format] || this.localeData().calendar(format, this, local__createLocal(now))); + } + + function clone () { + return new Moment(this); + } + + function isAfter (input, units) { + var inputMs; + units = normalizeUnits(typeof units !== 'undefined' ? units : 'millisecond'); + if (units === 'millisecond') { + input = isMoment(input) ? input : local__createLocal(input); + return +this > +input; + } else { + inputMs = isMoment(input) ? +input : +local__createLocal(input); + return inputMs < +this.clone().startOf(units); + } + } + + function isBefore (input, units) { + var inputMs; + units = normalizeUnits(typeof units !== 'undefined' ? units : 'millisecond'); + if (units === 'millisecond') { + input = isMoment(input) ? input : local__createLocal(input); + return +this < +input; + } else { + inputMs = isMoment(input) ? +input : +local__createLocal(input); + return +this.clone().endOf(units) < inputMs; + } + } + + function isBetween (from, to, units) { + return this.isAfter(from, units) && this.isBefore(to, units); + } + + function isSame (input, units) { + var inputMs; + units = normalizeUnits(units || 'millisecond'); + if (units === 'millisecond') { + input = isMoment(input) ? input : local__createLocal(input); + return +this === +input; + } else { + inputMs = +local__createLocal(input); + return +(this.clone().startOf(units)) <= inputMs && inputMs <= +(this.clone().endOf(units)); + } + } + + function diff (input, units, asFloat) { + var that = cloneWithOffset(input, this), + zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4, + delta, output; + + units = normalizeUnits(units); + + if (units === 'year' || units === 'month' || units === 'quarter') { + output = monthDiff(this, that); + if (units === 'quarter') { + output = output / 3; + } else if (units === 'year') { + output = output / 12; + } + } else { + delta = this - that; + output = units === 'second' ? delta / 1e3 : // 1000 + units === 'minute' ? delta / 6e4 : // 1000 * 60 + units === 'hour' ? delta / 36e5 : // 1000 * 60 * 60 + units === 'day' ? (delta - zoneDelta) / 864e5 : // 1000 * 60 * 60 * 24, negate dst + units === 'week' ? (delta - zoneDelta) / 6048e5 : // 1000 * 60 * 60 * 24 * 7, negate dst + delta; + } + return asFloat ? output : absFloor(output); + } + + function monthDiff (a, b) { + // difference in months + var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()), + // b is in (anchor - 1 month, anchor + 1 month) + anchor = a.clone().add(wholeMonthDiff, 'months'), + anchor2, adjust; + + if (b - anchor < 0) { + anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor - anchor2); + } else { + anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor2 - anchor); + } + + return -(wholeMonthDiff + adjust); + } + + utils_hooks__hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'; + + function toString () { + return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); + } + + function moment_format__toISOString () { + var m = this.clone().utc(); + if (0 < m.year() && m.year() <= 9999) { + if ('function' === typeof Date.prototype.toISOString) { + // native implementation is ~50x faster, use it when we can + return this.toDate().toISOString(); + } else { + return formatMoment(m, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); + } + } else { + return formatMoment(m, 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); + } + } + + function moment_format__format (inputString) { + var output = formatMoment(this, inputString || utils_hooks__hooks.defaultFormat); + return this.localeData().postformat(output); + } + + function from (time, withoutSuffix) { + if (!this.isValid()) { + return this.localeData().invalidDate(); + } + return create__createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix); + } + + function fromNow (withoutSuffix) { + return this.from(local__createLocal(), withoutSuffix); + } + + function to (time, withoutSuffix) { + if (!this.isValid()) { + return this.localeData().invalidDate(); + } + return create__createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix); + } + + function toNow (withoutSuffix) { + return this.to(local__createLocal(), withoutSuffix); + } + + function locale (key) { + var newLocaleData; + + if (key === undefined) { + return this._locale._abbr; + } else { + newLocaleData = locale_locales__getLocale(key); + if (newLocaleData != null) { + this._locale = newLocaleData; + } + return this; + } + } + + var lang = deprecate( + 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', + function (key) { + if (key === undefined) { + return this.localeData(); + } else { + return this.locale(key); + } + } + ); + + function localeData () { + return this._locale; + } + + function startOf (units) { + units = normalizeUnits(units); + // the following switch intentionally omits break keywords + // to utilize falling through the cases. + switch (units) { + case 'year': + this.month(0); + /* falls through */ + case 'quarter': + case 'month': + this.date(1); + /* falls through */ + case 'week': + case 'isoWeek': + case 'day': + this.hours(0); + /* falls through */ + case 'hour': + this.minutes(0); + /* falls through */ + case 'minute': + this.seconds(0); + /* falls through */ + case 'second': + this.milliseconds(0); + } + + // weeks are a special case + if (units === 'week') { + this.weekday(0); + } + if (units === 'isoWeek') { + this.isoWeekday(1); + } + + // quarters are also special + if (units === 'quarter') { + this.month(Math.floor(this.month() / 3) * 3); + } + + return this; + } + + function endOf (units) { + units = normalizeUnits(units); + if (units === undefined || units === 'millisecond') { + return this; + } + return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms'); + } + + function to_type__valueOf () { + return +this._d - ((this._offset || 0) * 60000); + } + + function unix () { + return Math.floor(+this / 1000); + } + + function toDate () { + return this._offset ? new Date(+this) : this._d; + } + + function toArray () { + var m = this; + return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()]; + } + + function toObject () { + var m = this; + return { + years: m.year(), + months: m.month(), + date: m.date(), + hours: m.hours(), + minutes: m.minutes(), + seconds: m.seconds(), + milliseconds: m.milliseconds() + }; + } + + function moment_valid__isValid () { + return valid__isValid(this); + } + + function parsingFlags () { + return extend({}, getParsingFlags(this)); + } + + function invalidAt () { + return getParsingFlags(this).overflow; + } + + addFormatToken(0, ['gg', 2], 0, function () { + return this.weekYear() % 100; + }); + + addFormatToken(0, ['GG', 2], 0, function () { + return this.isoWeekYear() % 100; + }); + + function addWeekYearFormatToken (token, getter) { + addFormatToken(0, [token, token.length], 0, getter); + } + + addWeekYearFormatToken('gggg', 'weekYear'); + addWeekYearFormatToken('ggggg', 'weekYear'); + addWeekYearFormatToken('GGGG', 'isoWeekYear'); + addWeekYearFormatToken('GGGGG', 'isoWeekYear'); + + // ALIASES + + addUnitAlias('weekYear', 'gg'); + addUnitAlias('isoWeekYear', 'GG'); + + // PARSING + + addRegexToken('G', matchSigned); + addRegexToken('g', matchSigned); + addRegexToken('GG', match1to2, match2); + addRegexToken('gg', match1to2, match2); + addRegexToken('GGGG', match1to4, match4); + addRegexToken('gggg', match1to4, match4); + addRegexToken('GGGGG', match1to6, match6); + addRegexToken('ggggg', match1to6, match6); + + addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) { + week[token.substr(0, 2)] = toInt(input); + }); + + addWeekParseToken(['gg', 'GG'], function (input, week, config, token) { + week[token] = utils_hooks__hooks.parseTwoDigitYear(input); + }); + + // HELPERS + + function weeksInYear(year, dow, doy) { + return weekOfYear(local__createLocal([year, 11, 31 + dow - doy]), dow, doy).week; + } + + // MOMENTS + + function getSetWeekYear (input) { + var year = weekOfYear(this, this.localeData()._week.dow, this.localeData()._week.doy).year; + return input == null ? year : this.add((input - year), 'y'); + } + + function getSetISOWeekYear (input) { + var year = weekOfYear(this, 1, 4).year; + return input == null ? year : this.add((input - year), 'y'); + } + + function getISOWeeksInYear () { + return weeksInYear(this.year(), 1, 4); + } + + function getWeeksInYear () { + var weekInfo = this.localeData()._week; + return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); + } + + addFormatToken('Q', 0, 0, 'quarter'); + + // ALIASES + + addUnitAlias('quarter', 'Q'); + + // PARSING + + addRegexToken('Q', match1); + addParseToken('Q', function (input, array) { + array[MONTH] = (toInt(input) - 1) * 3; + }); + + // MOMENTS + + function getSetQuarter (input) { + return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3); + } + + addFormatToken('D', ['DD', 2], 'Do', 'date'); + + // ALIASES + + addUnitAlias('date', 'D'); + + // PARSING + + addRegexToken('D', match1to2); + addRegexToken('DD', match1to2, match2); + addRegexToken('Do', function (isStrict, locale) { + return isStrict ? locale._ordinalParse : locale._ordinalParseLenient; + }); + + addParseToken(['D', 'DD'], DATE); + addParseToken('Do', function (input, array) { + array[DATE] = toInt(input.match(match1to2)[0], 10); + }); + + // MOMENTS + + var getSetDayOfMonth = makeGetSet('Date', true); + + addFormatToken('d', 0, 'do', 'day'); + + addFormatToken('dd', 0, 0, function (format) { + return this.localeData().weekdaysMin(this, format); + }); + + addFormatToken('ddd', 0, 0, function (format) { + return this.localeData().weekdaysShort(this, format); + }); + + addFormatToken('dddd', 0, 0, function (format) { + return this.localeData().weekdays(this, format); + }); + + addFormatToken('e', 0, 0, 'weekday'); + addFormatToken('E', 0, 0, 'isoWeekday'); + + // ALIASES + + addUnitAlias('day', 'd'); + addUnitAlias('weekday', 'e'); + addUnitAlias('isoWeekday', 'E'); + + // PARSING + + addRegexToken('d', match1to2); + addRegexToken('e', match1to2); + addRegexToken('E', match1to2); + addRegexToken('dd', matchWord); + addRegexToken('ddd', matchWord); + addRegexToken('dddd', matchWord); + + addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config) { + var weekday = config._locale.weekdaysParse(input); + // if we didn't get a weekday name, mark the date as invalid + if (weekday != null) { + week.d = weekday; + } else { + getParsingFlags(config).invalidWeekday = input; + } + }); + + addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) { + week[token] = toInt(input); + }); + + // HELPERS + + function parseWeekday(input, locale) { + if (typeof input !== 'string') { + return input; + } + + if (!isNaN(input)) { + return parseInt(input, 10); + } + + input = locale.weekdaysParse(input); + if (typeof input === 'number') { + return input; + } + + return null; + } + + // LOCALES + + var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'); + function localeWeekdays (m) { + return this._weekdays[m.day()]; + } + + var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'); + function localeWeekdaysShort (m) { + return this._weekdaysShort[m.day()]; + } + + var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'); + function localeWeekdaysMin (m) { + return this._weekdaysMin[m.day()]; + } + + function localeWeekdaysParse (weekdayName) { + var i, mom, regex; + + this._weekdaysParse = this._weekdaysParse || []; + + for (i = 0; i < 7; i++) { + // make the regex if we don't have it already + if (!this._weekdaysParse[i]) { + mom = local__createLocal([2000, 1]).day(i); + regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, ''); + this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if (this._weekdaysParse[i].test(weekdayName)) { + return i; + } + } + } + + // MOMENTS + + function getSetDayOfWeek (input) { + var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); + if (input != null) { + input = parseWeekday(input, this.localeData()); + return this.add(input - day, 'd'); + } else { + return day; + } + } + + function getSetLocaleDayOfWeek (input) { + var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; + return input == null ? weekday : this.add(input - weekday, 'd'); + } + + function getSetISODayOfWeek (input) { + // behaves the same as moment#day except + // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) + // as a setter, sunday should belong to the previous week. + return input == null ? this.day() || 7 : this.day(this.day() % 7 ? input : input - 7); + } + + addFormatToken('H', ['HH', 2], 0, 'hour'); + addFormatToken('h', ['hh', 2], 0, function () { + return this.hours() % 12 || 12; + }); + + function meridiem (token, lowercase) { + addFormatToken(token, 0, 0, function () { + return this.localeData().meridiem(this.hours(), this.minutes(), lowercase); + }); + } + + meridiem('a', true); + meridiem('A', false); + + // ALIASES + + addUnitAlias('hour', 'h'); + + // PARSING + + function matchMeridiem (isStrict, locale) { + return locale._meridiemParse; + } + + addRegexToken('a', matchMeridiem); + addRegexToken('A', matchMeridiem); + addRegexToken('H', match1to2); + addRegexToken('h', match1to2); + addRegexToken('HH', match1to2, match2); + addRegexToken('hh', match1to2, match2); + + addParseToken(['H', 'HH'], HOUR); + addParseToken(['a', 'A'], function (input, array, config) { + config._isPm = config._locale.isPM(input); + config._meridiem = input; + }); + addParseToken(['h', 'hh'], function (input, array, config) { + array[HOUR] = toInt(input); + getParsingFlags(config).bigHour = true; + }); + + // LOCALES + + function localeIsPM (input) { + // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays + // Using charAt should be more compatible. + return ((input + '').toLowerCase().charAt(0) === 'p'); + } + + var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i; + function localeMeridiem (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'pm' : 'PM'; + } else { + return isLower ? 'am' : 'AM'; + } + } + + + // MOMENTS + + // Setting the hour should keep the time, because the user explicitly + // specified which hour he wants. So trying to maintain the same hour (in + // a new timezone) makes sense. Adding/subtracting hours does not follow + // this rule. + var getSetHour = makeGetSet('Hours', true); + + addFormatToken('m', ['mm', 2], 0, 'minute'); + + // ALIASES + + addUnitAlias('minute', 'm'); + + // PARSING + + addRegexToken('m', match1to2); + addRegexToken('mm', match1to2, match2); + addParseToken(['m', 'mm'], MINUTE); + + // MOMENTS + + var getSetMinute = makeGetSet('Minutes', false); + + addFormatToken('s', ['ss', 2], 0, 'second'); + + // ALIASES + + addUnitAlias('second', 's'); + + // PARSING + + addRegexToken('s', match1to2); + addRegexToken('ss', match1to2, match2); + addParseToken(['s', 'ss'], SECOND); + + // MOMENTS + + var getSetSecond = makeGetSet('Seconds', false); + + addFormatToken('S', 0, 0, function () { + return ~~(this.millisecond() / 100); + }); + + addFormatToken(0, ['SS', 2], 0, function () { + return ~~(this.millisecond() / 10); + }); + + addFormatToken(0, ['SSS', 3], 0, 'millisecond'); + addFormatToken(0, ['SSSS', 4], 0, function () { + return this.millisecond() * 10; + }); + addFormatToken(0, ['SSSSS', 5], 0, function () { + return this.millisecond() * 100; + }); + addFormatToken(0, ['SSSSSS', 6], 0, function () { + return this.millisecond() * 1000; + }); + addFormatToken(0, ['SSSSSSS', 7], 0, function () { + return this.millisecond() * 10000; + }); + addFormatToken(0, ['SSSSSSSS', 8], 0, function () { + return this.millisecond() * 100000; + }); + addFormatToken(0, ['SSSSSSSSS', 9], 0, function () { + return this.millisecond() * 1000000; + }); + + + // ALIASES + + addUnitAlias('millisecond', 'ms'); + + // PARSING + + addRegexToken('S', match1to3, match1); + addRegexToken('SS', match1to3, match2); + addRegexToken('SSS', match1to3, match3); + + var token; + for (token = 'SSSS'; token.length <= 9; token += 'S') { + addRegexToken(token, matchUnsigned); + } + + function parseMs(input, array) { + array[MILLISECOND] = toInt(('0.' + input) * 1000); + } + + for (token = 'S'; token.length <= 9; token += 'S') { + addParseToken(token, parseMs); + } + // MOMENTS + + var getSetMillisecond = makeGetSet('Milliseconds', false); + + addFormatToken('z', 0, 0, 'zoneAbbr'); + addFormatToken('zz', 0, 0, 'zoneName'); + + // MOMENTS + + function getZoneAbbr () { + return this._isUTC ? 'UTC' : ''; + } + + function getZoneName () { + return this._isUTC ? 'Coordinated Universal Time' : ''; + } + + var momentPrototype__proto = Moment.prototype; + + momentPrototype__proto.add = add_subtract__add; + momentPrototype__proto.calendar = moment_calendar__calendar; + momentPrototype__proto.clone = clone; + momentPrototype__proto.diff = diff; + momentPrototype__proto.endOf = endOf; + momentPrototype__proto.format = moment_format__format; + momentPrototype__proto.from = from; + momentPrototype__proto.fromNow = fromNow; + momentPrototype__proto.to = to; + momentPrototype__proto.toNow = toNow; + momentPrototype__proto.get = getSet; + momentPrototype__proto.invalidAt = invalidAt; + momentPrototype__proto.isAfter = isAfter; + momentPrototype__proto.isBefore = isBefore; + momentPrototype__proto.isBetween = isBetween; + momentPrototype__proto.isSame = isSame; + momentPrototype__proto.isValid = moment_valid__isValid; + momentPrototype__proto.lang = lang; + momentPrototype__proto.locale = locale; + momentPrototype__proto.localeData = localeData; + momentPrototype__proto.max = prototypeMax; + momentPrototype__proto.min = prototypeMin; + momentPrototype__proto.parsingFlags = parsingFlags; + momentPrototype__proto.set = getSet; + momentPrototype__proto.startOf = startOf; + momentPrototype__proto.subtract = add_subtract__subtract; + momentPrototype__proto.toArray = toArray; + momentPrototype__proto.toObject = toObject; + momentPrototype__proto.toDate = toDate; + momentPrototype__proto.toISOString = moment_format__toISOString; + momentPrototype__proto.toJSON = moment_format__toISOString; + momentPrototype__proto.toString = toString; + momentPrototype__proto.unix = unix; + momentPrototype__proto.valueOf = to_type__valueOf; + + // Year + momentPrototype__proto.year = getSetYear; + momentPrototype__proto.isLeapYear = getIsLeapYear; + + // Week Year + momentPrototype__proto.weekYear = getSetWeekYear; + momentPrototype__proto.isoWeekYear = getSetISOWeekYear; + + // Quarter + momentPrototype__proto.quarter = momentPrototype__proto.quarters = getSetQuarter; + + // Month + momentPrototype__proto.month = getSetMonth; + momentPrototype__proto.daysInMonth = getDaysInMonth; + + // Week + momentPrototype__proto.week = momentPrototype__proto.weeks = getSetWeek; + momentPrototype__proto.isoWeek = momentPrototype__proto.isoWeeks = getSetISOWeek; + momentPrototype__proto.weeksInYear = getWeeksInYear; + momentPrototype__proto.isoWeeksInYear = getISOWeeksInYear; + + // Day + momentPrototype__proto.date = getSetDayOfMonth; + momentPrototype__proto.day = momentPrototype__proto.days = getSetDayOfWeek; + momentPrototype__proto.weekday = getSetLocaleDayOfWeek; + momentPrototype__proto.isoWeekday = getSetISODayOfWeek; + momentPrototype__proto.dayOfYear = getSetDayOfYear; + + // Hour + momentPrototype__proto.hour = momentPrototype__proto.hours = getSetHour; + + // Minute + momentPrototype__proto.minute = momentPrototype__proto.minutes = getSetMinute; + + // Second + momentPrototype__proto.second = momentPrototype__proto.seconds = getSetSecond; + + // Millisecond + momentPrototype__proto.millisecond = momentPrototype__proto.milliseconds = getSetMillisecond; + + // Offset + momentPrototype__proto.utcOffset = getSetOffset; + momentPrototype__proto.utc = setOffsetToUTC; + momentPrototype__proto.local = setOffsetToLocal; + momentPrototype__proto.parseZone = setOffsetToParsedOffset; + momentPrototype__proto.hasAlignedHourOffset = hasAlignedHourOffset; + momentPrototype__proto.isDST = isDaylightSavingTime; + momentPrototype__proto.isDSTShifted = isDaylightSavingTimeShifted; + momentPrototype__proto.isLocal = isLocal; + momentPrototype__proto.isUtcOffset = isUtcOffset; + momentPrototype__proto.isUtc = isUtc; + momentPrototype__proto.isUTC = isUtc; + + // Timezone + momentPrototype__proto.zoneAbbr = getZoneAbbr; + momentPrototype__proto.zoneName = getZoneName; + + // Deprecations + momentPrototype__proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth); + momentPrototype__proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth); + momentPrototype__proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear); + momentPrototype__proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779', getSetZone); + + var momentPrototype = momentPrototype__proto; + + function moment_moment__createUnix (input) { + return local__createLocal(input * 1000); + } + + function moment_moment__createInZone () { + return local__createLocal.apply(null, arguments).parseZone(); + } + + var defaultCalendar = { + sameDay : '[Today at] LT', + nextDay : '[Tomorrow at] LT', + nextWeek : 'dddd [at] LT', + lastDay : '[Yesterday at] LT', + lastWeek : '[Last] dddd [at] LT', + sameElse : 'L' + }; + + function locale_calendar__calendar (key, mom, now) { + var output = this._calendar[key]; + return typeof output === 'function' ? output.call(mom, now) : output; + } + + var defaultLongDateFormat = { + LTS : 'h:mm:ss A', + LT : 'h:mm A', + L : 'MM/DD/YYYY', + LL : 'MMMM D, YYYY', + LLL : 'MMMM D, YYYY h:mm A', + LLLL : 'dddd, MMMM D, YYYY h:mm A' + }; + + function longDateFormat (key) { + var format = this._longDateFormat[key], + formatUpper = this._longDateFormat[key.toUpperCase()]; + + if (format || !formatUpper) { + return format; + } + + this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) { + return val.slice(1); + }); + + return this._longDateFormat[key]; + } + + var defaultInvalidDate = 'Invalid date'; + + function invalidDate () { + return this._invalidDate; + } + + var defaultOrdinal = '%d'; + var defaultOrdinalParse = /\d{1,2}/; + + function ordinal (number) { + return this._ordinal.replace('%d', number); + } + + function preParsePostFormat (string) { + return string; + } + + var defaultRelativeTime = { + future : 'in %s', + past : '%s ago', + s : 'a few seconds', + m : 'a minute', + mm : '%d minutes', + h : 'an hour', + hh : '%d hours', + d : 'a day', + dd : '%d days', + M : 'a month', + MM : '%d months', + y : 'a year', + yy : '%d years' + }; + + function relative__relativeTime (number, withoutSuffix, string, isFuture) { + var output = this._relativeTime[string]; + return (typeof output === 'function') ? + output(number, withoutSuffix, string, isFuture) : + output.replace(/%d/i, number); + } + + function pastFuture (diff, output) { + var format = this._relativeTime[diff > 0 ? 'future' : 'past']; + return typeof format === 'function' ? format(output) : format.replace(/%s/i, output); + } + + function locale_set__set (config) { + var prop, i; + for (i in config) { + prop = config[i]; + if (typeof prop === 'function') { + this[i] = prop; + } else { + this['_' + i] = prop; + } + } + // Lenient ordinal parsing accepts just a number in addition to + // number + (possibly) stuff coming from _ordinalParseLenient. + this._ordinalParseLenient = new RegExp(this._ordinalParse.source + '|' + (/\d{1,2}/).source); + } + + var prototype__proto = Locale.prototype; + + prototype__proto._calendar = defaultCalendar; + prototype__proto.calendar = locale_calendar__calendar; + prototype__proto._longDateFormat = defaultLongDateFormat; + prototype__proto.longDateFormat = longDateFormat; + prototype__proto._invalidDate = defaultInvalidDate; + prototype__proto.invalidDate = invalidDate; + prototype__proto._ordinal = defaultOrdinal; + prototype__proto.ordinal = ordinal; + prototype__proto._ordinalParse = defaultOrdinalParse; + prototype__proto.preparse = preParsePostFormat; + prototype__proto.postformat = preParsePostFormat; + prototype__proto._relativeTime = defaultRelativeTime; + prototype__proto.relativeTime = relative__relativeTime; + prototype__proto.pastFuture = pastFuture; + prototype__proto.set = locale_set__set; + + // Month + prototype__proto.months = localeMonths; + prototype__proto._months = defaultLocaleMonths; + prototype__proto.monthsShort = localeMonthsShort; + prototype__proto._monthsShort = defaultLocaleMonthsShort; + prototype__proto.monthsParse = localeMonthsParse; + + // Week + prototype__proto.week = localeWeek; + prototype__proto._week = defaultLocaleWeek; + prototype__proto.firstDayOfYear = localeFirstDayOfYear; + prototype__proto.firstDayOfWeek = localeFirstDayOfWeek; + + // Day of Week + prototype__proto.weekdays = localeWeekdays; + prototype__proto._weekdays = defaultLocaleWeekdays; + prototype__proto.weekdaysMin = localeWeekdaysMin; + prototype__proto._weekdaysMin = defaultLocaleWeekdaysMin; + prototype__proto.weekdaysShort = localeWeekdaysShort; + prototype__proto._weekdaysShort = defaultLocaleWeekdaysShort; + prototype__proto.weekdaysParse = localeWeekdaysParse; + + // Hours + prototype__proto.isPM = localeIsPM; + prototype__proto._meridiemParse = defaultLocaleMeridiemParse; + prototype__proto.meridiem = localeMeridiem; + + function lists__get (format, index, field, setter) { + var locale = locale_locales__getLocale(); + var utc = create_utc__createUTC().set(setter, index); + return locale[field](utc, format); + } + + function list (format, index, field, count, setter) { + if (typeof format === 'number') { + index = format; + format = undefined; + } + + format = format || ''; + + if (index != null) { + return lists__get(format, index, field, setter); + } + + var i; + var out = []; + for (i = 0; i < count; i++) { + out[i] = lists__get(format, i, field, setter); + } + return out; + } + + function lists__listMonths (format, index) { + return list(format, index, 'months', 12, 'month'); + } + + function lists__listMonthsShort (format, index) { + return list(format, index, 'monthsShort', 12, 'month'); + } + + function lists__listWeekdays (format, index) { + return list(format, index, 'weekdays', 7, 'day'); + } + + function lists__listWeekdaysShort (format, index) { + return list(format, index, 'weekdaysShort', 7, 'day'); + } + + function lists__listWeekdaysMin (format, index) { + return list(format, index, 'weekdaysMin', 7, 'day'); + } + + locale_locales__getSetGlobalLocale('en', { + ordinalParse: /\d{1,2}(th|st|nd|rd)/, + ordinal : function (number) { + var b = number % 10, + output = (toInt(number % 100 / 10) === 1) ? 'th' : + (b === 1) ? 'st' : + (b === 2) ? 'nd' : + (b === 3) ? 'rd' : 'th'; + return number + output; + } + }); + + // Side effect imports + utils_hooks__hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', locale_locales__getSetGlobalLocale); + utils_hooks__hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', locale_locales__getLocale); + + var mathAbs = Math.abs; + + function duration_abs__abs () { + var data = this._data; + + this._milliseconds = mathAbs(this._milliseconds); + this._days = mathAbs(this._days); + this._months = mathAbs(this._months); + + data.milliseconds = mathAbs(data.milliseconds); + data.seconds = mathAbs(data.seconds); + data.minutes = mathAbs(data.minutes); + data.hours = mathAbs(data.hours); + data.months = mathAbs(data.months); + data.years = mathAbs(data.years); + + return this; + } + + function duration_add_subtract__addSubtract (duration, input, value, direction) { + var other = create__createDuration(input, value); + + duration._milliseconds += direction * other._milliseconds; + duration._days += direction * other._days; + duration._months += direction * other._months; + + return duration._bubble(); + } + + // supports only 2.0-style add(1, 's') or add(duration) + function duration_add_subtract__add (input, value) { + return duration_add_subtract__addSubtract(this, input, value, 1); + } + + // supports only 2.0-style subtract(1, 's') or subtract(duration) + function duration_add_subtract__subtract (input, value) { + return duration_add_subtract__addSubtract(this, input, value, -1); + } + + function absCeil (number) { + if (number < 0) { + return Math.floor(number); + } else { + return Math.ceil(number); + } + } + + function bubble () { + var milliseconds = this._milliseconds; + var days = this._days; + var months = this._months; + var data = this._data; + var seconds, minutes, hours, years, monthsFromDays; + + // if we have a mix of positive and negative values, bubble down first + // check: https://github.com/moment/moment/issues/2166 + if (!((milliseconds >= 0 && days >= 0 && months >= 0) || + (milliseconds <= 0 && days <= 0 && months <= 0))) { + milliseconds += absCeil(monthsToDays(months) + days) * 864e5; + days = 0; + months = 0; + } + + // The following code bubbles up values, see the tests for + // examples of what that means. + data.milliseconds = milliseconds % 1000; + + seconds = absFloor(milliseconds / 1000); + data.seconds = seconds % 60; + + minutes = absFloor(seconds / 60); + data.minutes = minutes % 60; + + hours = absFloor(minutes / 60); + data.hours = hours % 24; + + days += absFloor(hours / 24); + + // convert days to months + monthsFromDays = absFloor(daysToMonths(days)); + months += monthsFromDays; + days -= absCeil(monthsToDays(monthsFromDays)); + + // 12 months -> 1 year + years = absFloor(months / 12); + months %= 12; + + data.days = days; + data.months = months; + data.years = years; + + return this; + } + + function daysToMonths (days) { + // 400 years have 146097 days (taking into account leap year rules) + // 400 years have 12 months === 4800 + return days * 4800 / 146097; + } + + function monthsToDays (months) { + // the reverse of daysToMonths + return months * 146097 / 4800; + } + + function as (units) { + var days; + var months; + var milliseconds = this._milliseconds; + + units = normalizeUnits(units); + + if (units === 'month' || units === 'year') { + days = this._days + milliseconds / 864e5; + months = this._months + daysToMonths(days); + return units === 'month' ? months : months / 12; + } else { + // handle milliseconds separately because of floating point math errors (issue #1867) + days = this._days + Math.round(monthsToDays(this._months)); + switch (units) { + case 'week' : return days / 7 + milliseconds / 6048e5; + case 'day' : return days + milliseconds / 864e5; + case 'hour' : return days * 24 + milliseconds / 36e5; + case 'minute' : return days * 1440 + milliseconds / 6e4; + case 'second' : return days * 86400 + milliseconds / 1000; + // Math.floor prevents floating point math errors here + case 'millisecond': return Math.floor(days * 864e5) + milliseconds; + default: throw new Error('Unknown unit ' + units); + } + } + } + + // TODO: Use this.as('ms')? + function duration_as__valueOf () { + return ( + this._milliseconds + + this._days * 864e5 + + (this._months % 12) * 2592e6 + + toInt(this._months / 12) * 31536e6 + ); + } + + function makeAs (alias) { + return function () { + return this.as(alias); + }; + } + + var asMilliseconds = makeAs('ms'); + var asSeconds = makeAs('s'); + var asMinutes = makeAs('m'); + var asHours = makeAs('h'); + var asDays = makeAs('d'); + var asWeeks = makeAs('w'); + var asMonths = makeAs('M'); + var asYears = makeAs('y'); + + function duration_get__get (units) { + units = normalizeUnits(units); + return this[units + 's'](); + } + + function makeGetter(name) { + return function () { + return this._data[name]; + }; + } + + var milliseconds = makeGetter('milliseconds'); + var seconds = makeGetter('seconds'); + var minutes = makeGetter('minutes'); + var hours = makeGetter('hours'); + var days = makeGetter('days'); + var duration_get__months = makeGetter('months'); + var years = makeGetter('years'); + + function weeks () { + return absFloor(this.days() / 7); + } + + var round = Math.round; + var thresholds = { + s: 45, // seconds to minute + m: 45, // minutes to hour + h: 22, // hours to day + d: 26, // days to month + M: 11 // months to year + }; + + // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize + function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { + return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); + } + + function duration_humanize__relativeTime (posNegDuration, withoutSuffix, locale) { + var duration = create__createDuration(posNegDuration).abs(); + var seconds = round(duration.as('s')); + var minutes = round(duration.as('m')); + var hours = round(duration.as('h')); + var days = round(duration.as('d')); + var months = round(duration.as('M')); + var years = round(duration.as('y')); + + var a = seconds < thresholds.s && ['s', seconds] || + minutes === 1 && ['m'] || + minutes < thresholds.m && ['mm', minutes] || + hours === 1 && ['h'] || + hours < thresholds.h && ['hh', hours] || + days === 1 && ['d'] || + days < thresholds.d && ['dd', days] || + months === 1 && ['M'] || + months < thresholds.M && ['MM', months] || + years === 1 && ['y'] || ['yy', years]; + + a[2] = withoutSuffix; + a[3] = +posNegDuration > 0; + a[4] = locale; + return substituteTimeAgo.apply(null, a); + } + + // This function allows you to set a threshold for relative time strings + function duration_humanize__getSetRelativeTimeThreshold (threshold, limit) { + if (thresholds[threshold] === undefined) { + return false; + } + if (limit === undefined) { + return thresholds[threshold]; + } + thresholds[threshold] = limit; + return true; + } + + function humanize (withSuffix) { + var locale = this.localeData(); + var output = duration_humanize__relativeTime(this, !withSuffix, locale); + + if (withSuffix) { + output = locale.pastFuture(+this, output); + } + + return locale.postformat(output); + } + + var iso_string__abs = Math.abs; + + function iso_string__toISOString() { + // for ISO strings we do not use the normal bubbling rules: + // * milliseconds bubble up until they become hours + // * days do not bubble at all + // * months bubble up until they become years + // This is because there is no context-free conversion between hours and days + // (think of clock changes) + // and also not between days and months (28-31 days per month) + var seconds = iso_string__abs(this._milliseconds) / 1000; + var days = iso_string__abs(this._days); + var months = iso_string__abs(this._months); + var minutes, hours, years; + + // 3600 seconds -> 60 minutes -> 1 hour + minutes = absFloor(seconds / 60); + hours = absFloor(minutes / 60); + seconds %= 60; + minutes %= 60; + + // 12 months -> 1 year + years = absFloor(months / 12); + months %= 12; + + + // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js + var Y = years; + var M = months; + var D = days; + var h = hours; + var m = minutes; + var s = seconds; + var total = this.asSeconds(); + + if (!total) { + // this is the same as C#'s (Noda) and python (isodate)... + // but not other JS (goog.date) + return 'P0D'; + } + + return (total < 0 ? '-' : '') + + 'P' + + (Y ? Y + 'Y' : '') + + (M ? M + 'M' : '') + + (D ? D + 'D' : '') + + ((h || m || s) ? 'T' : '') + + (h ? h + 'H' : '') + + (m ? m + 'M' : '') + + (s ? s + 'S' : ''); + } + + var duration_prototype__proto = Duration.prototype; + + duration_prototype__proto.abs = duration_abs__abs; + duration_prototype__proto.add = duration_add_subtract__add; + duration_prototype__proto.subtract = duration_add_subtract__subtract; + duration_prototype__proto.as = as; + duration_prototype__proto.asMilliseconds = asMilliseconds; + duration_prototype__proto.asSeconds = asSeconds; + duration_prototype__proto.asMinutes = asMinutes; + duration_prototype__proto.asHours = asHours; + duration_prototype__proto.asDays = asDays; + duration_prototype__proto.asWeeks = asWeeks; + duration_prototype__proto.asMonths = asMonths; + duration_prototype__proto.asYears = asYears; + duration_prototype__proto.valueOf = duration_as__valueOf; + duration_prototype__proto._bubble = bubble; + duration_prototype__proto.get = duration_get__get; + duration_prototype__proto.milliseconds = milliseconds; + duration_prototype__proto.seconds = seconds; + duration_prototype__proto.minutes = minutes; + duration_prototype__proto.hours = hours; + duration_prototype__proto.days = days; + duration_prototype__proto.weeks = weeks; + duration_prototype__proto.months = duration_get__months; + duration_prototype__proto.years = years; + duration_prototype__proto.humanize = humanize; + duration_prototype__proto.toISOString = iso_string__toISOString; + duration_prototype__proto.toString = iso_string__toISOString; + duration_prototype__proto.toJSON = iso_string__toISOString; + duration_prototype__proto.locale = locale; + duration_prototype__proto.localeData = localeData; + + // Deprecations + duration_prototype__proto.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', iso_string__toISOString); + duration_prototype__proto.lang = lang; + + // Side effect imports + + addFormatToken('X', 0, 0, 'unix'); + addFormatToken('x', 0, 0, 'valueOf'); + + // PARSING + + addRegexToken('x', matchSigned); + addRegexToken('X', matchTimestamp); + addParseToken('X', function (input, array, config) { + config._d = new Date(parseFloat(input, 10) * 1000); + }); + addParseToken('x', function (input, array, config) { + config._d = new Date(toInt(input)); + }); + + // Side effect imports + + ; + + //! moment.js + //! version : 2.10.6 + //! authors : Tim Wood, Iskren Chernev, Moment.js contributors + //! license : MIT + //! momentjs.com + + utils_hooks__hooks.version = '2.10.6'; + + setHookCallback(local__createLocal); + + utils_hooks__hooks.fn = momentPrototype; + utils_hooks__hooks.min = min; + utils_hooks__hooks.max = max; + utils_hooks__hooks.utc = create_utc__createUTC; + utils_hooks__hooks.unix = moment_moment__createUnix; + utils_hooks__hooks.months = lists__listMonths; + utils_hooks__hooks.isDate = isDate; + utils_hooks__hooks.locale = locale_locales__getSetGlobalLocale; + utils_hooks__hooks.invalid = valid__createInvalid; + utils_hooks__hooks.duration = create__createDuration; + utils_hooks__hooks.isMoment = isMoment; + utils_hooks__hooks.weekdays = lists__listWeekdays; + utils_hooks__hooks.parseZone = moment_moment__createInZone; + utils_hooks__hooks.localeData = locale_locales__getLocale; + utils_hooks__hooks.isDuration = isDuration; + utils_hooks__hooks.monthsShort = lists__listMonthsShort; + utils_hooks__hooks.weekdaysMin = lists__listWeekdaysMin; + utils_hooks__hooks.defineLocale = defineLocale; + utils_hooks__hooks.weekdaysShort = lists__listWeekdaysShort; + utils_hooks__hooks.normalizeUnits = normalizeUnits; + utils_hooks__hooks.relativeTimeThreshold = duration_humanize__getSetRelativeTimeThreshold; + + var _moment__default = utils_hooks__hooks; + + //! moment.js locale configuration + //! locale : afrikaans (af) + //! author : Werner Mollentze : https://github.com/wernerm + + var af = _moment__default.defineLocale('af', { + months : 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split('_'), + monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'), + weekdays : 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split('_'), + weekdaysShort : 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'), + weekdaysMin : 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'), + meridiemParse: /vm|nm/i, + isPM : function (input) { + return /^nm$/i.test(input); + }, + meridiem : function (hours, minutes, isLower) { + if (hours < 12) { + return isLower ? 'vm' : 'VM'; + } else { + return isLower ? 'nm' : 'NM'; + } + }, + longDateFormat : { + LT : 'HH:mm', + LTS : 'HH:mm:ss', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY HH:mm', + LLLL : 'dddd, D MMMM YYYY HH:mm' + }, + calendar : { + sameDay : '[Vandag om] LT', + nextDay : '[Môre om] LT', + nextWeek : 'dddd [om] LT', + lastDay : '[Gister om] LT', + lastWeek : '[Laas] dddd [om] LT', + sameElse : 'L' + }, + relativeTime : { + future : 'oor %s', + past : '%s gelede', + s : '\'n paar sekondes', + m : '\'n minuut', + mm : '%d minute', + h : '\'n uur', + hh : '%d ure', + d : '\'n dag', + dd : '%d dae', + M : '\'n maand', + MM : '%d maande', + y : '\'n jaar', + yy : '%d jaar' + }, + ordinalParse: /\d{1,2}(ste|de)/, + ordinal : function (number) { + return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de'); // Thanks to Joris Röling : https://github.com/jjupiter + }, + week : { + dow : 1, // Maandag is die eerste dag van die week. + doy : 4 // Die week wat die 4de Januarie bevat is die eerste week van die jaar. + } + }); + + //! moment.js locale configuration + //! locale : Moroccan Arabic (ar-ma) + //! author : ElFadili Yassine : https://github.com/ElFadiliY + //! author : Abdel Said : https://github.com/abdelsaid + + var ar_ma = _moment__default.defineLocale('ar-ma', { + months : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'), + monthsShort : 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'), + weekdays : 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort : 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'), + longDateFormat : { + LT : 'HH:mm', + LTS : 'HH:mm:ss', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY HH:mm', + LLLL : 'dddd D MMMM YYYY HH:mm' + }, + calendar : { + sameDay: '[اليوم على الساعة] LT', + nextDay: '[غدا على الساعة] LT', + nextWeek: 'dddd [على الساعة] LT', + lastDay: '[أمس على الساعة] LT', + lastWeek: 'dddd [على الساعة] LT', + sameElse: 'L' + }, + relativeTime : { + future : 'في %s', + past : 'منذ %s', + s : 'ثوان', + m : 'دقيقة', + mm : '%d دقائق', + h : 'ساعة', + hh : '%d ساعات', + d : 'يوم', + dd : '%d أيام', + M : 'شهر', + MM : '%d أشهر', + y : 'سنة', + yy : '%d سنوات' + }, + week : { + dow : 6, // Saturday is the first day of the week. + doy : 12 // The week that contains Jan 1st is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : Arabic Saudi Arabia (ar-sa) + //! author : Suhail Alkowaileet : https://github.com/xsoh + + var ar_sa__symbolMap = { + '1': '١', + '2': '٢', + '3': '٣', + '4': '٤', + '5': '٥', + '6': '٦', + '7': '٧', + '8': '٨', + '9': '٩', + '0': '٠' + }, ar_sa__numberMap = { + '١': '1', + '٢': '2', + '٣': '3', + '٤': '4', + '٥': '5', + '٦': '6', + '٧': '7', + '٨': '8', + '٩': '9', + '٠': '0' + }; + + var ar_sa = _moment__default.defineLocale('ar-sa', { + months : 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), + monthsShort : 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), + weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'), + longDateFormat : { + LT : 'HH:mm', + LTS : 'HH:mm:ss', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY HH:mm', + LLLL : 'dddd D MMMM YYYY HH:mm' + }, + meridiemParse: /ص|م/, + isPM : function (input) { + return 'م' === input; + }, + meridiem : function (hour, minute, isLower) { + if (hour < 12) { + return 'ص'; + } else { + return 'م'; + } + }, + calendar : { + sameDay: '[اليوم على الساعة] LT', + nextDay: '[غدا على الساعة] LT', + nextWeek: 'dddd [على الساعة] LT', + lastDay: '[أمس على الساعة] LT', + lastWeek: 'dddd [على الساعة] LT', + sameElse: 'L' + }, + relativeTime : { + future : 'في %s', + past : 'منذ %s', + s : 'ثوان', + m : 'دقيقة', + mm : '%d دقائق', + h : 'ساعة', + hh : '%d ساعات', + d : 'يوم', + dd : '%d أيام', + M : 'شهر', + MM : '%d أشهر', + y : 'سنة', + yy : '%d سنوات' + }, + preparse: function (string) { + return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { + return ar_sa__numberMap[match]; + }).replace(/،/g, ','); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return ar_sa__symbolMap[match]; + }).replace(/,/g, '،'); + }, + week : { + dow : 6, // Saturday is the first day of the week. + doy : 12 // The week that contains Jan 1st is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : Tunisian Arabic (ar-tn) + + var ar_tn = _moment__default.defineLocale('ar-tn', { + months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), + monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'), + weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm' + }, + calendar: { + sameDay: '[اليوم على الساعة] LT', + nextDay: '[غدا على الساعة] LT', + nextWeek: 'dddd [على الساعة] LT', + lastDay: '[أمس على الساعة] LT', + lastWeek: 'dddd [على الساعة] LT', + sameElse: 'L' + }, + relativeTime: { + future: 'في %s', + past: 'منذ %s', + s: 'ثوان', + m: 'دقيقة', + mm: '%d دقائق', + h: 'ساعة', + hh: '%d ساعات', + d: 'يوم', + dd: '%d أيام', + M: 'شهر', + MM: '%d أشهر', + y: 'سنة', + yy: '%d سنوات' + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4 // The week that contains Jan 4th is the first week of the year. + } + }); + + //! moment.js locale configuration + //! Locale: Arabic (ar) + //! Author: Abdel Said: https://github.com/abdelsaid + //! Changes in months, weekdays: Ahmed Elkhatib + //! Native plural forms: forabi https://github.com/forabi + + var ar__symbolMap = { + '1': '١', + '2': '٢', + '3': '٣', + '4': '٤', + '5': '٥', + '6': '٦', + '7': '٧', + '8': '٨', + '9': '٩', + '0': '٠' + }, ar__numberMap = { + '١': '1', + '٢': '2', + '٣': '3', + '٤': '4', + '٥': '5', + '٦': '6', + '٧': '7', + '٨': '8', + '٩': '9', + '٠': '0' + }, pluralForm = function (n) { + return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5; + }, plurals = { + s : ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'], + m : ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'], + h : ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'], + d : ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'], + M : ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'], + y : ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام'] + }, pluralize = function (u) { + return function (number, withoutSuffix, string, isFuture) { + var f = pluralForm(number), + str = plurals[u][pluralForm(number)]; + if (f === 2) { + str = str[withoutSuffix ? 0 : 1]; + } + return str.replace(/%d/i, number); + }; + }, ar__months = [ + 'كانون الثاني يناير', + 'شباط فبراير', + 'آذار مارس', + 'نيسان أبريل', + 'أيار مايو', + 'حزيران يونيو', + 'تموز يوليو', + 'آب أغسطس', + 'أيلول سبتمبر', + 'تشرين الأول أكتوبر', + 'تشرين الثاني نوفمبر', + 'كانون الأول ديسمبر' + ]; + + var ar = _moment__default.defineLocale('ar', { + months : ar__months, + monthsShort : ar__months, + weekdays : 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'), + weekdaysShort : 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'), + weekdaysMin : 'ح_ن_ث_ر_خ_ج_س'.split('_'), + longDateFormat : { + LT : 'HH:mm', + LTS : 'HH:mm:ss', + L : 'D/\u200FM/\u200FYYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY HH:mm', + LLLL : 'dddd D MMMM YYYY HH:mm' + }, + meridiemParse: /ص|م/, + isPM : function (input) { + return 'م' === input; + }, + meridiem : function (hour, minute, isLower) { + if (hour < 12) { + return 'ص'; + } else { + return 'م'; + } + }, + calendar : { + sameDay: '[اليوم عند الساعة] LT', + nextDay: '[غدًا عند الساعة] LT', + nextWeek: 'dddd [عند الساعة] LT', + lastDay: '[أمس عند الساعة] LT', + lastWeek: 'dddd [عند الساعة] LT', + sameElse: 'L' + }, + relativeTime : { + future : 'بعد %s', + past : 'منذ %s', + s : pluralize('s'), + m : pluralize('m'), + mm : pluralize('m'), + h : pluralize('h'), + hh : pluralize('h'), + d : pluralize('d'), + dd : pluralize('d'), + M : pluralize('M'), + MM : pluralize('M'), + y : pluralize('y'), + yy : pluralize('y') + }, + preparse: function (string) { + return string.replace(/\u200f/g, '').replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) { + return ar__numberMap[match]; + }).replace(/،/g, ','); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return ar__symbolMap[match]; + }).replace(/,/g, '،'); + }, + week : { + dow : 6, // Saturday is the first day of the week. + doy : 12 // The week that contains Jan 1st is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : azerbaijani (az) + //! author : topchiyev : https://github.com/topchiyev + + var az__suffixes = { + 1: '-inci', + 5: '-inci', + 8: '-inci', + 70: '-inci', + 80: '-inci', + 2: '-nci', + 7: '-nci', + 20: '-nci', + 50: '-nci', + 3: '-üncü', + 4: '-üncü', + 100: '-üncü', + 6: '-ncı', + 9: '-uncu', + 10: '-uncu', + 30: '-uncu', + 60: '-ıncı', + 90: '-ıncı' + }; + + var az = _moment__default.defineLocale('az', { + months : 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split('_'), + monthsShort : 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'), + weekdays : 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split('_'), + weekdaysShort : 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'), + weekdaysMin : 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'), + longDateFormat : { + LT : 'HH:mm', + LTS : 'HH:mm:ss', + L : 'DD.MM.YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY HH:mm', + LLLL : 'dddd, D MMMM YYYY HH:mm' + }, + calendar : { + sameDay : '[bugün saat] LT', + nextDay : '[sabah saat] LT', + nextWeek : '[gələn həftə] dddd [saat] LT', + lastDay : '[dünən] LT', + lastWeek : '[keçən həftə] dddd [saat] LT', + sameElse : 'L' + }, + relativeTime : { + future : '%s sonra', + past : '%s əvvəl', + s : 'birneçə saniyyə', + m : 'bir dəqiqə', + mm : '%d dəqiqə', + h : 'bir saat', + hh : '%d saat', + d : 'bir gün', + dd : '%d gün', + M : 'bir ay', + MM : '%d ay', + y : 'bir il', + yy : '%d il' + }, + meridiemParse: /gecə|səhər|gündüz|axşam/, + isPM : function (input) { + return /^(gündüz|axşam)$/.test(input); + }, + meridiem : function (hour, minute, isLower) { + if (hour < 4) { + return 'gecə'; + } else if (hour < 12) { + return 'səhər'; + } else if (hour < 17) { + return 'gündüz'; + } else { + return 'axşam'; + } + }, + ordinalParse: /\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/, + ordinal : function (number) { + if (number === 0) { // special case for zero + return number + '-ıncı'; + } + var a = number % 10, + b = number % 100 - a, + c = number >= 100 ? 100 : null; + return number + (az__suffixes[a] || az__suffixes[b] || az__suffixes[c]); + }, + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 1st is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : belarusian (be) + //! author : Dmitry Demidov : https://github.com/demidov91 + //! author: Praleska: http://praleska.pro/ + //! Author : Menelion Elensúle : https://github.com/Oire + + function be__plural(word, num) { + var forms = word.split('_'); + return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]); + } + function be__relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + 'mm': withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін', + 'hh': withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін', + 'dd': 'дзень_дні_дзён', + 'MM': 'месяц_месяцы_месяцаў', + 'yy': 'год_гады_гадоў' + }; + if (key === 'm') { + return withoutSuffix ? 'хвіліна' : 'хвіліну'; + } + else if (key === 'h') { + return withoutSuffix ? 'гадзіна' : 'гадзіну'; + } + else { + return number + ' ' + be__plural(format[key], +number); + } + } + function be__monthsCaseReplace(m, format) { + var months = { + 'nominative': 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split('_'), + 'accusative': 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split('_') + }, + nounCase = (/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/).test(format) ? + 'accusative' : + 'nominative'; + return months[nounCase][m.month()]; + } + function be__weekdaysCaseReplace(m, format) { + var weekdays = { + 'nominative': 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split('_'), + 'accusative': 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split('_') + }, + nounCase = (/\[ ?[Вв] ?(?:мінулую|наступную)? ?\] ?dddd/).test(format) ? + 'accusative' : + 'nominative'; + return weekdays[nounCase][m.day()]; + } + + var be = _moment__default.defineLocale('be', { + months : be__monthsCaseReplace, + monthsShort : 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'), + weekdays : be__weekdaysCaseReplace, + weekdaysShort : 'нд_пн_ат_ср_чц_пт_сб'.split('_'), + weekdaysMin : 'нд_пн_ат_ср_чц_пт_сб'.split('_'), + longDateFormat : { + LT : 'HH:mm', + LTS : 'HH:mm:ss', + L : 'DD.MM.YYYY', + LL : 'D MMMM YYYY г.', + LLL : 'D MMMM YYYY г., HH:mm', + LLLL : 'dddd, D MMMM YYYY г., HH:mm' + }, + calendar : { + sameDay: '[Сёння ў] LT', + nextDay: '[Заўтра ў] LT', + lastDay: '[Учора ў] LT', + nextWeek: function () { + return '[У] dddd [ў] LT'; + }, + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 5: + case 6: + return '[У мінулую] dddd [ў] LT'; + case 1: + case 2: + case 4: + return '[У мінулы] dddd [ў] LT'; + } + }, + sameElse: 'L' + }, + relativeTime : { + future : 'праз %s', + past : '%s таму', + s : 'некалькі секунд', + m : be__relativeTimeWithPlural, + mm : be__relativeTimeWithPlural, + h : be__relativeTimeWithPlural, + hh : be__relativeTimeWithPlural, + d : 'дзень', + dd : be__relativeTimeWithPlural, + M : 'месяц', + MM : be__relativeTimeWithPlural, + y : 'год', + yy : be__relativeTimeWithPlural + }, + meridiemParse: /ночы|раніцы|дня|вечара/, + isPM : function (input) { + return /^(дня|вечара)$/.test(input); + }, + meridiem : function (hour, minute, isLower) { + if (hour < 4) { + return 'ночы'; + } else if (hour < 12) { + return 'раніцы'; + } else if (hour < 17) { + return 'дня'; + } else { + return 'вечара'; + } + }, + ordinalParse: /\d{1,2}-(і|ы|га)/, + ordinal: function (number, period) { + switch (period) { + case 'M': + case 'd': + case 'DDD': + case 'w': + case 'W': + return (number % 10 === 2 || number % 10 === 3) && (number % 100 !== 12 && number % 100 !== 13) ? number + '-і' : number + '-ы'; + case 'D': + return number + '-га'; + default: + return number; + } + }, + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 1st is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : bulgarian (bg) + //! author : Krasen Borisov : https://github.com/kraz + + var bg = _moment__default.defineLocale('bg', { + months : 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split('_'), + monthsShort : 'янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'), + weekdays : 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split('_'), + weekdaysShort : 'нед_пон_вто_сря_чет_пет_съб'.split('_'), + weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'), + longDateFormat : { + LT : 'H:mm', + LTS : 'H:mm:ss', + L : 'D.MM.YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY H:mm', + LLLL : 'dddd, D MMMM YYYY H:mm' + }, + calendar : { + sameDay : '[Днес в] LT', + nextDay : '[Утре в] LT', + nextWeek : 'dddd [в] LT', + lastDay : '[Вчера в] LT', + lastWeek : function () { + switch (this.day()) { + case 0: + case 3: + case 6: + return '[В изминалата] dddd [в] LT'; + case 1: + case 2: + case 4: + case 5: + return '[В изминалия] dddd [в] LT'; + } + }, + sameElse : 'L' + }, + relativeTime : { + future : 'след %s', + past : 'преди %s', + s : 'няколко секунди', + m : 'минута', + mm : '%d минути', + h : 'час', + hh : '%d часа', + d : 'ден', + dd : '%d дни', + M : 'месец', + MM : '%d месеца', + y : 'година', + yy : '%d години' + }, + ordinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/, + ordinal : function (number) { + var lastDigit = number % 10, + last2Digits = number % 100; + if (number === 0) { + return number + '-ев'; + } else if (last2Digits === 0) { + return number + '-ен'; + } else if (last2Digits > 10 && last2Digits < 20) { + return number + '-ти'; + } else if (lastDigit === 1) { + return number + '-ви'; + } else if (lastDigit === 2) { + return number + '-ри'; + } else if (lastDigit === 7 || lastDigit === 8) { + return number + '-ми'; + } else { + return number + '-ти'; + } + }, + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 1st is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : Bengali (bn) + //! author : Kaushik Gandhi : https://github.com/kaushikgandhi + + var bn__symbolMap = { + '1': '১', + '2': '২', + '3': '৩', + '4': '৪', + '5': '৫', + '6': '৬', + '7': '৭', + '8': '৮', + '9': '৯', + '0': '০' + }, + bn__numberMap = { + '১': '1', + '২': '2', + '৩': '3', + '৪': '4', + '৫': '5', + '৬': '6', + '৭': '7', + '৮': '8', + '৯': '9', + '০': '0' + }; + + var bn = _moment__default.defineLocale('bn', { + months : 'জানুয়ারী_ফেবুয়ারী_মার্চ_এপ্রিল_মে_জুন_জুলাই_অগাস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split('_'), + monthsShort : 'জানু_ফেব_মার্চ_এপর_মে_জুন_জুল_অগ_সেপ্ট_অক্টো_নভ_ডিসেম্'.split('_'), + weekdays : 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পত্তিবার_শুক্রুবার_শনিবার'.split('_'), + weekdaysShort : 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পত্তি_শুক্রু_শনি'.split('_'), + weekdaysMin : 'রব_সম_মঙ্গ_বু_ব্রিহ_শু_শনি'.split('_'), + longDateFormat : { + LT : 'A h:mm সময়', + LTS : 'A h:mm:ss সময়', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY, A h:mm সময়', + LLLL : 'dddd, D MMMM YYYY, A h:mm সময়' + }, + calendar : { + sameDay : '[আজ] LT', + nextDay : '[আগামীকাল] LT', + nextWeek : 'dddd, LT', + lastDay : '[গতকাল] LT', + lastWeek : '[গত] dddd, LT', + sameElse : 'L' + }, + relativeTime : { + future : '%s পরে', + past : '%s আগে', + s : 'কএক সেকেন্ড', + m : 'এক মিনিট', + mm : '%d মিনিট', + h : 'এক ঘন্টা', + hh : '%d ঘন্টা', + d : 'এক দিন', + dd : '%d দিন', + M : 'এক মাস', + MM : '%d মাস', + y : 'এক বছর', + yy : '%d বছর' + }, + preparse: function (string) { + return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) { + return bn__numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return bn__symbolMap[match]; + }); + }, + meridiemParse: /রাত|সকাল|দুপুর|বিকেল|রাত/, + isPM: function (input) { + return /^(দুপুর|বিকেল|রাত)$/.test(input); + }, + //Bengali is a vast language its spoken + //in different forms in various parts of the world. + //I have just generalized with most common one used + meridiem : function (hour, minute, isLower) { + if (hour < 4) { + return 'রাত'; + } else if (hour < 10) { + return 'সকাল'; + } else if (hour < 17) { + return 'দুপুর'; + } else if (hour < 20) { + return 'বিকেল'; + } else { + return 'রাত'; + } + }, + week : { + dow : 0, // Sunday is the first day of the week. + doy : 6 // The week that contains Jan 1st is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : tibetan (bo) + //! author : Thupten N. Chakrishar : https://github.com/vajradog + + var bo__symbolMap = { + '1': '༡', + '2': '༢', + '3': '༣', + '4': '༤', + '5': '༥', + '6': '༦', + '7': '༧', + '8': '༨', + '9': '༩', + '0': '༠' + }, + bo__numberMap = { + '༡': '1', + '༢': '2', + '༣': '3', + '༤': '4', + '༥': '5', + '༦': '6', + '༧': '7', + '༨': '8', + '༩': '9', + '༠': '0' + }; + + var bo = _moment__default.defineLocale('bo', { + months : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'), + monthsShort : 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'), + weekdays : 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split('_'), + weekdaysShort : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'), + weekdaysMin : 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'), + longDateFormat : { + LT : 'A h:mm', + LTS : 'A h:mm:ss', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY, A h:mm', + LLLL : 'dddd, D MMMM YYYY, A h:mm' + }, + calendar : { + sameDay : '[དི་རིང] LT', + nextDay : '[སང་ཉིན] LT', + nextWeek : '[བདུན་ཕྲག་རྗེས་མ], LT', + lastDay : '[ཁ་སང] LT', + lastWeek : '[བདུན་ཕྲག་མཐའ་མ] dddd, LT', + sameElse : 'L' + }, + relativeTime : { + future : '%s ལ་', + past : '%s སྔན་ལ', + s : 'ལམ་སང', + m : 'སྐར་མ་གཅིག', + mm : '%d སྐར་མ', + h : 'ཆུ་ཚོད་གཅིག', + hh : '%d ཆུ་ཚོད', + d : 'ཉིན་གཅིག', + dd : '%d ཉིན་', + M : 'ཟླ་བ་གཅིག', + MM : '%d ཟླ་བ', + y : 'ལོ་གཅིག', + yy : '%d ལོ' + }, + preparse: function (string) { + return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) { + return bo__numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return bo__symbolMap[match]; + }); + }, + meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/, + isPM: function (input) { + return /^(ཉིན་གུང|དགོང་དག|མཚན་མོ)$/.test(input); + }, + meridiem : function (hour, minute, isLower) { + if (hour < 4) { + return 'མཚན་མོ'; + } else if (hour < 10) { + return 'ཞོགས་ཀས'; + } else if (hour < 17) { + return 'ཉིན་གུང'; + } else if (hour < 20) { + return 'དགོང་དག'; + } else { + return 'མཚན་མོ'; + } + }, + week : { + dow : 0, // Sunday is the first day of the week. + doy : 6 // The week that contains Jan 1st is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : breton (br) + //! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou + + function relativeTimeWithMutation(number, withoutSuffix, key) { + var format = { + 'mm': 'munutenn', + 'MM': 'miz', + 'dd': 'devezh' + }; + return number + ' ' + mutation(format[key], number); + } + function specialMutationForYears(number) { + switch (lastNumber(number)) { + case 1: + case 3: + case 4: + case 5: + case 9: + return number + ' bloaz'; + default: + return number + ' vloaz'; + } + } + function lastNumber(number) { + if (number > 9) { + return lastNumber(number % 10); + } + return number; + } + function mutation(text, number) { + if (number === 2) { + return softMutation(text); + } + return text; + } + function softMutation(text) { + var mutationTable = { + 'm': 'v', + 'b': 'v', + 'd': 'z' + }; + if (mutationTable[text.charAt(0)] === undefined) { + return text; + } + return mutationTable[text.charAt(0)] + text.substring(1); + } + + var br = _moment__default.defineLocale('br', { + months : 'Genver_C\'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split('_'), + monthsShort : 'Gen_C\'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'), + weekdays : 'Sul_Lun_Meurzh_Merc\'her_Yaou_Gwener_Sadorn'.split('_'), + weekdaysShort : 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'), + weekdaysMin : 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'), + longDateFormat : { + LT : 'h[e]mm A', + LTS : 'h[e]mm:ss A', + L : 'DD/MM/YYYY', + LL : 'D [a viz] MMMM YYYY', + LLL : 'D [a viz] MMMM YYYY h[e]mm A', + LLLL : 'dddd, D [a viz] MMMM YYYY h[e]mm A' + }, + calendar : { + sameDay : '[Hiziv da] LT', + nextDay : '[Warc\'hoazh da] LT', + nextWeek : 'dddd [da] LT', + lastDay : '[Dec\'h da] LT', + lastWeek : 'dddd [paset da] LT', + sameElse : 'L' + }, + relativeTime : { + future : 'a-benn %s', + past : '%s \'zo', + s : 'un nebeud segondennoù', + m : 'ur vunutenn', + mm : relativeTimeWithMutation, + h : 'un eur', + hh : '%d eur', + d : 'un devezh', + dd : relativeTimeWithMutation, + M : 'ur miz', + MM : relativeTimeWithMutation, + y : 'ur bloaz', + yy : specialMutationForYears + }, + ordinalParse: /\d{1,2}(añ|vet)/, + ordinal : function (number) { + var output = (number === 1) ? 'añ' : 'vet'; + return number + output; + }, + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : bosnian (bs) + //! author : Nedim Cholich : https://github.com/frontyard + //! based on (hr) translation by Bojan Marković + + function bs__translate(number, withoutSuffix, key) { + var result = number + ' '; + switch (key) { + case 'm': + return withoutSuffix ? 'jedna minuta' : 'jedne minute'; + case 'mm': + if (number === 1) { + result += 'minuta'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'minute'; + } else { + result += 'minuta'; + } + return result; + case 'h': + return withoutSuffix ? 'jedan sat' : 'jednog sata'; + case 'hh': + if (number === 1) { + result += 'sat'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sata'; + } else { + result += 'sati'; + } + return result; + case 'dd': + if (number === 1) { + result += 'dan'; + } else { + result += 'dana'; + } + return result; + case 'MM': + if (number === 1) { + result += 'mjesec'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'mjeseca'; + } else { + result += 'mjeseci'; + } + return result; + case 'yy': + if (number === 1) { + result += 'godina'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'godine'; + } else { + result += 'godina'; + } + return result; + } + } + + var bs = _moment__default.defineLocale('bs', { + months : 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split('_'), + monthsShort : 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split('_'), + weekdays : 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'), + weekdaysShort : 'ned._pon._uto._sri._čet._pet._sub.'.split('_'), + weekdaysMin : 'ne_po_ut_sr_če_pe_su'.split('_'), + longDateFormat : { + LT : 'H:mm', + LTS : 'H:mm:ss', + L : 'DD. MM. YYYY', + LL : 'D. MMMM YYYY', + LLL : 'D. MMMM YYYY H:mm', + LLLL : 'dddd, D. MMMM YYYY H:mm' + }, + calendar : { + sameDay : '[danas u] LT', + nextDay : '[sutra u] LT', + nextWeek : function () { + switch (this.day()) { + case 0: + return '[u] [nedjelju] [u] LT'; + case 3: + return '[u] [srijedu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay : '[jučer u] LT', + lastWeek : function () { + switch (this.day()) { + case 0: + case 3: + return '[prošlu] dddd [u] LT'; + case 6: + return '[prošle] [subote] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[prošli] dddd [u] LT'; + } + }, + sameElse : 'L' + }, + relativeTime : { + future : 'za %s', + past : 'prije %s', + s : 'par sekundi', + m : bs__translate, + mm : bs__translate, + h : bs__translate, + hh : bs__translate, + d : 'dan', + dd : bs__translate, + M : 'mjesec', + MM : bs__translate, + y : 'godinu', + yy : bs__translate + }, + ordinalParse: /\d{1,2}\./, + ordinal : '%d.', + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 1st is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : catalan (ca) + //! author : Juan G. Hurtado : https://github.com/juanghurtado + + var ca = _moment__default.defineLocale('ca', { + months : 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split('_'), + monthsShort : 'gen._febr._mar._abr._mai._jun._jul._ag._set._oct._nov._des.'.split('_'), + weekdays : 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split('_'), + weekdaysShort : 'dg._dl._dt._dc._dj._dv._ds.'.split('_'), + weekdaysMin : 'Dg_Dl_Dt_Dc_Dj_Dv_Ds'.split('_'), + longDateFormat : { + LT : 'H:mm', + LTS : 'LT:ss', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY H:mm', + LLLL : 'dddd D MMMM YYYY H:mm' + }, + calendar : { + sameDay : function () { + return '[avui a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT'; + }, + nextDay : function () { + return '[demà a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT'; + }, + nextWeek : function () { + return 'dddd [a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT'; + }, + lastDay : function () { + return '[ahir a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT'; + }, + lastWeek : function () { + return '[el] dddd [passat a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT'; + }, + sameElse : 'L' + }, + relativeTime : { + future : 'en %s', + past : 'fa %s', + s : 'uns segons', + m : 'un minut', + mm : '%d minuts', + h : 'una hora', + hh : '%d hores', + d : 'un dia', + dd : '%d dies', + M : 'un mes', + MM : '%d mesos', + y : 'un any', + yy : '%d anys' + }, + ordinalParse: /\d{1,2}(r|n|t|è|a)/, + ordinal : function (number, period) { + var output = (number === 1) ? 'r' : + (number === 2) ? 'n' : + (number === 3) ? 'r' : + (number === 4) ? 't' : 'è'; + if (period === 'w' || period === 'W') { + output = 'a'; + } + return number + output; + }, + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : czech (cs) + //! author : petrbela : https://github.com/petrbela + + var cs__months = 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split('_'), + cs__monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'); + function cs__plural(n) { + return (n > 1) && (n < 5) && (~~(n / 10) !== 1); + } + function cs__translate(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': // a few seconds / in a few seconds / a few seconds ago + return (withoutSuffix || isFuture) ? 'pár sekund' : 'pár sekundami'; + case 'm': // a minute / in a minute / a minute ago + return withoutSuffix ? 'minuta' : (isFuture ? 'minutu' : 'minutou'); + case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago + if (withoutSuffix || isFuture) { + return result + (cs__plural(number) ? 'minuty' : 'minut'); + } else { + return result + 'minutami'; + } + break; + case 'h': // an hour / in an hour / an hour ago + return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou'); + case 'hh': // 9 hours / in 9 hours / 9 hours ago + if (withoutSuffix || isFuture) { + return result + (cs__plural(number) ? 'hodiny' : 'hodin'); + } else { + return result + 'hodinami'; + } + break; + case 'd': // a day / in a day / a day ago + return (withoutSuffix || isFuture) ? 'den' : 'dnem'; + case 'dd': // 9 days / in 9 days / 9 days ago + if (withoutSuffix || isFuture) { + return result + (cs__plural(number) ? 'dny' : 'dní'); + } else { + return result + 'dny'; + } + break; + case 'M': // a month / in a month / a month ago + return (withoutSuffix || isFuture) ? 'měsíc' : 'měsícem'; + case 'MM': // 9 months / in 9 months / 9 months ago + if (withoutSuffix || isFuture) { + return result + (cs__plural(number) ? 'měsíce' : 'měsíců'); + } else { + return result + 'měsíci'; + } + break; + case 'y': // a year / in a year / a year ago + return (withoutSuffix || isFuture) ? 'rok' : 'rokem'; + case 'yy': // 9 years / in 9 years / 9 years ago + if (withoutSuffix || isFuture) { + return result + (cs__plural(number) ? 'roky' : 'let'); + } else { + return result + 'lety'; + } + break; + } + } + + var cs = _moment__default.defineLocale('cs', { + months : cs__months, + monthsShort : cs__monthsShort, + monthsParse : (function (months, monthsShort) { + var i, _monthsParse = []; + for (i = 0; i < 12; i++) { + // use custom parser to solve problem with July (červenec) + _monthsParse[i] = new RegExp('^' + months[i] + '$|^' + monthsShort[i] + '$', 'i'); + } + return _monthsParse; + }(cs__months, cs__monthsShort)), + weekdays : 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'), + weekdaysShort : 'ne_po_út_st_čt_pá_so'.split('_'), + weekdaysMin : 'ne_po_út_st_čt_pá_so'.split('_'), + longDateFormat : { + LT: 'H:mm', + LTS : 'H:mm:ss', + L : 'DD.MM.YYYY', + LL : 'D. MMMM YYYY', + LLL : 'D. MMMM YYYY H:mm', + LLLL : 'dddd D. MMMM YYYY H:mm' + }, + calendar : { + sameDay: '[dnes v] LT', + nextDay: '[zítra v] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[v neděli v] LT'; + case 1: + case 2: + return '[v] dddd [v] LT'; + case 3: + return '[ve středu v] LT'; + case 4: + return '[ve čtvrtek v] LT'; + case 5: + return '[v pátek v] LT'; + case 6: + return '[v sobotu v] LT'; + } + }, + lastDay: '[včera v] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[minulou neděli v] LT'; + case 1: + case 2: + return '[minulé] dddd [v] LT'; + case 3: + return '[minulou středu v] LT'; + case 4: + case 5: + return '[minulý] dddd [v] LT'; + case 6: + return '[minulou sobotu v] LT'; + } + }, + sameElse: 'L' + }, + relativeTime : { + future : 'za %s', + past : 'před %s', + s : cs__translate, + m : cs__translate, + mm : cs__translate, + h : cs__translate, + hh : cs__translate, + d : cs__translate, + dd : cs__translate, + M : cs__translate, + MM : cs__translate, + y : cs__translate, + yy : cs__translate + }, + ordinalParse : /\d{1,2}\./, + ordinal : '%d.', + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : chuvash (cv) + //! author : Anatoly Mironov : https://github.com/mirontoli + + var cv = _moment__default.defineLocale('cv', { + months : 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split('_'), + monthsShort : 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'), + weekdays : 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split('_'), + weekdaysShort : 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'), + weekdaysMin : 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'), + longDateFormat : { + LT : 'HH:mm', + LTS : 'HH:mm:ss', + L : 'DD-MM-YYYY', + LL : 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]', + LLL : 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm', + LLLL : 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm' + }, + calendar : { + sameDay: '[Паян] LT [сехетре]', + nextDay: '[Ыран] LT [сехетре]', + lastDay: '[Ӗнер] LT [сехетре]', + nextWeek: '[Ҫитес] dddd LT [сехетре]', + lastWeek: '[Иртнӗ] dddd LT [сехетре]', + sameElse: 'L' + }, + relativeTime : { + future : function (output) { + var affix = /сехет$/i.exec(output) ? 'рен' : /ҫул$/i.exec(output) ? 'тан' : 'ран'; + return output + affix; + }, + past : '%s каялла', + s : 'пӗр-ик ҫеккунт', + m : 'пӗр минут', + mm : '%d минут', + h : 'пӗр сехет', + hh : '%d сехет', + d : 'пӗр кун', + dd : '%d кун', + M : 'пӗр уйӑх', + MM : '%d уйӑх', + y : 'пӗр ҫул', + yy : '%d ҫул' + }, + ordinalParse: /\d{1,2}-мӗш/, + ordinal : '%d-мӗш', + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 1st is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : Welsh (cy) + //! author : Robert Allen + + var cy = _moment__default.defineLocale('cy', { + months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split('_'), + monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split('_'), + weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split('_'), + weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'), + weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'), + // time formats are the same as en-gb + longDateFormat: { + LT: 'HH:mm', + LTS : 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm' + }, + calendar: { + sameDay: '[Heddiw am] LT', + nextDay: '[Yfory am] LT', + nextWeek: 'dddd [am] LT', + lastDay: '[Ddoe am] LT', + lastWeek: 'dddd [diwethaf am] LT', + sameElse: 'L' + }, + relativeTime: { + future: 'mewn %s', + past: '%s yn ôl', + s: 'ychydig eiliadau', + m: 'munud', + mm: '%d munud', + h: 'awr', + hh: '%d awr', + d: 'diwrnod', + dd: '%d diwrnod', + M: 'mis', + MM: '%d mis', + y: 'blwyddyn', + yy: '%d flynedd' + }, + ordinalParse: /\d{1,2}(fed|ain|af|il|ydd|ed|eg)/, + // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh + ordinal: function (number) { + var b = number, + output = '', + lookup = [ + '', 'af', 'il', 'ydd', 'ydd', 'ed', 'ed', 'ed', 'fed', 'fed', 'fed', // 1af to 10fed + 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'fed' // 11eg to 20fed + ]; + if (b > 20) { + if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) { + output = 'fed'; // not 30ain, 70ain or 90ain + } else { + output = 'ain'; + } + } else if (b > 0) { + output = lookup[b]; + } + return number + output; + }, + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : danish (da) + //! author : Ulrik Nielsen : https://github.com/mrbase + + var da = _moment__default.defineLocale('da', { + months : 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split('_'), + monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), + weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'), + weekdaysShort : 'søn_man_tir_ons_tor_fre_lør'.split('_'), + weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'), + longDateFormat : { + LT : 'HH:mm', + LTS : 'HH:mm:ss', + L : 'DD/MM/YYYY', + LL : 'D. MMMM YYYY', + LLL : 'D. MMMM YYYY HH:mm', + LLLL : 'dddd [d.] D. MMMM YYYY HH:mm' + }, + calendar : { + sameDay : '[I dag kl.] LT', + nextDay : '[I morgen kl.] LT', + nextWeek : 'dddd [kl.] LT', + lastDay : '[I går kl.] LT', + lastWeek : '[sidste] dddd [kl] LT', + sameElse : 'L' + }, + relativeTime : { + future : 'om %s', + past : '%s siden', + s : 'få sekunder', + m : 'et minut', + mm : '%d minutter', + h : 'en time', + hh : '%d timer', + d : 'en dag', + dd : '%d dage', + M : 'en måned', + MM : '%d måneder', + y : 'et år', + yy : '%d år' + }, + ordinalParse: /\d{1,2}\./, + ordinal : '%d.', + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : austrian german (de-at) + //! author : lluchs : https://github.com/lluchs + //! author: Menelion Elensúle: https://github.com/Oire + //! author : Martin Groller : https://github.com/MadMG + + function de_at__processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + 'm': ['eine Minute', 'einer Minute'], + 'h': ['eine Stunde', 'einer Stunde'], + 'd': ['ein Tag', 'einem Tag'], + 'dd': [number + ' Tage', number + ' Tagen'], + 'M': ['ein Monat', 'einem Monat'], + 'MM': [number + ' Monate', number + ' Monaten'], + 'y': ['ein Jahr', 'einem Jahr'], + 'yy': [number + ' Jahre', number + ' Jahren'] + }; + return withoutSuffix ? format[key][0] : format[key][1]; + } + + var de_at = _moment__default.defineLocale('de-at', { + months : 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'), + monthsShort : 'Jän._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'), + weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'), + weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), + weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + longDateFormat : { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L : 'DD.MM.YYYY', + LL : 'D. MMMM YYYY', + LLL : 'D. MMMM YYYY HH:mm', + LLLL : 'dddd, D. MMMM YYYY HH:mm' + }, + calendar : { + sameDay: '[Heute um] LT [Uhr]', + sameElse: 'L', + nextDay: '[Morgen um] LT [Uhr]', + nextWeek: 'dddd [um] LT [Uhr]', + lastDay: '[Gestern um] LT [Uhr]', + lastWeek: '[letzten] dddd [um] LT [Uhr]' + }, + relativeTime : { + future : 'in %s', + past : 'vor %s', + s : 'ein paar Sekunden', + m : de_at__processRelativeTime, + mm : '%d Minuten', + h : de_at__processRelativeTime, + hh : '%d Stunden', + d : de_at__processRelativeTime, + dd : de_at__processRelativeTime, + M : de_at__processRelativeTime, + MM : de_at__processRelativeTime, + y : de_at__processRelativeTime, + yy : de_at__processRelativeTime + }, + ordinalParse: /\d{1,2}\./, + ordinal : '%d.', + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : german (de) + //! author : lluchs : https://github.com/lluchs + //! author: Menelion Elensúle: https://github.com/Oire + + function de__processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + 'm': ['eine Minute', 'einer Minute'], + 'h': ['eine Stunde', 'einer Stunde'], + 'd': ['ein Tag', 'einem Tag'], + 'dd': [number + ' Tage', number + ' Tagen'], + 'M': ['ein Monat', 'einem Monat'], + 'MM': [number + ' Monate', number + ' Monaten'], + 'y': ['ein Jahr', 'einem Jahr'], + 'yy': [number + ' Jahre', number + ' Jahren'] + }; + return withoutSuffix ? format[key][0] : format[key][1]; + } + + var de = _moment__default.defineLocale('de', { + months : 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'), + monthsShort : 'Jan._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'), + weekdays : 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'), + weekdaysShort : 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'), + weekdaysMin : 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'), + longDateFormat : { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L : 'DD.MM.YYYY', + LL : 'D. MMMM YYYY', + LLL : 'D. MMMM YYYY HH:mm', + LLLL : 'dddd, D. MMMM YYYY HH:mm' + }, + calendar : { + sameDay: '[Heute um] LT [Uhr]', + sameElse: 'L', + nextDay: '[Morgen um] LT [Uhr]', + nextWeek: 'dddd [um] LT [Uhr]', + lastDay: '[Gestern um] LT [Uhr]', + lastWeek: '[letzten] dddd [um] LT [Uhr]' + }, + relativeTime : { + future : 'in %s', + past : 'vor %s', + s : 'ein paar Sekunden', + m : de__processRelativeTime, + mm : '%d Minuten', + h : de__processRelativeTime, + hh : '%d Stunden', + d : de__processRelativeTime, + dd : de__processRelativeTime, + M : de__processRelativeTime, + MM : de__processRelativeTime, + y : de__processRelativeTime, + yy : de__processRelativeTime + }, + ordinalParse: /\d{1,2}\./, + ordinal : '%d.', + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : modern greek (el) + //! author : Aggelos Karalias : https://github.com/mehiel + + var el = _moment__default.defineLocale('el', { + monthsNominativeEl : 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split('_'), + monthsGenitiveEl : 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split('_'), + months : function (momentToFormat, format) { + if (/D/.test(format.substring(0, format.indexOf('MMMM')))) { // if there is a day number before 'MMMM' + return this._monthsGenitiveEl[momentToFormat.month()]; + } else { + return this._monthsNominativeEl[momentToFormat.month()]; + } + }, + monthsShort : 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'), + weekdays : 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split('_'), + weekdaysShort : 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'), + weekdaysMin : 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'), + meridiem : function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'μμ' : 'ΜΜ'; + } else { + return isLower ? 'πμ' : 'ΠΜ'; + } + }, + isPM : function (input) { + return ((input + '').toLowerCase()[0] === 'μ'); + }, + meridiemParse : /[ΠΜ]\.?Μ?\.?/i, + longDateFormat : { + LT : 'h:mm A', + LTS : 'h:mm:ss A', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY h:mm A', + LLLL : 'dddd, D MMMM YYYY h:mm A' + }, + calendarEl : { + sameDay : '[Σήμερα {}] LT', + nextDay : '[Αύριο {}] LT', + nextWeek : 'dddd [{}] LT', + lastDay : '[Χθες {}] LT', + lastWeek : function () { + switch (this.day()) { + case 6: + return '[το προηγούμενο] dddd [{}] LT'; + default: + return '[την προηγούμενη] dddd [{}] LT'; + } + }, + sameElse : 'L' + }, + calendar : function (key, mom) { + var output = this._calendarEl[key], + hours = mom && mom.hours(); + if (typeof output === 'function') { + output = output.apply(mom); + } + return output.replace('{}', (hours % 12 === 1 ? 'στη' : 'στις')); + }, + relativeTime : { + future : 'σε %s', + past : '%s πριν', + s : 'λίγα δευτερόλεπτα', + m : 'ένα λεπτό', + mm : '%d λεπτά', + h : 'μία ώρα', + hh : '%d ώρες', + d : 'μία μέρα', + dd : '%d μέρες', + M : 'ένας μήνας', + MM : '%d μήνες', + y : 'ένας χρόνος', + yy : '%d χρόνια' + }, + ordinalParse: /\d{1,2}η/, + ordinal: '%dη', + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4st is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : australian english (en-au) + + var en_au = _moment__default.defineLocale('en-au', { + months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), + monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), + weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat : { + LT : 'h:mm A', + LTS : 'h:mm:ss A', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY h:mm A', + LLLL : 'dddd, D MMMM YYYY h:mm A' + }, + calendar : { + sameDay : '[Today at] LT', + nextDay : '[Tomorrow at] LT', + nextWeek : 'dddd [at] LT', + lastDay : '[Yesterday at] LT', + lastWeek : '[Last] dddd [at] LT', + sameElse : 'L' + }, + relativeTime : { + future : 'in %s', + past : '%s ago', + s : 'a few seconds', + m : 'a minute', + mm : '%d minutes', + h : 'an hour', + hh : '%d hours', + d : 'a day', + dd : '%d days', + M : 'a month', + MM : '%d months', + y : 'a year', + yy : '%d years' + }, + ordinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal : function (number) { + var b = number % 10, + output = (~~(number % 100 / 10) === 1) ? 'th' : + (b === 1) ? 'st' : + (b === 2) ? 'nd' : + (b === 3) ? 'rd' : 'th'; + return number + output; + }, + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : canadian english (en-ca) + //! author : Jonathan Abourbih : https://github.com/jonbca + + var en_ca = _moment__default.defineLocale('en-ca', { + months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), + monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), + weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat : { + LT : 'h:mm A', + LTS : 'h:mm:ss A', + L : 'YYYY-MM-DD', + LL : 'D MMMM, YYYY', + LLL : 'D MMMM, YYYY h:mm A', + LLLL : 'dddd, D MMMM, YYYY h:mm A' + }, + calendar : { + sameDay : '[Today at] LT', + nextDay : '[Tomorrow at] LT', + nextWeek : 'dddd [at] LT', + lastDay : '[Yesterday at] LT', + lastWeek : '[Last] dddd [at] LT', + sameElse : 'L' + }, + relativeTime : { + future : 'in %s', + past : '%s ago', + s : 'a few seconds', + m : 'a minute', + mm : '%d minutes', + h : 'an hour', + hh : '%d hours', + d : 'a day', + dd : '%d days', + M : 'a month', + MM : '%d months', + y : 'a year', + yy : '%d years' + }, + ordinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal : function (number) { + var b = number % 10, + output = (~~(number % 100 / 10) === 1) ? 'th' : + (b === 1) ? 'st' : + (b === 2) ? 'nd' : + (b === 3) ? 'rd' : 'th'; + return number + output; + } + }); + + //! moment.js locale configuration + //! locale : great britain english (en-gb) + //! author : Chris Gedrim : https://github.com/chrisgedrim + + var en_gb = _moment__default.defineLocale('en-gb', { + months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), + monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), + weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), + weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), + weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), + longDateFormat : { + LT : 'HH:mm', + LTS : 'HH:mm:ss', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY HH:mm', + LLLL : 'dddd, D MMMM YYYY HH:mm' + }, + calendar : { + sameDay : '[Today at] LT', + nextDay : '[Tomorrow at] LT', + nextWeek : 'dddd [at] LT', + lastDay : '[Yesterday at] LT', + lastWeek : '[Last] dddd [at] LT', + sameElse : 'L' + }, + relativeTime : { + future : 'in %s', + past : '%s ago', + s : 'a few seconds', + m : 'a minute', + mm : '%d minutes', + h : 'an hour', + hh : '%d hours', + d : 'a day', + dd : '%d days', + M : 'a month', + MM : '%d months', + y : 'a year', + yy : '%d years' + }, + ordinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal : function (number) { + var b = number % 10, + output = (~~(number % 100 / 10) === 1) ? 'th' : + (b === 1) ? 'st' : + (b === 2) ? 'nd' : + (b === 3) ? 'rd' : 'th'; + return number + output; + }, + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : esperanto (eo) + //! author : Colin Dean : https://github.com/colindean + //! komento: Mi estas malcerta se mi korekte traktis akuzativojn en tiu traduko. + //! Se ne, bonvolu korekti kaj avizi min por ke mi povas lerni! + + var eo = _moment__default.defineLocale('eo', { + months : 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split('_'), + monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aŭg_sep_okt_nov_dec'.split('_'), + weekdays : 'Dimanĉo_Lundo_Mardo_Merkredo_Ĵaŭdo_Vendredo_Sabato'.split('_'), + weekdaysShort : 'Dim_Lun_Mard_Merk_Ĵaŭ_Ven_Sab'.split('_'), + weekdaysMin : 'Di_Lu_Ma_Me_Ĵa_Ve_Sa'.split('_'), + longDateFormat : { + LT : 'HH:mm', + LTS : 'HH:mm:ss', + L : 'YYYY-MM-DD', + LL : 'D[-an de] MMMM, YYYY', + LLL : 'D[-an de] MMMM, YYYY HH:mm', + LLLL : 'dddd, [la] D[-an de] MMMM, YYYY HH:mm' + }, + meridiemParse: /[ap]\.t\.m/i, + isPM: function (input) { + return input.charAt(0).toLowerCase() === 'p'; + }, + meridiem : function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'p.t.m.' : 'P.T.M.'; + } else { + return isLower ? 'a.t.m.' : 'A.T.M.'; + } + }, + calendar : { + sameDay : '[Hodiaŭ je] LT', + nextDay : '[Morgaŭ je] LT', + nextWeek : 'dddd [je] LT', + lastDay : '[Hieraŭ je] LT', + lastWeek : '[pasinta] dddd [je] LT', + sameElse : 'L' + }, + relativeTime : { + future : 'je %s', + past : 'antaŭ %s', + s : 'sekundoj', + m : 'minuto', + mm : '%d minutoj', + h : 'horo', + hh : '%d horoj', + d : 'tago',//ne 'diurno', ĉar estas uzita por proksimumo + dd : '%d tagoj', + M : 'monato', + MM : '%d monatoj', + y : 'jaro', + yy : '%d jaroj' + }, + ordinalParse: /\d{1,2}a/, + ordinal : '%da', + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 1st is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : spanish (es) + //! author : Julio Napurí : https://github.com/julionc + + var monthsShortDot = 'Ene._Feb._Mar._Abr._May._Jun._Jul._Ago._Sep._Oct._Nov._Dic.'.split('_'), + es__monthsShort = 'Ene_Feb_Mar_Abr_May_Jun_Jul_Ago_Sep_Oct_Nov_Dic'.split('_'); + + var es = _moment__default.defineLocale('es', { + months : 'Enero_Febrero_Marzo_Abril_Mayo_Junio_Julio_Agosto_Septiembre_Octubre_Noviembre_Diciembre'.split('_'), + monthsShort : function (m, format) { + if (/-MMM-/.test(format)) { + return es__monthsShort[m.month()]; + } else { + return monthsShortDot[m.month()]; + } + }, + weekdays : 'Domingo_Lunes_Martes_Miércoles_Jueves_Viernes_Sábado'.split('_'), + weekdaysShort : 'Dom._Lun._Mar._Mié._Jue._Vie._Sáb.'.split('_'), + weekdaysMin : 'Do_Lu_Ma_Mi_Ju_Vi_Sá'.split('_'), + longDateFormat : { + LT : 'H:mm', + LTS : 'H:mm:ss', + L : 'DD/MM/YYYY', + LL : 'D [de] MMMM [de] YYYY', + LLL : 'D [de] MMMM [de] YYYY H:mm', + LLLL : 'dddd, D [de] MMMM [de] YYYY H:mm' + }, + calendar : { + sameDay : function () { + return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; + }, + nextDay : function () { + return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; + }, + nextWeek : function () { + return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; + }, + lastDay : function () { + return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; + }, + lastWeek : function () { + return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT'; + }, + sameElse : 'L' + }, + relativeTime : { + future : 'en %s', + past : 'hace %s', + s : 'unos segundos', + m : 'un minuto', + mm : '%d minutos', + h : 'una hora', + hh : '%d horas', + d : 'un día', + dd : '%d días', + M : 'un mes', + MM : '%d meses', + y : 'un año', + yy : '%d años' + }, + ordinalParse : /\d{1,2}º/, + ordinal : '%dº', + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : estonian (et) + //! author : Henry Kehlmann : https://github.com/madhenry + //! improvements : Illimar Tambek : https://github.com/ragulka + + function et__processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + 's' : ['mõne sekundi', 'mõni sekund', 'paar sekundit'], + 'm' : ['ühe minuti', 'üks minut'], + 'mm': [number + ' minuti', number + ' minutit'], + 'h' : ['ühe tunni', 'tund aega', 'üks tund'], + 'hh': [number + ' tunni', number + ' tundi'], + 'd' : ['ühe päeva', 'üks päev'], + 'M' : ['kuu aja', 'kuu aega', 'üks kuu'], + 'MM': [number + ' kuu', number + ' kuud'], + 'y' : ['ühe aasta', 'aasta', 'üks aasta'], + 'yy': [number + ' aasta', number + ' aastat'] + }; + if (withoutSuffix) { + return format[key][2] ? format[key][2] : format[key][1]; + } + return isFuture ? format[key][0] : format[key][1]; + } + + var et = _moment__default.defineLocale('et', { + months : 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split('_'), + monthsShort : 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'), + weekdays : 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split('_'), + weekdaysShort : 'P_E_T_K_N_R_L'.split('_'), + weekdaysMin : 'P_E_T_K_N_R_L'.split('_'), + longDateFormat : { + LT : 'H:mm', + LTS : 'H:mm:ss', + L : 'DD.MM.YYYY', + LL : 'D. MMMM YYYY', + LLL : 'D. MMMM YYYY H:mm', + LLLL : 'dddd, D. MMMM YYYY H:mm' + }, + calendar : { + sameDay : '[Täna,] LT', + nextDay : '[Homme,] LT', + nextWeek : '[Järgmine] dddd LT', + lastDay : '[Eile,] LT', + lastWeek : '[Eelmine] dddd LT', + sameElse : 'L' + }, + relativeTime : { + future : '%s pärast', + past : '%s tagasi', + s : et__processRelativeTime, + m : et__processRelativeTime, + mm : et__processRelativeTime, + h : et__processRelativeTime, + hh : et__processRelativeTime, + d : et__processRelativeTime, + dd : '%d päeva', + M : et__processRelativeTime, + MM : et__processRelativeTime, + y : et__processRelativeTime, + yy : et__processRelativeTime + }, + ordinalParse: /\d{1,2}\./, + ordinal : '%d.', + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : euskara (eu) + //! author : Eneko Illarramendi : https://github.com/eillarra + + var eu = _moment__default.defineLocale('eu', { + months : 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split('_'), + monthsShort : 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split('_'), + weekdays : 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split('_'), + weekdaysShort : 'ig._al._ar._az._og._ol._lr.'.split('_'), + weekdaysMin : 'ig_al_ar_az_og_ol_lr'.split('_'), + longDateFormat : { + LT : 'HH:mm', + LTS : 'HH:mm:ss', + L : 'YYYY-MM-DD', + LL : 'YYYY[ko] MMMM[ren] D[a]', + LLL : 'YYYY[ko] MMMM[ren] D[a] HH:mm', + LLLL : 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm', + l : 'YYYY-M-D', + ll : 'YYYY[ko] MMM D[a]', + lll : 'YYYY[ko] MMM D[a] HH:mm', + llll : 'ddd, YYYY[ko] MMM D[a] HH:mm' + }, + calendar : { + sameDay : '[gaur] LT[etan]', + nextDay : '[bihar] LT[etan]', + nextWeek : 'dddd LT[etan]', + lastDay : '[atzo] LT[etan]', + lastWeek : '[aurreko] dddd LT[etan]', + sameElse : 'L' + }, + relativeTime : { + future : '%s barru', + past : 'duela %s', + s : 'segundo batzuk', + m : 'minutu bat', + mm : '%d minutu', + h : 'ordu bat', + hh : '%d ordu', + d : 'egun bat', + dd : '%d egun', + M : 'hilabete bat', + MM : '%d hilabete', + y : 'urte bat', + yy : '%d urte' + }, + ordinalParse: /\d{1,2}\./, + ordinal : '%d.', + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 1st is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : Persian (fa) + //! author : Ebrahim Byagowi : https://github.com/ebraminio + + var fa__symbolMap = { + '1': '۱', + '2': '۲', + '3': '۳', + '4': '۴', + '5': '۵', + '6': '۶', + '7': '۷', + '8': '۸', + '9': '۹', + '0': '۰' + }, fa__numberMap = { + '۱': '1', + '۲': '2', + '۳': '3', + '۴': '4', + '۵': '5', + '۶': '6', + '۷': '7', + '۸': '8', + '۹': '9', + '۰': '0' + }; + + var fa = _moment__default.defineLocale('fa', { + months : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'), + monthsShort : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'), + weekdays : 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'), + weekdaysShort : 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'), + weekdaysMin : 'ی_د_س_چ_پ_ج_ش'.split('_'), + longDateFormat : { + LT : 'HH:mm', + LTS : 'HH:mm:ss', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY HH:mm', + LLLL : 'dddd, D MMMM YYYY HH:mm' + }, + meridiemParse: /قبل از ظهر|بعد از ظهر/, + isPM: function (input) { + return /بعد از ظهر/.test(input); + }, + meridiem : function (hour, minute, isLower) { + if (hour < 12) { + return 'قبل از ظهر'; + } else { + return 'بعد از ظهر'; + } + }, + calendar : { + sameDay : '[امروز ساعت] LT', + nextDay : '[فردا ساعت] LT', + nextWeek : 'dddd [ساعت] LT', + lastDay : '[دیروز ساعت] LT', + lastWeek : 'dddd [پیش] [ساعت] LT', + sameElse : 'L' + }, + relativeTime : { + future : 'در %s', + past : '%s پیش', + s : 'چندین ثانیه', + m : 'یک دقیقه', + mm : '%d دقیقه', + h : 'یک ساعت', + hh : '%d ساعت', + d : 'یک روز', + dd : '%d روز', + M : 'یک ماه', + MM : '%d ماه', + y : 'یک سال', + yy : '%d سال' + }, + preparse: function (string) { + return string.replace(/[۰-۹]/g, function (match) { + return fa__numberMap[match]; + }).replace(/،/g, ','); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return fa__symbolMap[match]; + }).replace(/,/g, '،'); + }, + ordinalParse: /\d{1,2}م/, + ordinal : '%dم', + week : { + dow : 6, // Saturday is the first day of the week. + doy : 12 // The week that contains Jan 1st is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : finnish (fi) + //! author : Tarmo Aidantausta : https://github.com/bleadof + + var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' '), + numbersFuture = [ + 'nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden', + numbersPast[7], numbersPast[8], numbersPast[9] + ]; + function fi__translate(number, withoutSuffix, key, isFuture) { + var result = ''; + switch (key) { + case 's': + return isFuture ? 'muutaman sekunnin' : 'muutama sekunti'; + case 'm': + return isFuture ? 'minuutin' : 'minuutti'; + case 'mm': + result = isFuture ? 'minuutin' : 'minuuttia'; + break; + case 'h': + return isFuture ? 'tunnin' : 'tunti'; + case 'hh': + result = isFuture ? 'tunnin' : 'tuntia'; + break; + case 'd': + return isFuture ? 'päivän' : 'päivä'; + case 'dd': + result = isFuture ? 'päivän' : 'päivää'; + break; + case 'M': + return isFuture ? 'kuukauden' : 'kuukausi'; + case 'MM': + result = isFuture ? 'kuukauden' : 'kuukautta'; + break; + case 'y': + return isFuture ? 'vuoden' : 'vuosi'; + case 'yy': + result = isFuture ? 'vuoden' : 'vuotta'; + break; + } + result = verbalNumber(number, isFuture) + ' ' + result; + return result; + } + function verbalNumber(number, isFuture) { + return number < 10 ? (isFuture ? numbersFuture[number] : numbersPast[number]) : number; + } + + var fi = _moment__default.defineLocale('fi', { + months : 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split('_'), + monthsShort : 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split('_'), + weekdays : 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split('_'), + weekdaysShort : 'su_ma_ti_ke_to_pe_la'.split('_'), + weekdaysMin : 'su_ma_ti_ke_to_pe_la'.split('_'), + longDateFormat : { + LT : 'HH.mm', + LTS : 'HH.mm.ss', + L : 'DD.MM.YYYY', + LL : 'Do MMMM[ta] YYYY', + LLL : 'Do MMMM[ta] YYYY, [klo] HH.mm', + LLLL : 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm', + l : 'D.M.YYYY', + ll : 'Do MMM YYYY', + lll : 'Do MMM YYYY, [klo] HH.mm', + llll : 'ddd, Do MMM YYYY, [klo] HH.mm' + }, + calendar : { + sameDay : '[tänään] [klo] LT', + nextDay : '[huomenna] [klo] LT', + nextWeek : 'dddd [klo] LT', + lastDay : '[eilen] [klo] LT', + lastWeek : '[viime] dddd[na] [klo] LT', + sameElse : 'L' + }, + relativeTime : { + future : '%s päästä', + past : '%s sitten', + s : fi__translate, + m : fi__translate, + mm : fi__translate, + h : fi__translate, + hh : fi__translate, + d : fi__translate, + dd : fi__translate, + M : fi__translate, + MM : fi__translate, + y : fi__translate, + yy : fi__translate + }, + ordinalParse: /\d{1,2}\./, + ordinal : '%d.', + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : faroese (fo) + //! author : Ragnar Johannesen : https://github.com/ragnar123 + + var fo = _moment__default.defineLocale('fo', { + months : 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split('_'), + monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'), + weekdays : 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split('_'), + weekdaysShort : 'sun_mán_týs_mik_hós_frí_ley'.split('_'), + weekdaysMin : 'su_má_tý_mi_hó_fr_le'.split('_'), + longDateFormat : { + LT : 'HH:mm', + LTS : 'HH:mm:ss', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY HH:mm', + LLLL : 'dddd D. MMMM, YYYY HH:mm' + }, + calendar : { + sameDay : '[Í dag kl.] LT', + nextDay : '[Í morgin kl.] LT', + nextWeek : 'dddd [kl.] LT', + lastDay : '[Í gjár kl.] LT', + lastWeek : '[síðstu] dddd [kl] LT', + sameElse : 'L' + }, + relativeTime : { + future : 'um %s', + past : '%s síðani', + s : 'fá sekund', + m : 'ein minutt', + mm : '%d minuttir', + h : 'ein tími', + hh : '%d tímar', + d : 'ein dagur', + dd : '%d dagar', + M : 'ein mánaði', + MM : '%d mánaðir', + y : 'eitt ár', + yy : '%d ár' + }, + ordinalParse: /\d{1,2}\./, + ordinal : '%d.', + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : canadian french (fr-ca) + //! author : Jonathan Abourbih : https://github.com/jonbca + + var fr_ca = _moment__default.defineLocale('fr-ca', { + months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'), + monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'), + weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), + weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), + weekdaysMin : 'Di_Lu_Ma_Me_Je_Ve_Sa'.split('_'), + longDateFormat : { + LT : 'HH:mm', + LTS : 'HH:mm:ss', + L : 'YYYY-MM-DD', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY HH:mm', + LLLL : 'dddd D MMMM YYYY HH:mm' + }, + calendar : { + sameDay: '[Aujourd\'hui à] LT', + nextDay: '[Demain à] LT', + nextWeek: 'dddd [à] LT', + lastDay: '[Hier à] LT', + lastWeek: 'dddd [dernier à] LT', + sameElse: 'L' + }, + relativeTime : { + future : 'dans %s', + past : 'il y a %s', + s : 'quelques secondes', + m : 'une minute', + mm : '%d minutes', + h : 'une heure', + hh : '%d heures', + d : 'un jour', + dd : '%d jours', + M : 'un mois', + MM : '%d mois', + y : 'un an', + yy : '%d ans' + }, + ordinalParse: /\d{1,2}(er|e)/, + ordinal : function (number) { + return number + (number === 1 ? 'er' : 'e'); + } + }); + + //! moment.js locale configuration + //! locale : french (fr) + //! author : John Fischer : https://github.com/jfroffice + + var fr = _moment__default.defineLocale('fr', { + months : 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'), + monthsShort : 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'), + weekdays : 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'), + weekdaysShort : 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'), + weekdaysMin : 'Di_Lu_Ma_Me_Je_Ve_Sa'.split('_'), + longDateFormat : { + LT : 'HH:mm', + LTS : 'HH:mm:ss', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY HH:mm', + LLLL : 'dddd D MMMM YYYY HH:mm' + }, + calendar : { + sameDay: '[Aujourd\'hui à] LT', + nextDay: '[Demain à] LT', + nextWeek: 'dddd [à] LT', + lastDay: '[Hier à] LT', + lastWeek: 'dddd [dernier à] LT', + sameElse: 'L' + }, + relativeTime : { + future : 'dans %s', + past : 'il y a %s', + s : 'quelques secondes', + m : 'une minute', + mm : '%d minutes', + h : 'une heure', + hh : '%d heures', + d : 'un jour', + dd : '%d jours', + M : 'un mois', + MM : '%d mois', + y : 'un an', + yy : '%d ans' + }, + ordinalParse: /\d{1,2}(er|)/, + ordinal : function (number) { + return number + (number === 1 ? 'er' : ''); + }, + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : frisian (fy) + //! author : Robin van der Vliet : https://github.com/robin0van0der0v + + var fy__monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'), + fy__monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'); + + var fy = _moment__default.defineLocale('fy', { + months : 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split('_'), + monthsShort : function (m, format) { + if (/-MMM-/.test(format)) { + return fy__monthsShortWithoutDots[m.month()]; + } else { + return fy__monthsShortWithDots[m.month()]; + } + }, + weekdays : 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split('_'), + weekdaysShort : 'si._mo._ti._wo._to._fr._so.'.split('_'), + weekdaysMin : 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'), + longDateFormat : { + LT : 'HH:mm', + LTS : 'HH:mm:ss', + L : 'DD-MM-YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY HH:mm', + LLLL : 'dddd D MMMM YYYY HH:mm' + }, + calendar : { + sameDay: '[hjoed om] LT', + nextDay: '[moarn om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[juster om] LT', + lastWeek: '[ôfrûne] dddd [om] LT', + sameElse: 'L' + }, + relativeTime : { + future : 'oer %s', + past : '%s lyn', + s : 'in pear sekonden', + m : 'ien minút', + mm : '%d minuten', + h : 'ien oere', + hh : '%d oeren', + d : 'ien dei', + dd : '%d dagen', + M : 'ien moanne', + MM : '%d moannen', + y : 'ien jier', + yy : '%d jierren' + }, + ordinalParse: /\d{1,2}(ste|de)/, + ordinal : function (number) { + return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de'); + }, + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : galician (gl) + //! author : Juan G. Hurtado : https://github.com/juanghurtado + + var gl = _moment__default.defineLocale('gl', { + months : 'Xaneiro_Febreiro_Marzo_Abril_Maio_Xuño_Xullo_Agosto_Setembro_Outubro_Novembro_Decembro'.split('_'), + monthsShort : 'Xan._Feb._Mar._Abr._Mai._Xuñ._Xul._Ago._Set._Out._Nov._Dec.'.split('_'), + weekdays : 'Domingo_Luns_Martes_Mércores_Xoves_Venres_Sábado'.split('_'), + weekdaysShort : 'Dom._Lun._Mar._Mér._Xov._Ven._Sáb.'.split('_'), + weekdaysMin : 'Do_Lu_Ma_Mé_Xo_Ve_Sá'.split('_'), + longDateFormat : { + LT : 'H:mm', + LTS : 'H:mm:ss', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY H:mm', + LLLL : 'dddd D MMMM YYYY H:mm' + }, + calendar : { + sameDay : function () { + return '[hoxe ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT'; + }, + nextDay : function () { + return '[mañá ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT'; + }, + nextWeek : function () { + return 'dddd [' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT'; + }, + lastDay : function () { + return '[onte ' + ((this.hours() !== 1) ? 'á' : 'a') + '] LT'; + }, + lastWeek : function () { + return '[o] dddd [pasado ' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT'; + }, + sameElse : 'L' + }, + relativeTime : { + future : function (str) { + if (str === 'uns segundos') { + return 'nuns segundos'; + } + return 'en ' + str; + }, + past : 'hai %s', + s : 'uns segundos', + m : 'un minuto', + mm : '%d minutos', + h : 'unha hora', + hh : '%d horas', + d : 'un día', + dd : '%d días', + M : 'un mes', + MM : '%d meses', + y : 'un ano', + yy : '%d anos' + }, + ordinalParse : /\d{1,2}º/, + ordinal : '%dº', + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 1st is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : Hebrew (he) + //! author : Tomer Cohen : https://github.com/tomer + //! author : Moshe Simantov : https://github.com/DevelopmentIL + //! author : Tal Ater : https://github.com/TalAter + + var he = _moment__default.defineLocale('he', { + months : 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split('_'), + monthsShort : 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'), + weekdays : 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'), + weekdaysShort : 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'), + weekdaysMin : 'א_ב_ג_ד_ה_ו_ש'.split('_'), + longDateFormat : { + LT : 'HH:mm', + LTS : 'HH:mm:ss', + L : 'DD/MM/YYYY', + LL : 'D [ב]MMMM YYYY', + LLL : 'D [ב]MMMM YYYY HH:mm', + LLLL : 'dddd, D [ב]MMMM YYYY HH:mm', + l : 'D/M/YYYY', + ll : 'D MMM YYYY', + lll : 'D MMM YYYY HH:mm', + llll : 'ddd, D MMM YYYY HH:mm' + }, + calendar : { + sameDay : '[היום ב־]LT', + nextDay : '[מחר ב־]LT', + nextWeek : 'dddd [בשעה] LT', + lastDay : '[אתמול ב־]LT', + lastWeek : '[ביום] dddd [האחרון בשעה] LT', + sameElse : 'L' + }, + relativeTime : { + future : 'בעוד %s', + past : 'לפני %s', + s : 'מספר שניות', + m : 'דקה', + mm : '%d דקות', + h : 'שעה', + hh : function (number) { + if (number === 2) { + return 'שעתיים'; + } + return number + ' שעות'; + }, + d : 'יום', + dd : function (number) { + if (number === 2) { + return 'יומיים'; + } + return number + ' ימים'; + }, + M : 'חודש', + MM : function (number) { + if (number === 2) { + return 'חודשיים'; + } + return number + ' חודשים'; + }, + y : 'שנה', + yy : function (number) { + if (number === 2) { + return 'שנתיים'; + } else if (number % 10 === 0 && number !== 10) { + return number + ' שנה'; + } + return number + ' שנים'; + } + } + }); + + //! moment.js locale configuration + //! locale : hindi (hi) + //! author : Mayank Singhal : https://github.com/mayanksinghal + + var hi__symbolMap = { + '1': '१', + '2': '२', + '3': '३', + '4': '४', + '5': '५', + '6': '६', + '7': '७', + '8': '८', + '9': '९', + '0': '०' + }, + hi__numberMap = { + '१': '1', + '२': '2', + '३': '3', + '४': '4', + '५': '5', + '६': '6', + '७': '7', + '८': '8', + '९': '9', + '०': '0' + }; + + var hi = _moment__default.defineLocale('hi', { + months : 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split('_'), + monthsShort : 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'), + weekdays : 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'), + weekdaysShort : 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'), + weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'), + longDateFormat : { + LT : 'A h:mm बजे', + LTS : 'A h:mm:ss बजे', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY, A h:mm बजे', + LLLL : 'dddd, D MMMM YYYY, A h:mm बजे' + }, + calendar : { + sameDay : '[आज] LT', + nextDay : '[कल] LT', + nextWeek : 'dddd, LT', + lastDay : '[कल] LT', + lastWeek : '[पिछले] dddd, LT', + sameElse : 'L' + }, + relativeTime : { + future : '%s में', + past : '%s पहले', + s : 'कुछ ही क्षण', + m : 'एक मिनट', + mm : '%d मिनट', + h : 'एक घंटा', + hh : '%d घंटे', + d : 'एक दिन', + dd : '%d दिन', + M : 'एक महीने', + MM : '%d महीने', + y : 'एक वर्ष', + yy : '%d वर्ष' + }, + preparse: function (string) { + return string.replace(/[१२३४५६७८९०]/g, function (match) { + return hi__numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return hi__symbolMap[match]; + }); + }, + // Hindi notation for meridiems are quite fuzzy in practice. While there exists + // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi. + meridiemParse: /रात|सुबह|दोपहर|शाम/, + meridiemHour : function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'रात') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'सुबह') { + return hour; + } else if (meridiem === 'दोपहर') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'शाम') { + return hour + 12; + } + }, + meridiem : function (hour, minute, isLower) { + if (hour < 4) { + return 'रात'; + } else if (hour < 10) { + return 'सुबह'; + } else if (hour < 17) { + return 'दोपहर'; + } else if (hour < 20) { + return 'शाम'; + } else { + return 'रात'; + } + }, + week : { + dow : 0, // Sunday is the first day of the week. + doy : 6 // The week that contains Jan 1st is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : hrvatski (hr) + //! author : Bojan Marković : https://github.com/bmarkovic + + function hr__translate(number, withoutSuffix, key) { + var result = number + ' '; + switch (key) { + case 'm': + return withoutSuffix ? 'jedna minuta' : 'jedne minute'; + case 'mm': + if (number === 1) { + result += 'minuta'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'minute'; + } else { + result += 'minuta'; + } + return result; + case 'h': + return withoutSuffix ? 'jedan sat' : 'jednog sata'; + case 'hh': + if (number === 1) { + result += 'sat'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'sata'; + } else { + result += 'sati'; + } + return result; + case 'dd': + if (number === 1) { + result += 'dan'; + } else { + result += 'dana'; + } + return result; + case 'MM': + if (number === 1) { + result += 'mjesec'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'mjeseca'; + } else { + result += 'mjeseci'; + } + return result; + case 'yy': + if (number === 1) { + result += 'godina'; + } else if (number === 2 || number === 3 || number === 4) { + result += 'godine'; + } else { + result += 'godina'; + } + return result; + } + } + + var hr = _moment__default.defineLocale('hr', { + months : 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split('_'), + monthsShort : 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split('_'), + weekdays : 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'), + weekdaysShort : 'ned._pon._uto._sri._čet._pet._sub.'.split('_'), + weekdaysMin : 'ne_po_ut_sr_če_pe_su'.split('_'), + longDateFormat : { + LT : 'H:mm', + LTS : 'H:mm:ss', + L : 'DD. MM. YYYY', + LL : 'D. MMMM YYYY', + LLL : 'D. MMMM YYYY H:mm', + LLLL : 'dddd, D. MMMM YYYY H:mm' + }, + calendar : { + sameDay : '[danas u] LT', + nextDay : '[sutra u] LT', + nextWeek : function () { + switch (this.day()) { + case 0: + return '[u] [nedjelju] [u] LT'; + case 3: + return '[u] [srijedu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay : '[jučer u] LT', + lastWeek : function () { + switch (this.day()) { + case 0: + case 3: + return '[prošlu] dddd [u] LT'; + case 6: + return '[prošle] [subote] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[prošli] dddd [u] LT'; + } + }, + sameElse : 'L' + }, + relativeTime : { + future : 'za %s', + past : 'prije %s', + s : 'par sekundi', + m : hr__translate, + mm : hr__translate, + h : hr__translate, + hh : hr__translate, + d : 'dan', + dd : hr__translate, + M : 'mjesec', + MM : hr__translate, + y : 'godinu', + yy : hr__translate + }, + ordinalParse: /\d{1,2}\./, + ordinal : '%d.', + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 1st is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : hungarian (hu) + //! author : Adam Brunner : https://github.com/adambrunner + + var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' '); + function hu__translate(number, withoutSuffix, key, isFuture) { + var num = number, + suffix; + switch (key) { + case 's': + return (isFuture || withoutSuffix) ? 'néhány másodperc' : 'néhány másodperce'; + case 'm': + return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce'); + case 'mm': + return num + (isFuture || withoutSuffix ? ' perc' : ' perce'); + case 'h': + return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája'); + case 'hh': + return num + (isFuture || withoutSuffix ? ' óra' : ' órája'); + case 'd': + return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja'); + case 'dd': + return num + (isFuture || withoutSuffix ? ' nap' : ' napja'); + case 'M': + return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja'); + case 'MM': + return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja'); + case 'y': + return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve'); + case 'yy': + return num + (isFuture || withoutSuffix ? ' év' : ' éve'); + } + return ''; + } + function week(isFuture) { + return (isFuture ? '' : '[múlt] ') + '[' + weekEndings[this.day()] + '] LT[-kor]'; + } + + var hu = _moment__default.defineLocale('hu', { + months : 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split('_'), + monthsShort : 'jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec'.split('_'), + weekdays : 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'), + weekdaysShort : 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'), + weekdaysMin : 'v_h_k_sze_cs_p_szo'.split('_'), + longDateFormat : { + LT : 'H:mm', + LTS : 'H:mm:ss', + L : 'YYYY.MM.DD.', + LL : 'YYYY. MMMM D.', + LLL : 'YYYY. MMMM D. H:mm', + LLLL : 'YYYY. MMMM D., dddd H:mm' + }, + meridiemParse: /de|du/i, + isPM: function (input) { + return input.charAt(1).toLowerCase() === 'u'; + }, + meridiem : function (hours, minutes, isLower) { + if (hours < 12) { + return isLower === true ? 'de' : 'DE'; + } else { + return isLower === true ? 'du' : 'DU'; + } + }, + calendar : { + sameDay : '[ma] LT[-kor]', + nextDay : '[holnap] LT[-kor]', + nextWeek : function () { + return week.call(this, true); + }, + lastDay : '[tegnap] LT[-kor]', + lastWeek : function () { + return week.call(this, false); + }, + sameElse : 'L' + }, + relativeTime : { + future : '%s múlva', + past : '%s', + s : hu__translate, + m : hu__translate, + mm : hu__translate, + h : hu__translate, + hh : hu__translate, + d : hu__translate, + dd : hu__translate, + M : hu__translate, + MM : hu__translate, + y : hu__translate, + yy : hu__translate + }, + ordinalParse: /\d{1,2}\./, + ordinal : '%d.', + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 1st is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : Armenian (hy-am) + //! author : Armendarabyan : https://github.com/armendarabyan + + function hy_am__monthsCaseReplace(m, format) { + var months = { + 'nominative': 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split('_'), + 'accusative': 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split('_') + }, + nounCase = (/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/).test(format) ? + 'accusative' : + 'nominative'; + return months[nounCase][m.month()]; + } + function hy_am__monthsShortCaseReplace(m, format) { + var monthsShort = 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'); + return monthsShort[m.month()]; + } + function hy_am__weekdaysCaseReplace(m, format) { + var weekdays = 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split('_'); + return weekdays[m.day()]; + } + + var hy_am = _moment__default.defineLocale('hy-am', { + months : hy_am__monthsCaseReplace, + monthsShort : hy_am__monthsShortCaseReplace, + weekdays : hy_am__weekdaysCaseReplace, + weekdaysShort : 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'), + weekdaysMin : 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'), + longDateFormat : { + LT : 'HH:mm', + LTS : 'HH:mm:ss', + L : 'DD.MM.YYYY', + LL : 'D MMMM YYYY թ.', + LLL : 'D MMMM YYYY թ., HH:mm', + LLLL : 'dddd, D MMMM YYYY թ., HH:mm' + }, + calendar : { + sameDay: '[այսօր] LT', + nextDay: '[վաղը] LT', + lastDay: '[երեկ] LT', + nextWeek: function () { + return 'dddd [օրը ժամը] LT'; + }, + lastWeek: function () { + return '[անցած] dddd [օրը ժամը] LT'; + }, + sameElse: 'L' + }, + relativeTime : { + future : '%s հետո', + past : '%s առաջ', + s : 'մի քանի վայրկյան', + m : 'րոպե', + mm : '%d րոպե', + h : 'ժամ', + hh : '%d ժամ', + d : 'օր', + dd : '%d օր', + M : 'ամիս', + MM : '%d ամիս', + y : 'տարի', + yy : '%d տարի' + }, + meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/, + isPM: function (input) { + return /^(ցերեկվա|երեկոյան)$/.test(input); + }, + meridiem : function (hour) { + if (hour < 4) { + return 'գիշերվա'; + } else if (hour < 12) { + return 'առավոտվա'; + } else if (hour < 17) { + return 'ցերեկվա'; + } else { + return 'երեկոյան'; + } + }, + ordinalParse: /\d{1,2}|\d{1,2}-(ին|րդ)/, + ordinal: function (number, period) { + switch (period) { + case 'DDD': + case 'w': + case 'W': + case 'DDDo': + if (number === 1) { + return number + '-ին'; + } + return number + '-րդ'; + default: + return number; + } + }, + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 1st is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : Bahasa Indonesia (id) + //! author : Mohammad Satrio Utomo : https://github.com/tyok + //! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan + + var id = _moment__default.defineLocale('id', { + months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split('_'), + monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nov_Des'.split('_'), + weekdays : 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'), + weekdaysShort : 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'), + weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'), + longDateFormat : { + LT : 'HH.mm', + LTS : 'HH.mm.ss', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY [pukul] HH.mm', + LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm' + }, + meridiemParse: /pagi|siang|sore|malam/, + meridiemHour : function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'pagi') { + return hour; + } else if (meridiem === 'siang') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'sore' || meridiem === 'malam') { + return hour + 12; + } + }, + meridiem : function (hours, minutes, isLower) { + if (hours < 11) { + return 'pagi'; + } else if (hours < 15) { + return 'siang'; + } else if (hours < 19) { + return 'sore'; + } else { + return 'malam'; + } + }, + calendar : { + sameDay : '[Hari ini pukul] LT', + nextDay : '[Besok pukul] LT', + nextWeek : 'dddd [pukul] LT', + lastDay : '[Kemarin pukul] LT', + lastWeek : 'dddd [lalu pukul] LT', + sameElse : 'L' + }, + relativeTime : { + future : 'dalam %s', + past : '%s yang lalu', + s : 'beberapa detik', + m : 'semenit', + mm : '%d menit', + h : 'sejam', + hh : '%d jam', + d : 'sehari', + dd : '%d hari', + M : 'sebulan', + MM : '%d bulan', + y : 'setahun', + yy : '%d tahun' + }, + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 1st is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : icelandic (is) + //! author : Hinrik Örn Sigurðsson : https://github.com/hinrik + + function is__plural(n) { + if (n % 100 === 11) { + return true; + } else if (n % 10 === 1) { + return false; + } + return true; + } + function is__translate(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': + return withoutSuffix || isFuture ? 'nokkrar sekúndur' : 'nokkrum sekúndum'; + case 'm': + return withoutSuffix ? 'mínúta' : 'mínútu'; + case 'mm': + if (is__plural(number)) { + return result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum'); + } else if (withoutSuffix) { + return result + 'mínúta'; + } + return result + 'mínútu'; + case 'hh': + if (is__plural(number)) { + return result + (withoutSuffix || isFuture ? 'klukkustundir' : 'klukkustundum'); + } + return result + 'klukkustund'; + case 'd': + if (withoutSuffix) { + return 'dagur'; + } + return isFuture ? 'dag' : 'degi'; + case 'dd': + if (is__plural(number)) { + if (withoutSuffix) { + return result + 'dagar'; + } + return result + (isFuture ? 'daga' : 'dögum'); + } else if (withoutSuffix) { + return result + 'dagur'; + } + return result + (isFuture ? 'dag' : 'degi'); + case 'M': + if (withoutSuffix) { + return 'mánuður'; + } + return isFuture ? 'mánuð' : 'mánuði'; + case 'MM': + if (is__plural(number)) { + if (withoutSuffix) { + return result + 'mánuðir'; + } + return result + (isFuture ? 'mánuði' : 'mánuðum'); + } else if (withoutSuffix) { + return result + 'mánuður'; + } + return result + (isFuture ? 'mánuð' : 'mánuði'); + case 'y': + return withoutSuffix || isFuture ? 'ár' : 'ári'; + case 'yy': + if (is__plural(number)) { + return result + (withoutSuffix || isFuture ? 'ár' : 'árum'); + } + return result + (withoutSuffix || isFuture ? 'ár' : 'ári'); + } + } + + var is = _moment__default.defineLocale('is', { + months : 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split('_'), + monthsShort : 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'), + weekdays : 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split('_'), + weekdaysShort : 'sun_mán_þri_mið_fim_fös_lau'.split('_'), + weekdaysMin : 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'), + longDateFormat : { + LT : 'H:mm', + LTS : 'H:mm:ss', + L : 'DD/MM/YYYY', + LL : 'D. MMMM YYYY', + LLL : 'D. MMMM YYYY [kl.] H:mm', + LLLL : 'dddd, D. MMMM YYYY [kl.] H:mm' + }, + calendar : { + sameDay : '[í dag kl.] LT', + nextDay : '[á morgun kl.] LT', + nextWeek : 'dddd [kl.] LT', + lastDay : '[í gær kl.] LT', + lastWeek : '[síðasta] dddd [kl.] LT', + sameElse : 'L' + }, + relativeTime : { + future : 'eftir %s', + past : 'fyrir %s síðan', + s : is__translate, + m : is__translate, + mm : is__translate, + h : 'klukkustund', + hh : is__translate, + d : is__translate, + dd : is__translate, + M : is__translate, + MM : is__translate, + y : is__translate, + yy : is__translate + }, + ordinalParse: /\d{1,2}\./, + ordinal : '%d.', + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : italian (it) + //! author : Lorenzo : https://github.com/aliem + //! author: Mattia Larentis: https://github.com/nostalgiaz + + var it = _moment__default.defineLocale('it', { + months : 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'), + monthsShort : 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'), + weekdays : 'Domenica_Lunedì_Martedì_Mercoledì_Giovedì_Venerdì_Sabato'.split('_'), + weekdaysShort : 'Dom_Lun_Mar_Mer_Gio_Ven_Sab'.split('_'), + weekdaysMin : 'D_L_Ma_Me_G_V_S'.split('_'), + longDateFormat : { + LT : 'HH:mm', + LTS : 'HH:mm:ss', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY HH:mm', + LLLL : 'dddd, D MMMM YYYY HH:mm' + }, + calendar : { + sameDay: '[Oggi alle] LT', + nextDay: '[Domani alle] LT', + nextWeek: 'dddd [alle] LT', + lastDay: '[Ieri alle] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[la scorsa] dddd [alle] LT'; + default: + return '[lo scorso] dddd [alle] LT'; + } + }, + sameElse: 'L' + }, + relativeTime : { + future : function (s) { + return ((/^[0-9].+$/).test(s) ? 'tra' : 'in') + ' ' + s; + }, + past : '%s fa', + s : 'alcuni secondi', + m : 'un minuto', + mm : '%d minuti', + h : 'un\'ora', + hh : '%d ore', + d : 'un giorno', + dd : '%d giorni', + M : 'un mese', + MM : '%d mesi', + y : 'un anno', + yy : '%d anni' + }, + ordinalParse : /\d{1,2}º/, + ordinal: '%dº', + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : japanese (ja) + //! author : LI Long : https://github.com/baryon + + var ja = _moment__default.defineLocale('ja', { + months : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'), + monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'), + weekdays : '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'), + weekdaysShort : '日_月_火_水_木_金_土'.split('_'), + weekdaysMin : '日_月_火_水_木_金_土'.split('_'), + longDateFormat : { + LT : 'Ah時m分', + LTS : 'Ah時m分s秒', + L : 'YYYY/MM/DD', + LL : 'YYYY年M月D日', + LLL : 'YYYY年M月D日Ah時m分', + LLLL : 'YYYY年M月D日Ah時m分 dddd' + }, + meridiemParse: /午前|午後/i, + isPM : function (input) { + return input === '午後'; + }, + meridiem : function (hour, minute, isLower) { + if (hour < 12) { + return '午前'; + } else { + return '午後'; + } + }, + calendar : { + sameDay : '[今日] LT', + nextDay : '[明日] LT', + nextWeek : '[来週]dddd LT', + lastDay : '[昨日] LT', + lastWeek : '[前週]dddd LT', + sameElse : 'L' + }, + relativeTime : { + future : '%s後', + past : '%s前', + s : '数秒', + m : '1分', + mm : '%d分', + h : '1時間', + hh : '%d時間', + d : '1日', + dd : '%d日', + M : '1ヶ月', + MM : '%dヶ月', + y : '1年', + yy : '%d年' + } + }); + + //! moment.js locale configuration + //! locale : Boso Jowo (jv) + //! author : Rony Lantip : https://github.com/lantip + //! reference: http://jv.wikipedia.org/wiki/Basa_Jawa + + var jv = _moment__default.defineLocale('jv', { + months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split('_'), + monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'), + weekdays : 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'), + weekdaysShort : 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'), + weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'), + longDateFormat : { + LT : 'HH.mm', + LTS : 'HH.mm.ss', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY [pukul] HH.mm', + LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm' + }, + meridiemParse: /enjing|siyang|sonten|ndalu/, + meridiemHour : function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'enjing') { + return hour; + } else if (meridiem === 'siyang') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'sonten' || meridiem === 'ndalu') { + return hour + 12; + } + }, + meridiem : function (hours, minutes, isLower) { + if (hours < 11) { + return 'enjing'; + } else if (hours < 15) { + return 'siyang'; + } else if (hours < 19) { + return 'sonten'; + } else { + return 'ndalu'; + } + }, + calendar : { + sameDay : '[Dinten puniko pukul] LT', + nextDay : '[Mbenjang pukul] LT', + nextWeek : 'dddd [pukul] LT', + lastDay : '[Kala wingi pukul] LT', + lastWeek : 'dddd [kepengker pukul] LT', + sameElse : 'L' + }, + relativeTime : { + future : 'wonten ing %s', + past : '%s ingkang kepengker', + s : 'sawetawis detik', + m : 'setunggal menit', + mm : '%d menit', + h : 'setunggal jam', + hh : '%d jam', + d : 'sedinten', + dd : '%d dinten', + M : 'sewulan', + MM : '%d wulan', + y : 'setaun', + yy : '%d taun' + }, + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 1st is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : Georgian (ka) + //! author : Irakli Janiashvili : https://github.com/irakli-janiashvili + + function ka__monthsCaseReplace(m, format) { + var months = { + 'nominative': 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split('_'), + 'accusative': 'იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს'.split('_') + }, + nounCase = (/D[oD] *MMMM?/).test(format) ? + 'accusative' : + 'nominative'; + return months[nounCase][m.month()]; + } + function ka__weekdaysCaseReplace(m, format) { + var weekdays = { + 'nominative': 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split('_'), + 'accusative': 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split('_') + }, + nounCase = (/(წინა|შემდეგ)/).test(format) ? + 'accusative' : + 'nominative'; + return weekdays[nounCase][m.day()]; + } + + var ka = _moment__default.defineLocale('ka', { + months : ka__monthsCaseReplace, + monthsShort : 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'), + weekdays : ka__weekdaysCaseReplace, + weekdaysShort : 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'), + weekdaysMin : 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'), + longDateFormat : { + LT : 'h:mm A', + LTS : 'h:mm:ss A', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY h:mm A', + LLLL : 'dddd, D MMMM YYYY h:mm A' + }, + calendar : { + sameDay : '[დღეს] LT[-ზე]', + nextDay : '[ხვალ] LT[-ზე]', + lastDay : '[გუშინ] LT[-ზე]', + nextWeek : '[შემდეგ] dddd LT[-ზე]', + lastWeek : '[წინა] dddd LT-ზე', + sameElse : 'L' + }, + relativeTime : { + future : function (s) { + return (/(წამი|წუთი|საათი|წელი)/).test(s) ? + s.replace(/ი$/, 'ში') : + s + 'ში'; + }, + past : function (s) { + if ((/(წამი|წუთი|საათი|დღე|თვე)/).test(s)) { + return s.replace(/(ი|ე)$/, 'ის წინ'); + } + if ((/წელი/).test(s)) { + return s.replace(/წელი$/, 'წლის წინ'); + } + }, + s : 'რამდენიმე წამი', + m : 'წუთი', + mm : '%d წუთი', + h : 'საათი', + hh : '%d საათი', + d : 'დღე', + dd : '%d დღე', + M : 'თვე', + MM : '%d თვე', + y : 'წელი', + yy : '%d წელი' + }, + ordinalParse: /0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/, + ordinal : function (number) { + if (number === 0) { + return number; + } + if (number === 1) { + return number + '-ლი'; + } + if ((number < 20) || (number <= 100 && (number % 20 === 0)) || (number % 100 === 0)) { + return 'მე-' + number; + } + return number + '-ე'; + }, + week : { + dow : 1, + doy : 7 + } + }); + + //! moment.js locale configuration + //! locale : khmer (km) + //! author : Kruy Vanna : https://github.com/kruyvanna + + var km = _moment__default.defineLocale('km', { + months: 'មករា_កុម្ភៈ_មិនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'), + monthsShort: 'មករា_កុម្ភៈ_មិនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'), + weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'), + weekdaysShort: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'), + weekdaysMin: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'), + longDateFormat: { + LT: 'HH:mm', + LTS : 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd, D MMMM YYYY HH:mm' + }, + calendar: { + sameDay: '[ថ្ងៃនៈ ម៉ោង] LT', + nextDay: '[ស្អែក ម៉ោង] LT', + nextWeek: 'dddd [ម៉ោង] LT', + lastDay: '[ម្សិលមិញ ម៉ោង] LT', + lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT', + sameElse: 'L' + }, + relativeTime: { + future: '%sទៀត', + past: '%sមុន', + s: 'ប៉ុន្មានវិនាទី', + m: 'មួយនាទី', + mm: '%d នាទី', + h: 'មួយម៉ោង', + hh: '%d ម៉ោង', + d: 'មួយថ្ងៃ', + dd: '%d ថ្ងៃ', + M: 'មួយខែ', + MM: '%d ខែ', + y: 'មួយឆ្នាំ', + yy: '%d ឆ្នាំ' + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4 // The week that contains Jan 4th is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : korean (ko) + //! + //! authors + //! + //! - Kyungwook, Park : https://github.com/kyungw00k + //! - Jeeeyul Lee + + var ko = _moment__default.defineLocale('ko', { + months : '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'), + monthsShort : '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'), + weekdays : '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'), + weekdaysShort : '일_월_화_수_목_금_토'.split('_'), + weekdaysMin : '일_월_화_수_목_금_토'.split('_'), + longDateFormat : { + LT : 'A h시 m분', + LTS : 'A h시 m분 s초', + L : 'YYYY.MM.DD', + LL : 'YYYY년 MMMM D일', + LLL : 'YYYY년 MMMM D일 A h시 m분', + LLLL : 'YYYY년 MMMM D일 dddd A h시 m분' + }, + calendar : { + sameDay : '오늘 LT', + nextDay : '내일 LT', + nextWeek : 'dddd LT', + lastDay : '어제 LT', + lastWeek : '지난주 dddd LT', + sameElse : 'L' + }, + relativeTime : { + future : '%s 후', + past : '%s 전', + s : '몇초', + ss : '%d초', + m : '일분', + mm : '%d분', + h : '한시간', + hh : '%d시간', + d : '하루', + dd : '%d일', + M : '한달', + MM : '%d달', + y : '일년', + yy : '%d년' + }, + ordinalParse : /\d{1,2}일/, + ordinal : '%d일', + meridiemParse : /오전|오후/, + isPM : function (token) { + return token === '오후'; + }, + meridiem : function (hour, minute, isUpper) { + return hour < 12 ? '오전' : '오후'; + } + }); + + //! moment.js locale configuration + //! locale : Luxembourgish (lb) + //! author : mweimerskirch : https://github.com/mweimerskirch, David Raison : https://github.com/kwisatz + + function lb__processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + 'm': ['eng Minutt', 'enger Minutt'], + 'h': ['eng Stonn', 'enger Stonn'], + 'd': ['een Dag', 'engem Dag'], + 'M': ['ee Mount', 'engem Mount'], + 'y': ['ee Joer', 'engem Joer'] + }; + return withoutSuffix ? format[key][0] : format[key][1]; + } + function processFutureTime(string) { + var number = string.substr(0, string.indexOf(' ')); + if (eifelerRegelAppliesToNumber(number)) { + return 'a ' + string; + } + return 'an ' + string; + } + function processPastTime(string) { + var number = string.substr(0, string.indexOf(' ')); + if (eifelerRegelAppliesToNumber(number)) { + return 'viru ' + string; + } + return 'virun ' + string; + } + /** + * Returns true if the word before the given number loses the '-n' ending. + * e.g. 'an 10 Deeg' but 'a 5 Deeg' + * + * @param number {integer} + * @returns {boolean} + */ + function eifelerRegelAppliesToNumber(number) { + number = parseInt(number, 10); + if (isNaN(number)) { + return false; + } + if (number < 0) { + // Negative Number --> always true + return true; + } else if (number < 10) { + // Only 1 digit + if (4 <= number && number <= 7) { + return true; + } + return false; + } else if (number < 100) { + // 2 digits + var lastDigit = number % 10, firstDigit = number / 10; + if (lastDigit === 0) { + return eifelerRegelAppliesToNumber(firstDigit); + } + return eifelerRegelAppliesToNumber(lastDigit); + } else if (number < 10000) { + // 3 or 4 digits --> recursively check first digit + while (number >= 10) { + number = number / 10; + } + return eifelerRegelAppliesToNumber(number); + } else { + // Anything larger than 4 digits: recursively check first n-3 digits + number = number / 1000; + return eifelerRegelAppliesToNumber(number); + } + } + + var lb = _moment__default.defineLocale('lb', { + months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'), + monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'), + weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split('_'), + weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'), + weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'), + longDateFormat: { + LT: 'H:mm [Auer]', + LTS: 'H:mm:ss [Auer]', + L: 'DD.MM.YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm [Auer]', + LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]' + }, + calendar: { + sameDay: '[Haut um] LT', + sameElse: 'L', + nextDay: '[Muer um] LT', + nextWeek: 'dddd [um] LT', + lastDay: '[Gëschter um] LT', + lastWeek: function () { + // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule + switch (this.day()) { + case 2: + case 4: + return '[Leschten] dddd [um] LT'; + default: + return '[Leschte] dddd [um] LT'; + } + } + }, + relativeTime : { + future : processFutureTime, + past : processPastTime, + s : 'e puer Sekonnen', + m : lb__processRelativeTime, + mm : '%d Minutten', + h : lb__processRelativeTime, + hh : '%d Stonnen', + d : lb__processRelativeTime, + dd : '%d Deeg', + M : lb__processRelativeTime, + MM : '%d Méint', + y : lb__processRelativeTime, + yy : '%d Joer' + }, + ordinalParse: /\d{1,2}\./, + ordinal: '%d.', + week: { + dow: 1, // Monday is the first day of the week. + doy: 4 // The week that contains Jan 4th is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : Lithuanian (lt) + //! author : Mindaugas Mozūras : https://github.com/mmozuras + + var lt__units = { + 'm' : 'minutė_minutės_minutę', + 'mm': 'minutės_minučių_minutes', + 'h' : 'valanda_valandos_valandą', + 'hh': 'valandos_valandų_valandas', + 'd' : 'diena_dienos_dieną', + 'dd': 'dienos_dienų_dienas', + 'M' : 'mėnuo_mėnesio_mėnesį', + 'MM': 'mėnesiai_mėnesių_mėnesius', + 'y' : 'metai_metų_metus', + 'yy': 'metai_metų_metus' + }, + weekDays = 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split('_'); + function translateSeconds(number, withoutSuffix, key, isFuture) { + if (withoutSuffix) { + return 'kelios sekundės'; + } else { + return isFuture ? 'kelių sekundžių' : 'kelias sekundes'; + } + } + function lt__monthsCaseReplace(m, format) { + var months = { + 'nominative': 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split('_'), + 'accusative': 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split('_') + }, + nounCase = (/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/).test(format) ? + 'accusative' : + 'nominative'; + return months[nounCase][m.month()]; + } + function translateSingular(number, withoutSuffix, key, isFuture) { + return withoutSuffix ? forms(key)[0] : (isFuture ? forms(key)[1] : forms(key)[2]); + } + function special(number) { + return number % 10 === 0 || (number > 10 && number < 20); + } + function forms(key) { + return lt__units[key].split('_'); + } + function lt__translate(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + if (number === 1) { + return result + translateSingular(number, withoutSuffix, key[0], isFuture); + } else if (withoutSuffix) { + return result + (special(number) ? forms(key)[1] : forms(key)[0]); + } else { + if (isFuture) { + return result + forms(key)[1]; + } else { + return result + (special(number) ? forms(key)[1] : forms(key)[2]); + } + } + } + function relativeWeekDay(moment, format) { + var nominative = format.indexOf('dddd HH:mm') === -1, + weekDay = weekDays[moment.day()]; + return nominative ? weekDay : weekDay.substring(0, weekDay.length - 2) + 'į'; + } + + var lt = _moment__default.defineLocale('lt', { + months : lt__monthsCaseReplace, + monthsShort : 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'), + weekdays : relativeWeekDay, + weekdaysShort : 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'), + weekdaysMin : 'S_P_A_T_K_Pn_Š'.split('_'), + longDateFormat : { + LT : 'HH:mm', + LTS : 'HH:mm:ss', + L : 'YYYY-MM-DD', + LL : 'YYYY [m.] MMMM D [d.]', + LLL : 'YYYY [m.] MMMM D [d.], HH:mm [val.]', + LLLL : 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]', + l : 'YYYY-MM-DD', + ll : 'YYYY [m.] MMMM D [d.]', + lll : 'YYYY [m.] MMMM D [d.], HH:mm [val.]', + llll : 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]' + }, + calendar : { + sameDay : '[Šiandien] LT', + nextDay : '[Rytoj] LT', + nextWeek : 'dddd LT', + lastDay : '[Vakar] LT', + lastWeek : '[Praėjusį] dddd LT', + sameElse : 'L' + }, + relativeTime : { + future : 'po %s', + past : 'prieš %s', + s : translateSeconds, + m : translateSingular, + mm : lt__translate, + h : translateSingular, + hh : lt__translate, + d : translateSingular, + dd : lt__translate, + M : translateSingular, + MM : lt__translate, + y : translateSingular, + yy : lt__translate + }, + ordinalParse: /\d{1,2}-oji/, + ordinal : function (number) { + return number + '-oji'; + }, + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : latvian (lv) + //! author : Kristaps Karlsons : https://github.com/skakri + //! author : Jānis Elmeris : https://github.com/JanisE + + var lv__units = { + 'm': 'minūtes_minūtēm_minūte_minūtes'.split('_'), + 'mm': 'minūtes_minūtēm_minūte_minūtes'.split('_'), + 'h': 'stundas_stundām_stunda_stundas'.split('_'), + 'hh': 'stundas_stundām_stunda_stundas'.split('_'), + 'd': 'dienas_dienām_diena_dienas'.split('_'), + 'dd': 'dienas_dienām_diena_dienas'.split('_'), + 'M': 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'), + 'MM': 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'), + 'y': 'gada_gadiem_gads_gadi'.split('_'), + 'yy': 'gada_gadiem_gads_gadi'.split('_') + }; + /** + * @param withoutSuffix boolean true = a length of time; false = before/after a period of time. + */ + function lv__format(forms, number, withoutSuffix) { + if (withoutSuffix) { + // E.g. "21 minūte", "3 minūtes". + return number % 10 === 1 && number !== 11 ? forms[2] : forms[3]; + } else { + // E.g. "21 minūtes" as in "pēc 21 minūtes". + // E.g. "3 minūtēm" as in "pēc 3 minūtēm". + return number % 10 === 1 && number !== 11 ? forms[0] : forms[1]; + } + } + function lv__relativeTimeWithPlural(number, withoutSuffix, key) { + return number + ' ' + lv__format(lv__units[key], number, withoutSuffix); + } + function relativeTimeWithSingular(number, withoutSuffix, key) { + return lv__format(lv__units[key], number, withoutSuffix); + } + function relativeSeconds(number, withoutSuffix) { + return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm'; + } + + var lv = _moment__default.defineLocale('lv', { + months : 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split('_'), + monthsShort : 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'), + weekdays : 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split('_'), + weekdaysShort : 'Sv_P_O_T_C_Pk_S'.split('_'), + weekdaysMin : 'Sv_P_O_T_C_Pk_S'.split('_'), + longDateFormat : { + LT : 'HH:mm', + LTS : 'HH:mm:ss', + L : 'DD.MM.YYYY.', + LL : 'YYYY. [gada] D. MMMM', + LLL : 'YYYY. [gada] D. MMMM, HH:mm', + LLLL : 'YYYY. [gada] D. MMMM, dddd, HH:mm' + }, + calendar : { + sameDay : '[Šodien pulksten] LT', + nextDay : '[Rīt pulksten] LT', + nextWeek : 'dddd [pulksten] LT', + lastDay : '[Vakar pulksten] LT', + lastWeek : '[Pagājušā] dddd [pulksten] LT', + sameElse : 'L' + }, + relativeTime : { + future : 'pēc %s', + past : 'pirms %s', + s : relativeSeconds, + m : relativeTimeWithSingular, + mm : lv__relativeTimeWithPlural, + h : relativeTimeWithSingular, + hh : lv__relativeTimeWithPlural, + d : relativeTimeWithSingular, + dd : lv__relativeTimeWithPlural, + M : relativeTimeWithSingular, + MM : lv__relativeTimeWithPlural, + y : relativeTimeWithSingular, + yy : lv__relativeTimeWithPlural + }, + ordinalParse: /\d{1,2}\./, + ordinal : '%d.', + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : Montenegrin (me) + //! author : Miodrag Nikač : https://github.com/miodragnikac + + var me__translator = { + words: { //Different grammatical cases + m: ['jedan minut', 'jednog minuta'], + mm: ['minut', 'minuta', 'minuta'], + h: ['jedan sat', 'jednog sata'], + hh: ['sat', 'sata', 'sati'], + dd: ['dan', 'dana', 'dana'], + MM: ['mjesec', 'mjeseca', 'mjeseci'], + yy: ['godina', 'godine', 'godina'] + }, + correctGrammaticalCase: function (number, wordKey) { + return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]); + }, + translate: function (number, withoutSuffix, key) { + var wordKey = me__translator.words[key]; + if (key.length === 1) { + return withoutSuffix ? wordKey[0] : wordKey[1]; + } else { + return number + ' ' + me__translator.correctGrammaticalCase(number, wordKey); + } + } + }; + + var me = _moment__default.defineLocale('me', { + months: ['januar', 'februar', 'mart', 'april', 'maj', 'jun', 'jul', 'avgust', 'septembar', 'oktobar', 'novembar', 'decembar'], + monthsShort: ['jan.', 'feb.', 'mar.', 'apr.', 'maj', 'jun', 'jul', 'avg.', 'sep.', 'okt.', 'nov.', 'dec.'], + weekdays: ['nedjelja', 'ponedjeljak', 'utorak', 'srijeda', 'četvrtak', 'petak', 'subota'], + weekdaysShort: ['ned.', 'pon.', 'uto.', 'sri.', 'čet.', 'pet.', 'sub.'], + weekdaysMin: ['ne', 'po', 'ut', 'sr', 'če', 'pe', 'su'], + longDateFormat: { + LT: 'H:mm', + LTS : 'H:mm:ss', + L: 'DD. MM. YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm' + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sjutra u] LT', + + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedjelju] [u] LT'; + case 3: + return '[u] [srijedu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay : '[juče u] LT', + lastWeek : function () { + var lastWeekDays = [ + '[prošle] [nedjelje] [u] LT', + '[prošlog] [ponedjeljka] [u] LT', + '[prošlog] [utorka] [u] LT', + '[prošle] [srijede] [u] LT', + '[prošlog] [četvrtka] [u] LT', + '[prošlog] [petka] [u] LT', + '[prošle] [subote] [u] LT' + ]; + return lastWeekDays[this.day()]; + }, + sameElse : 'L' + }, + relativeTime : { + future : 'za %s', + past : 'prije %s', + s : 'nekoliko sekundi', + m : me__translator.translate, + mm : me__translator.translate, + h : me__translator.translate, + hh : me__translator.translate, + d : 'dan', + dd : me__translator.translate, + M : 'mjesec', + MM : me__translator.translate, + y : 'godinu', + yy : me__translator.translate + }, + ordinalParse: /\d{1,2}\./, + ordinal : '%d.', + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 1st is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : macedonian (mk) + //! author : Borislav Mickov : https://github.com/B0k0 + + var mk = _moment__default.defineLocale('mk', { + months : 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split('_'), + monthsShort : 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'), + weekdays : 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split('_'), + weekdaysShort : 'нед_пон_вто_сре_чет_пет_саб'.split('_'), + weekdaysMin : 'нe_пo_вт_ср_че_пе_сa'.split('_'), + longDateFormat : { + LT : 'H:mm', + LTS : 'H:mm:ss', + L : 'D.MM.YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY H:mm', + LLLL : 'dddd, D MMMM YYYY H:mm' + }, + calendar : { + sameDay : '[Денес во] LT', + nextDay : '[Утре во] LT', + nextWeek : 'dddd [во] LT', + lastDay : '[Вчера во] LT', + lastWeek : function () { + switch (this.day()) { + case 0: + case 3: + case 6: + return '[Во изминатата] dddd [во] LT'; + case 1: + case 2: + case 4: + case 5: + return '[Во изминатиот] dddd [во] LT'; + } + }, + sameElse : 'L' + }, + relativeTime : { + future : 'после %s', + past : 'пред %s', + s : 'неколку секунди', + m : 'минута', + mm : '%d минути', + h : 'час', + hh : '%d часа', + d : 'ден', + dd : '%d дена', + M : 'месец', + MM : '%d месеци', + y : 'година', + yy : '%d години' + }, + ordinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/, + ordinal : function (number) { + var lastDigit = number % 10, + last2Digits = number % 100; + if (number === 0) { + return number + '-ев'; + } else if (last2Digits === 0) { + return number + '-ен'; + } else if (last2Digits > 10 && last2Digits < 20) { + return number + '-ти'; + } else if (lastDigit === 1) { + return number + '-ви'; + } else if (lastDigit === 2) { + return number + '-ри'; + } else if (lastDigit === 7 || lastDigit === 8) { + return number + '-ми'; + } else { + return number + '-ти'; + } + }, + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 1st is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : malayalam (ml) + //! author : Floyd Pink : https://github.com/floydpink + + var ml = _moment__default.defineLocale('ml', { + months : 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split('_'), + monthsShort : 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split('_'), + weekdays : 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split('_'), + weekdaysShort : 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'), + weekdaysMin : 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'), + longDateFormat : { + LT : 'A h:mm -നു', + LTS : 'A h:mm:ss -നു', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY, A h:mm -നു', + LLLL : 'dddd, D MMMM YYYY, A h:mm -നു' + }, + calendar : { + sameDay : '[ഇന്ന്] LT', + nextDay : '[നാളെ] LT', + nextWeek : 'dddd, LT', + lastDay : '[ഇന്നലെ] LT', + lastWeek : '[കഴിഞ്ഞ] dddd, LT', + sameElse : 'L' + }, + relativeTime : { + future : '%s കഴിഞ്ഞ്', + past : '%s മുൻപ്', + s : 'അൽപ നിമിഷങ്ങൾ', + m : 'ഒരു മിനിറ്റ്', + mm : '%d മിനിറ്റ്', + h : 'ഒരു മണിക്കൂർ', + hh : '%d മണിക്കൂർ', + d : 'ഒരു ദിവസം', + dd : '%d ദിവസം', + M : 'ഒരു മാസം', + MM : '%d മാസം', + y : 'ഒരു വർഷം', + yy : '%d വർഷം' + }, + meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i, + isPM : function (input) { + return /^(ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി)$/.test(input); + }, + meridiem : function (hour, minute, isLower) { + if (hour < 4) { + return 'രാത്രി'; + } else if (hour < 12) { + return 'രാവിലെ'; + } else if (hour < 17) { + return 'ഉച്ച കഴിഞ്ഞ്'; + } else if (hour < 20) { + return 'വൈകുന്നേരം'; + } else { + return 'രാത്രി'; + } + } + }); + + //! moment.js locale configuration + //! locale : Marathi (mr) + //! author : Harshad Kale : https://github.com/kalehv + + var mr__symbolMap = { + '1': '१', + '2': '२', + '3': '३', + '4': '४', + '5': '५', + '6': '६', + '7': '७', + '8': '८', + '9': '९', + '0': '०' + }, + mr__numberMap = { + '१': '1', + '२': '2', + '३': '3', + '४': '4', + '५': '5', + '६': '6', + '७': '7', + '८': '8', + '९': '9', + '०': '0' + }; + + var mr = _moment__default.defineLocale('mr', { + months : 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split('_'), + monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split('_'), + weekdays : 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'), + weekdaysShort : 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'), + weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split('_'), + longDateFormat : { + LT : 'A h:mm वाजता', + LTS : 'A h:mm:ss वाजता', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY, A h:mm वाजता', + LLLL : 'dddd, D MMMM YYYY, A h:mm वाजता' + }, + calendar : { + sameDay : '[आज] LT', + nextDay : '[उद्या] LT', + nextWeek : 'dddd, LT', + lastDay : '[काल] LT', + lastWeek: '[मागील] dddd, LT', + sameElse : 'L' + }, + relativeTime : { + future : '%s नंतर', + past : '%s पूर्वी', + s : 'सेकंद', + m: 'एक मिनिट', + mm: '%d मिनिटे', + h : 'एक तास', + hh : '%d तास', + d : 'एक दिवस', + dd : '%d दिवस', + M : 'एक महिना', + MM : '%d महिने', + y : 'एक वर्ष', + yy : '%d वर्षे' + }, + preparse: function (string) { + return string.replace(/[१२३४५६७८९०]/g, function (match) { + return mr__numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return mr__symbolMap[match]; + }); + }, + meridiemParse: /रात्री|सकाळी|दुपारी|सायंकाळी/, + meridiemHour : function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'रात्री') { + return hour < 4 ? hour : hour + 12; + } else if (meridiem === 'सकाळी') { + return hour; + } else if (meridiem === 'दुपारी') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'सायंकाळी') { + return hour + 12; + } + }, + meridiem: function (hour, minute, isLower) { + if (hour < 4) { + return 'रात्री'; + } else if (hour < 10) { + return 'सकाळी'; + } else if (hour < 17) { + return 'दुपारी'; + } else if (hour < 20) { + return 'सायंकाळी'; + } else { + return 'रात्री'; + } + }, + week : { + dow : 0, // Sunday is the first day of the week. + doy : 6 // The week that contains Jan 1st is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : Bahasa Malaysia (ms-MY) + //! author : Weldan Jamili : https://github.com/weldan + + var ms_my = _moment__default.defineLocale('ms-my', { + months : 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'), + monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), + weekdays : 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), + weekdaysShort : 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), + weekdaysMin : 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), + longDateFormat : { + LT : 'HH.mm', + LTS : 'HH.mm.ss', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY [pukul] HH.mm', + LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm' + }, + meridiemParse: /pagi|tengahari|petang|malam/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'pagi') { + return hour; + } else if (meridiem === 'tengahari') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'petang' || meridiem === 'malam') { + return hour + 12; + } + }, + meridiem : function (hours, minutes, isLower) { + if (hours < 11) { + return 'pagi'; + } else if (hours < 15) { + return 'tengahari'; + } else if (hours < 19) { + return 'petang'; + } else { + return 'malam'; + } + }, + calendar : { + sameDay : '[Hari ini pukul] LT', + nextDay : '[Esok pukul] LT', + nextWeek : 'dddd [pukul] LT', + lastDay : '[Kelmarin pukul] LT', + lastWeek : 'dddd [lepas pukul] LT', + sameElse : 'L' + }, + relativeTime : { + future : 'dalam %s', + past : '%s yang lepas', + s : 'beberapa saat', + m : 'seminit', + mm : '%d minit', + h : 'sejam', + hh : '%d jam', + d : 'sehari', + dd : '%d hari', + M : 'sebulan', + MM : '%d bulan', + y : 'setahun', + yy : '%d tahun' + }, + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 1st is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : Bahasa Malaysia (ms-MY) + //! author : Weldan Jamili : https://github.com/weldan + + var locale_ms = _moment__default.defineLocale('ms', { + months : 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'), + monthsShort : 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'), + weekdays : 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'), + weekdaysShort : 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'), + weekdaysMin : 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'), + longDateFormat : { + LT : 'HH.mm', + LTS : 'HH.mm.ss', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY [pukul] HH.mm', + LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm' + }, + meridiemParse: /pagi|tengahari|petang|malam/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'pagi') { + return hour; + } else if (meridiem === 'tengahari') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === 'petang' || meridiem === 'malam') { + return hour + 12; + } + }, + meridiem : function (hours, minutes, isLower) { + if (hours < 11) { + return 'pagi'; + } else if (hours < 15) { + return 'tengahari'; + } else if (hours < 19) { + return 'petang'; + } else { + return 'malam'; + } + }, + calendar : { + sameDay : '[Hari ini pukul] LT', + nextDay : '[Esok pukul] LT', + nextWeek : 'dddd [pukul] LT', + lastDay : '[Kelmarin pukul] LT', + lastWeek : 'dddd [lepas pukul] LT', + sameElse : 'L' + }, + relativeTime : { + future : 'dalam %s', + past : '%s yang lepas', + s : 'beberapa saat', + m : 'seminit', + mm : '%d minit', + h : 'sejam', + hh : '%d jam', + d : 'sehari', + dd : '%d hari', + M : 'sebulan', + MM : '%d bulan', + y : 'setahun', + yy : '%d tahun' + }, + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 1st is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : Burmese (my) + //! author : Squar team, mysquar.com + + var my__symbolMap = { + '1': '၁', + '2': '၂', + '3': '၃', + '4': '၄', + '5': '၅', + '6': '၆', + '7': '၇', + '8': '၈', + '9': '၉', + '0': '၀' + }, my__numberMap = { + '၁': '1', + '၂': '2', + '၃': '3', + '၄': '4', + '၅': '5', + '၆': '6', + '၇': '7', + '၈': '8', + '၉': '9', + '၀': '0' + }; + + var my = _moment__default.defineLocale('my', { + months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split('_'), + monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'), + weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split('_'), + weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'), + weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'), + + longDateFormat: { + LT: 'HH:mm', + LTS: 'HH:mm:ss', + L: 'DD/MM/YYYY', + LL: 'D MMMM YYYY', + LLL: 'D MMMM YYYY HH:mm', + LLLL: 'dddd D MMMM YYYY HH:mm' + }, + calendar: { + sameDay: '[ယနေ.] LT [မှာ]', + nextDay: '[မနက်ဖြန်] LT [မှာ]', + nextWeek: 'dddd LT [မှာ]', + lastDay: '[မနေ.က] LT [မှာ]', + lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]', + sameElse: 'L' + }, + relativeTime: { + future: 'လာမည့် %s မှာ', + past: 'လွန်ခဲ့သော %s က', + s: 'စက္ကန်.အနည်းငယ်', + m: 'တစ်မိနစ်', + mm: '%d မိနစ်', + h: 'တစ်နာရီ', + hh: '%d နာရီ', + d: 'တစ်ရက်', + dd: '%d ရက်', + M: 'တစ်လ', + MM: '%d လ', + y: 'တစ်နှစ်', + yy: '%d နှစ်' + }, + preparse: function (string) { + return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) { + return my__numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return my__symbolMap[match]; + }); + }, + week: { + dow: 1, // Monday is the first day of the week. + doy: 4 // The week that contains Jan 1st is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : norwegian bokmål (nb) + //! authors : Espen Hovlandsdal : https://github.com/rexxars + //! Sigurd Gartmann : https://github.com/sigurdga + + var nb = _moment__default.defineLocale('nb', { + months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'), + monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'), + weekdays : 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'), + weekdaysShort : 'søn_man_tirs_ons_tors_fre_lør'.split('_'), + weekdaysMin : 'sø_ma_ti_on_to_fr_lø'.split('_'), + longDateFormat : { + LT : 'H.mm', + LTS : 'H.mm.ss', + L : 'DD.MM.YYYY', + LL : 'D. MMMM YYYY', + LLL : 'D. MMMM YYYY [kl.] H.mm', + LLLL : 'dddd D. MMMM YYYY [kl.] H.mm' + }, + calendar : { + sameDay: '[i dag kl.] LT', + nextDay: '[i morgen kl.] LT', + nextWeek: 'dddd [kl.] LT', + lastDay: '[i går kl.] LT', + lastWeek: '[forrige] dddd [kl.] LT', + sameElse: 'L' + }, + relativeTime : { + future : 'om %s', + past : 'for %s siden', + s : 'noen sekunder', + m : 'ett minutt', + mm : '%d minutter', + h : 'en time', + hh : '%d timer', + d : 'en dag', + dd : '%d dager', + M : 'en måned', + MM : '%d måneder', + y : 'ett år', + yy : '%d år' + }, + ordinalParse: /\d{1,2}\./, + ordinal : '%d.', + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : nepali/nepalese + //! author : suvash : https://github.com/suvash + + var ne__symbolMap = { + '1': '१', + '2': '२', + '3': '३', + '4': '४', + '5': '५', + '6': '६', + '7': '७', + '8': '८', + '9': '९', + '0': '०' + }, + ne__numberMap = { + '१': '1', + '२': '2', + '३': '3', + '४': '4', + '५': '5', + '६': '6', + '७': '7', + '८': '8', + '९': '9', + '०': '0' + }; + + var ne = _moment__default.defineLocale('ne', { + months : 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split('_'), + monthsShort : 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split('_'), + weekdays : 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split('_'), + weekdaysShort : 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'), + weekdaysMin : 'आइ._सो._मङ्_बु._बि._शु._श.'.split('_'), + longDateFormat : { + LT : 'Aको h:mm बजे', + LTS : 'Aको h:mm:ss बजे', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY, Aको h:mm बजे', + LLLL : 'dddd, D MMMM YYYY, Aको h:mm बजे' + }, + preparse: function (string) { + return string.replace(/[१२३४५६७८९०]/g, function (match) { + return ne__numberMap[match]; + }); + }, + postformat: function (string) { + return string.replace(/\d/g, function (match) { + return ne__symbolMap[match]; + }); + }, + meridiemParse: /राती|बिहान|दिउँसो|बेलुका|साँझ|राती/, + meridiemHour : function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'राती') { + return hour < 3 ? hour : hour + 12; + } else if (meridiem === 'बिहान') { + return hour; + } else if (meridiem === 'दिउँसो') { + return hour >= 10 ? hour : hour + 12; + } else if (meridiem === 'बेलुका' || meridiem === 'साँझ') { + return hour + 12; + } + }, + meridiem : function (hour, minute, isLower) { + if (hour < 3) { + return 'राती'; + } else if (hour < 10) { + return 'बिहान'; + } else if (hour < 15) { + return 'दिउँसो'; + } else if (hour < 18) { + return 'बेलुका'; + } else if (hour < 20) { + return 'साँझ'; + } else { + return 'राती'; + } + }, + calendar : { + sameDay : '[आज] LT', + nextDay : '[भोली] LT', + nextWeek : '[आउँदो] dddd[,] LT', + lastDay : '[हिजो] LT', + lastWeek : '[गएको] dddd[,] LT', + sameElse : 'L' + }, + relativeTime : { + future : '%sमा', + past : '%s अगाडी', + s : 'केही समय', + m : 'एक मिनेट', + mm : '%d मिनेट', + h : 'एक घण्टा', + hh : '%d घण्टा', + d : 'एक दिन', + dd : '%d दिन', + M : 'एक महिना', + MM : '%d महिना', + y : 'एक बर्ष', + yy : '%d बर्ष' + }, + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 1st is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : dutch (nl) + //! author : Joris Röling : https://github.com/jjupiter + + var nl__monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'), + nl__monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'); + + var nl = _moment__default.defineLocale('nl', { + months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'), + monthsShort : function (m, format) { + if (/-MMM-/.test(format)) { + return nl__monthsShortWithoutDots[m.month()]; + } else { + return nl__monthsShortWithDots[m.month()]; + } + }, + weekdays : 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'), + weekdaysShort : 'zo._ma._di._wo._do._vr._za.'.split('_'), + weekdaysMin : 'Zo_Ma_Di_Wo_Do_Vr_Za'.split('_'), + longDateFormat : { + LT : 'HH:mm', + LTS : 'HH:mm:ss', + L : 'DD-MM-YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY HH:mm', + LLLL : 'dddd D MMMM YYYY HH:mm' + }, + calendar : { + sameDay: '[vandaag om] LT', + nextDay: '[morgen om] LT', + nextWeek: 'dddd [om] LT', + lastDay: '[gisteren om] LT', + lastWeek: '[afgelopen] dddd [om] LT', + sameElse: 'L' + }, + relativeTime : { + future : 'over %s', + past : '%s geleden', + s : 'een paar seconden', + m : 'één minuut', + mm : '%d minuten', + h : 'één uur', + hh : '%d uur', + d : 'één dag', + dd : '%d dagen', + M : 'één maand', + MM : '%d maanden', + y : 'één jaar', + yy : '%d jaar' + }, + ordinalParse: /\d{1,2}(ste|de)/, + ordinal : function (number) { + return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de'); + }, + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : norwegian nynorsk (nn) + //! author : https://github.com/mechuwind + + var nn = _moment__default.defineLocale('nn', { + months : 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'), + monthsShort : 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'), + weekdays : 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'), + weekdaysShort : 'sun_mån_tys_ons_tor_fre_lau'.split('_'), + weekdaysMin : 'su_må_ty_on_to_fr_lø'.split('_'), + longDateFormat : { + LT : 'HH:mm', + LTS : 'HH:mm:ss', + L : 'DD.MM.YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY HH:mm', + LLLL : 'dddd D MMMM YYYY HH:mm' + }, + calendar : { + sameDay: '[I dag klokka] LT', + nextDay: '[I morgon klokka] LT', + nextWeek: 'dddd [klokka] LT', + lastDay: '[I går klokka] LT', + lastWeek: '[Føregåande] dddd [klokka] LT', + sameElse: 'L' + }, + relativeTime : { + future : 'om %s', + past : 'for %s sidan', + s : 'nokre sekund', + m : 'eit minutt', + mm : '%d minutt', + h : 'ein time', + hh : '%d timar', + d : 'ein dag', + dd : '%d dagar', + M : 'ein månad', + MM : '%d månader', + y : 'eit år', + yy : '%d år' + }, + ordinalParse: /\d{1,2}\./, + ordinal : '%d.', + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : polish (pl) + //! author : Rafal Hirsz : https://github.com/evoL + + var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split('_'), + monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split('_'); + function pl__plural(n) { + return (n % 10 < 5) && (n % 10 > 1) && ((~~(n / 10) % 10) !== 1); + } + function pl__translate(number, withoutSuffix, key) { + var result = number + ' '; + switch (key) { + case 'm': + return withoutSuffix ? 'minuta' : 'minutę'; + case 'mm': + return result + (pl__plural(number) ? 'minuty' : 'minut'); + case 'h': + return withoutSuffix ? 'godzina' : 'godzinę'; + case 'hh': + return result + (pl__plural(number) ? 'godziny' : 'godzin'); + case 'MM': + return result + (pl__plural(number) ? 'miesiące' : 'miesięcy'); + case 'yy': + return result + (pl__plural(number) ? 'lata' : 'lat'); + } + } + + var pl = _moment__default.defineLocale('pl', { + months : function (momentToFormat, format) { + if (format === '') { + // Hack: if format empty we know this is used to generate + // RegExp by moment. Give then back both valid forms of months + // in RegExp ready format. + return '(' + monthsSubjective[momentToFormat.month()] + '|' + monthsNominative[momentToFormat.month()] + ')'; + } else if (/D MMMM/.test(format)) { + return monthsSubjective[momentToFormat.month()]; + } else { + return monthsNominative[momentToFormat.month()]; + } + }, + monthsShort : 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'), + weekdays : 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'), + weekdaysShort : 'nie_pon_wt_śr_czw_pt_sb'.split('_'), + weekdaysMin : 'N_Pn_Wt_Śr_Cz_Pt_So'.split('_'), + longDateFormat : { + LT : 'HH:mm', + LTS : 'HH:mm:ss', + L : 'DD.MM.YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY HH:mm', + LLLL : 'dddd, D MMMM YYYY HH:mm' + }, + calendar : { + sameDay: '[Dziś o] LT', + nextDay: '[Jutro o] LT', + nextWeek: '[W] dddd [o] LT', + lastDay: '[Wczoraj o] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[W zeszłą niedzielę o] LT'; + case 3: + return '[W zeszłą środę o] LT'; + case 6: + return '[W zeszłą sobotę o] LT'; + default: + return '[W zeszły] dddd [o] LT'; + } + }, + sameElse: 'L' + }, + relativeTime : { + future : 'za %s', + past : '%s temu', + s : 'kilka sekund', + m : pl__translate, + mm : pl__translate, + h : pl__translate, + hh : pl__translate, + d : '1 dzień', + dd : '%d dni', + M : 'miesiąc', + MM : pl__translate, + y : 'rok', + yy : pl__translate + }, + ordinalParse: /\d{1,2}\./, + ordinal : '%d.', + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : brazilian portuguese (pt-br) + //! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira + + var pt_br = _moment__default.defineLocale('pt-br', { + months : 'Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro'.split('_'), + monthsShort : 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'), + weekdays : 'Domingo_Segunda-Feira_Terça-Feira_Quarta-Feira_Quinta-Feira_Sexta-Feira_Sábado'.split('_'), + weekdaysShort : 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'), + weekdaysMin : 'Dom_2ª_3ª_4ª_5ª_6ª_Sáb'.split('_'), + longDateFormat : { + LT : 'HH:mm', + LTS : 'HH:mm:ss', + L : 'DD/MM/YYYY', + LL : 'D [de] MMMM [de] YYYY', + LLL : 'D [de] MMMM [de] YYYY [às] HH:mm', + LLLL : 'dddd, D [de] MMMM [de] YYYY [às] HH:mm' + }, + calendar : { + sameDay: '[Hoje às] LT', + nextDay: '[Amanhã às] LT', + nextWeek: 'dddd [às] LT', + lastDay: '[Ontem às] LT', + lastWeek: function () { + return (this.day() === 0 || this.day() === 6) ? + '[Último] dddd [às] LT' : // Saturday + Sunday + '[Última] dddd [às] LT'; // Monday - Friday + }, + sameElse: 'L' + }, + relativeTime : { + future : 'em %s', + past : '%s atrás', + s : 'poucos segundos', + m : 'um minuto', + mm : '%d minutos', + h : 'uma hora', + hh : '%d horas', + d : 'um dia', + dd : '%d dias', + M : 'um mês', + MM : '%d meses', + y : 'um ano', + yy : '%d anos' + }, + ordinalParse: /\d{1,2}º/, + ordinal : '%dº' + }); + + //! moment.js locale configuration + //! locale : portuguese (pt) + //! author : Jefferson : https://github.com/jalex79 + + var pt = _moment__default.defineLocale('pt', { + months : 'Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro'.split('_'), + monthsShort : 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'), + weekdays : 'Domingo_Segunda-Feira_Terça-Feira_Quarta-Feira_Quinta-Feira_Sexta-Feira_Sábado'.split('_'), + weekdaysShort : 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'), + weekdaysMin : 'Dom_2ª_3ª_4ª_5ª_6ª_Sáb'.split('_'), + longDateFormat : { + LT : 'HH:mm', + LTS : 'HH:mm:ss', + L : 'DD/MM/YYYY', + LL : 'D [de] MMMM [de] YYYY', + LLL : 'D [de] MMMM [de] YYYY HH:mm', + LLLL : 'dddd, D [de] MMMM [de] YYYY HH:mm' + }, + calendar : { + sameDay: '[Hoje às] LT', + nextDay: '[Amanhã às] LT', + nextWeek: 'dddd [às] LT', + lastDay: '[Ontem às] LT', + lastWeek: function () { + return (this.day() === 0 || this.day() === 6) ? + '[Último] dddd [às] LT' : // Saturday + Sunday + '[Última] dddd [às] LT'; // Monday - Friday + }, + sameElse: 'L' + }, + relativeTime : { + future : 'em %s', + past : 'há %s', + s : 'segundos', + m : 'um minuto', + mm : '%d minutos', + h : 'uma hora', + hh : '%d horas', + d : 'um dia', + dd : '%d dias', + M : 'um mês', + MM : '%d meses', + y : 'um ano', + yy : '%d anos' + }, + ordinalParse: /\d{1,2}º/, + ordinal : '%dº', + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : romanian (ro) + //! author : Vlad Gurdiga : https://github.com/gurdiga + //! author : Valentin Agachi : https://github.com/avaly + + function ro__relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + 'mm': 'minute', + 'hh': 'ore', + 'dd': 'zile', + 'MM': 'luni', + 'yy': 'ani' + }, + separator = ' '; + if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) { + separator = ' de '; + } + return number + separator + format[key]; + } + + var ro = _moment__default.defineLocale('ro', { + months : 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split('_'), + monthsShort : 'ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split('_'), + weekdays : 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'), + weekdaysShort : 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'), + weekdaysMin : 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'), + longDateFormat : { + LT : 'H:mm', + LTS : 'H:mm:ss', + L : 'DD.MM.YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY H:mm', + LLLL : 'dddd, D MMMM YYYY H:mm' + }, + calendar : { + sameDay: '[azi la] LT', + nextDay: '[mâine la] LT', + nextWeek: 'dddd [la] LT', + lastDay: '[ieri la] LT', + lastWeek: '[fosta] dddd [la] LT', + sameElse: 'L' + }, + relativeTime : { + future : 'peste %s', + past : '%s în urmă', + s : 'câteva secunde', + m : 'un minut', + mm : ro__relativeTimeWithPlural, + h : 'o oră', + hh : ro__relativeTimeWithPlural, + d : 'o zi', + dd : ro__relativeTimeWithPlural, + M : 'o lună', + MM : ro__relativeTimeWithPlural, + y : 'un an', + yy : ro__relativeTimeWithPlural + }, + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 1st is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : russian (ru) + //! author : Viktorminator : https://github.com/Viktorminator + //! Author : Menelion Elensúle : https://github.com/Oire + + function ru__plural(word, num) { + var forms = word.split('_'); + return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]); + } + function ru__relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + 'mm': withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут', + 'hh': 'час_часа_часов', + 'dd': 'день_дня_дней', + 'MM': 'месяц_месяца_месяцев', + 'yy': 'год_года_лет' + }; + if (key === 'm') { + return withoutSuffix ? 'минута' : 'минуту'; + } + else { + return number + ' ' + ru__plural(format[key], +number); + } + } + function ru__monthsCaseReplace(m, format) { + var months = { + 'nominative': 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_'), + 'accusative': 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split('_') + }, + nounCase = (/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/).test(format) ? + 'accusative' : + 'nominative'; + return months[nounCase][m.month()]; + } + function ru__monthsShortCaseReplace(m, format) { + var monthsShort = { + 'nominative': 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split('_'), + 'accusative': 'янв_фев_мар_апр_мая_июня_июля_авг_сен_окт_ноя_дек'.split('_') + }, + nounCase = (/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/).test(format) ? + 'accusative' : + 'nominative'; + return monthsShort[nounCase][m.month()]; + } + function ru__weekdaysCaseReplace(m, format) { + var weekdays = { + 'nominative': 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split('_'), + 'accusative': 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split('_') + }, + nounCase = (/\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\] ?dddd/).test(format) ? + 'accusative' : + 'nominative'; + return weekdays[nounCase][m.day()]; + } + + var ru = _moment__default.defineLocale('ru', { + months : ru__monthsCaseReplace, + monthsShort : ru__monthsShortCaseReplace, + weekdays : ru__weekdaysCaseReplace, + weekdaysShort : 'вс_пн_вт_ср_чт_пт_сб'.split('_'), + weekdaysMin : 'вс_пн_вт_ср_чт_пт_сб'.split('_'), + monthsParse : [/^янв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[й|я]/i, /^июн/i, /^июл/i, /^авг/i, /^сен/i, /^окт/i, /^ноя/i, /^дек/i], + longDateFormat : { + LT : 'HH:mm', + LTS : 'HH:mm:ss', + L : 'DD.MM.YYYY', + LL : 'D MMMM YYYY г.', + LLL : 'D MMMM YYYY г., HH:mm', + LLLL : 'dddd, D MMMM YYYY г., HH:mm' + }, + calendar : { + sameDay: '[Сегодня в] LT', + nextDay: '[Завтра в] LT', + lastDay: '[Вчера в] LT', + nextWeek: function () { + return this.day() === 2 ? '[Во] dddd [в] LT' : '[В] dddd [в] LT'; + }, + lastWeek: function (now) { + if (now.week() !== this.week()) { + switch (this.day()) { + case 0: + return '[В прошлое] dddd [в] LT'; + case 1: + case 2: + case 4: + return '[В прошлый] dddd [в] LT'; + case 3: + case 5: + case 6: + return '[В прошлую] dddd [в] LT'; + } + } else { + if (this.day() === 2) { + return '[Во] dddd [в] LT'; + } else { + return '[В] dddd [в] LT'; + } + } + }, + sameElse: 'L' + }, + relativeTime : { + future : 'через %s', + past : '%s назад', + s : 'несколько секунд', + m : ru__relativeTimeWithPlural, + mm : ru__relativeTimeWithPlural, + h : 'час', + hh : ru__relativeTimeWithPlural, + d : 'день', + dd : ru__relativeTimeWithPlural, + M : 'месяц', + MM : ru__relativeTimeWithPlural, + y : 'год', + yy : ru__relativeTimeWithPlural + }, + meridiemParse: /ночи|утра|дня|вечера/i, + isPM : function (input) { + return /^(дня|вечера)$/.test(input); + }, + meridiem : function (hour, minute, isLower) { + if (hour < 4) { + return 'ночи'; + } else if (hour < 12) { + return 'утра'; + } else if (hour < 17) { + return 'дня'; + } else { + return 'вечера'; + } + }, + ordinalParse: /\d{1,2}-(й|го|я)/, + ordinal: function (number, period) { + switch (period) { + case 'M': + case 'd': + case 'DDD': + return number + '-й'; + case 'D': + return number + '-го'; + case 'w': + case 'W': + return number + '-я'; + default: + return number; + } + }, + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 1st is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : Sinhalese (si) + //! author : Sampath Sitinamaluwa : https://github.com/sampathsris + + var si = _moment__default.defineLocale('si', { + months : 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split('_'), + monthsShort : 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split('_'), + weekdays : 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split('_'), + weekdaysShort : 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'), + weekdaysMin : 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'), + longDateFormat : { + LT : 'a h:mm', + LTS : 'a h:mm:ss', + L : 'YYYY/MM/DD', + LL : 'YYYY MMMM D', + LLL : 'YYYY MMMM D, a h:mm', + LLLL : 'YYYY MMMM D [වැනි] dddd, a h:mm:ss' + }, + calendar : { + sameDay : '[අද] LT[ට]', + nextDay : '[හෙට] LT[ට]', + nextWeek : 'dddd LT[ට]', + lastDay : '[ඊයේ] LT[ට]', + lastWeek : '[පසුගිය] dddd LT[ට]', + sameElse : 'L' + }, + relativeTime : { + future : '%sකින්', + past : '%sකට පෙර', + s : 'තත්පර කිහිපය', + m : 'මිනිත්තුව', + mm : 'මිනිත්තු %d', + h : 'පැය', + hh : 'පැය %d', + d : 'දිනය', + dd : 'දින %d', + M : 'මාසය', + MM : 'මාස %d', + y : 'වසර', + yy : 'වසර %d' + }, + ordinalParse: /\d{1,2} වැනි/, + ordinal : function (number) { + return number + ' වැනි'; + }, + meridiem : function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'ප.ව.' : 'පස් වරු'; + } else { + return isLower ? 'පෙ.ව.' : 'පෙර වරු'; + } + } + }); + + //! moment.js locale configuration + //! locale : slovak (sk) + //! author : Martin Minka : https://github.com/k2s + //! based on work of petrbela : https://github.com/petrbela + + var sk__months = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split('_'), + sk__monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_'); + function sk__plural(n) { + return (n > 1) && (n < 5); + } + function sk__translate(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': // a few seconds / in a few seconds / a few seconds ago + return (withoutSuffix || isFuture) ? 'pár sekúnd' : 'pár sekundami'; + case 'm': // a minute / in a minute / a minute ago + return withoutSuffix ? 'minúta' : (isFuture ? 'minútu' : 'minútou'); + case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago + if (withoutSuffix || isFuture) { + return result + (sk__plural(number) ? 'minúty' : 'minút'); + } else { + return result + 'minútami'; + } + break; + case 'h': // an hour / in an hour / an hour ago + return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou'); + case 'hh': // 9 hours / in 9 hours / 9 hours ago + if (withoutSuffix || isFuture) { + return result + (sk__plural(number) ? 'hodiny' : 'hodín'); + } else { + return result + 'hodinami'; + } + break; + case 'd': // a day / in a day / a day ago + return (withoutSuffix || isFuture) ? 'deň' : 'dňom'; + case 'dd': // 9 days / in 9 days / 9 days ago + if (withoutSuffix || isFuture) { + return result + (sk__plural(number) ? 'dni' : 'dní'); + } else { + return result + 'dňami'; + } + break; + case 'M': // a month / in a month / a month ago + return (withoutSuffix || isFuture) ? 'mesiac' : 'mesiacom'; + case 'MM': // 9 months / in 9 months / 9 months ago + if (withoutSuffix || isFuture) { + return result + (sk__plural(number) ? 'mesiace' : 'mesiacov'); + } else { + return result + 'mesiacmi'; + } + break; + case 'y': // a year / in a year / a year ago + return (withoutSuffix || isFuture) ? 'rok' : 'rokom'; + case 'yy': // 9 years / in 9 years / 9 years ago + if (withoutSuffix || isFuture) { + return result + (sk__plural(number) ? 'roky' : 'rokov'); + } else { + return result + 'rokmi'; + } + break; + } + } + + var sk = _moment__default.defineLocale('sk', { + months : sk__months, + monthsShort : sk__monthsShort, + monthsParse : (function (months, monthsShort) { + var i, _monthsParse = []; + for (i = 0; i < 12; i++) { + // use custom parser to solve problem with July (červenec) + _monthsParse[i] = new RegExp('^' + months[i] + '$|^' + monthsShort[i] + '$', 'i'); + } + return _monthsParse; + }(sk__months, sk__monthsShort)), + weekdays : 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'), + weekdaysShort : 'ne_po_ut_st_št_pi_so'.split('_'), + weekdaysMin : 'ne_po_ut_st_št_pi_so'.split('_'), + longDateFormat : { + LT: 'H:mm', + LTS : 'H:mm:ss', + L : 'DD.MM.YYYY', + LL : 'D. MMMM YYYY', + LLL : 'D. MMMM YYYY H:mm', + LLLL : 'dddd D. MMMM YYYY H:mm' + }, + calendar : { + sameDay: '[dnes o] LT', + nextDay: '[zajtra o] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[v nedeľu o] LT'; + case 1: + case 2: + return '[v] dddd [o] LT'; + case 3: + return '[v stredu o] LT'; + case 4: + return '[vo štvrtok o] LT'; + case 5: + return '[v piatok o] LT'; + case 6: + return '[v sobotu o] LT'; + } + }, + lastDay: '[včera o] LT', + lastWeek: function () { + switch (this.day()) { + case 0: + return '[minulú nedeľu o] LT'; + case 1: + case 2: + return '[minulý] dddd [o] LT'; + case 3: + return '[minulú stredu o] LT'; + case 4: + case 5: + return '[minulý] dddd [o] LT'; + case 6: + return '[minulú sobotu o] LT'; + } + }, + sameElse: 'L' + }, + relativeTime : { + future : 'za %s', + past : 'pred %s', + s : sk__translate, + m : sk__translate, + mm : sk__translate, + h : sk__translate, + hh : sk__translate, + d : sk__translate, + dd : sk__translate, + M : sk__translate, + MM : sk__translate, + y : sk__translate, + yy : sk__translate + }, + ordinalParse: /\d{1,2}\./, + ordinal : '%d.', + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : slovenian (sl) + //! author : Robert Sedovšek : https://github.com/sedovsek + + function sl__processRelativeTime(number, withoutSuffix, key, isFuture) { + var result = number + ' '; + switch (key) { + case 's': + return withoutSuffix || isFuture ? 'nekaj sekund' : 'nekaj sekundami'; + case 'm': + return withoutSuffix ? 'ena minuta' : 'eno minuto'; + case 'mm': + if (number === 1) { + result += withoutSuffix ? 'minuta' : 'minuto'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'minuti' : 'minutama'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'minute' : 'minutami'; + } else { + result += withoutSuffix || isFuture ? 'minut' : 'minutami'; + } + return result; + case 'h': + return withoutSuffix ? 'ena ura' : 'eno uro'; + case 'hh': + if (number === 1) { + result += withoutSuffix ? 'ura' : 'uro'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'uri' : 'urama'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'ure' : 'urami'; + } else { + result += withoutSuffix || isFuture ? 'ur' : 'urami'; + } + return result; + case 'd': + return withoutSuffix || isFuture ? 'en dan' : 'enim dnem'; + case 'dd': + if (number === 1) { + result += withoutSuffix || isFuture ? 'dan' : 'dnem'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'dni' : 'dnevoma'; + } else { + result += withoutSuffix || isFuture ? 'dni' : 'dnevi'; + } + return result; + case 'M': + return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem'; + case 'MM': + if (number === 1) { + result += withoutSuffix || isFuture ? 'mesec' : 'mesecem'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'meseca' : 'mesecema'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'mesece' : 'meseci'; + } else { + result += withoutSuffix || isFuture ? 'mesecev' : 'meseci'; + } + return result; + case 'y': + return withoutSuffix || isFuture ? 'eno leto' : 'enim letom'; + case 'yy': + if (number === 1) { + result += withoutSuffix || isFuture ? 'leto' : 'letom'; + } else if (number === 2) { + result += withoutSuffix || isFuture ? 'leti' : 'letoma'; + } else if (number < 5) { + result += withoutSuffix || isFuture ? 'leta' : 'leti'; + } else { + result += withoutSuffix || isFuture ? 'let' : 'leti'; + } + return result; + } + } + + var sl = _moment__default.defineLocale('sl', { + months : 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split('_'), + monthsShort : 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split('_'), + weekdays : 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'), + weekdaysShort : 'ned._pon._tor._sre._čet._pet._sob.'.split('_'), + weekdaysMin : 'ne_po_to_sr_če_pe_so'.split('_'), + longDateFormat : { + LT : 'H:mm', + LTS : 'H:mm:ss', + L : 'DD. MM. YYYY', + LL : 'D. MMMM YYYY', + LLL : 'D. MMMM YYYY H:mm', + LLLL : 'dddd, D. MMMM YYYY H:mm' + }, + calendar : { + sameDay : '[danes ob] LT', + nextDay : '[jutri ob] LT', + + nextWeek : function () { + switch (this.day()) { + case 0: + return '[v] [nedeljo] [ob] LT'; + case 3: + return '[v] [sredo] [ob] LT'; + case 6: + return '[v] [soboto] [ob] LT'; + case 1: + case 2: + case 4: + case 5: + return '[v] dddd [ob] LT'; + } + }, + lastDay : '[včeraj ob] LT', + lastWeek : function () { + switch (this.day()) { + case 0: + return '[prejšnjo] [nedeljo] [ob] LT'; + case 3: + return '[prejšnjo] [sredo] [ob] LT'; + case 6: + return '[prejšnjo] [soboto] [ob] LT'; + case 1: + case 2: + case 4: + case 5: + return '[prejšnji] dddd [ob] LT'; + } + }, + sameElse : 'L' + }, + relativeTime : { + future : 'čez %s', + past : 'pred %s', + s : sl__processRelativeTime, + m : sl__processRelativeTime, + mm : sl__processRelativeTime, + h : sl__processRelativeTime, + hh : sl__processRelativeTime, + d : sl__processRelativeTime, + dd : sl__processRelativeTime, + M : sl__processRelativeTime, + MM : sl__processRelativeTime, + y : sl__processRelativeTime, + yy : sl__processRelativeTime + }, + ordinalParse: /\d{1,2}\./, + ordinal : '%d.', + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 1st is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : Albanian (sq) + //! author : Flakërim Ismani : https://github.com/flakerimi + //! author: Menelion Elensúle: https://github.com/Oire (tests) + //! author : Oerd Cukalla : https://github.com/oerd (fixes) + + var sq = _moment__default.defineLocale('sq', { + months : 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split('_'), + monthsShort : 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'), + weekdays : 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split('_'), + weekdaysShort : 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'), + weekdaysMin : 'D_H_Ma_Më_E_P_Sh'.split('_'), + meridiemParse: /PD|MD/, + isPM: function (input) { + return input.charAt(0) === 'M'; + }, + meridiem : function (hours, minutes, isLower) { + return hours < 12 ? 'PD' : 'MD'; + }, + longDateFormat : { + LT : 'HH:mm', + LTS : 'HH:mm:ss', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY HH:mm', + LLLL : 'dddd, D MMMM YYYY HH:mm' + }, + calendar : { + sameDay : '[Sot në] LT', + nextDay : '[Nesër në] LT', + nextWeek : 'dddd [në] LT', + lastDay : '[Dje në] LT', + lastWeek : 'dddd [e kaluar në] LT', + sameElse : 'L' + }, + relativeTime : { + future : 'në %s', + past : '%s më parë', + s : 'disa sekonda', + m : 'një minutë', + mm : '%d minuta', + h : 'një orë', + hh : '%d orë', + d : 'një ditë', + dd : '%d ditë', + M : 'një muaj', + MM : '%d muaj', + y : 'një vit', + yy : '%d vite' + }, + ordinalParse: /\d{1,2}\./, + ordinal : '%d.', + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : Serbian-cyrillic (sr-cyrl) + //! author : Milan Janačković : https://github.com/milan-j + + var sr_cyrl__translator = { + words: { //Different grammatical cases + m: ['један минут', 'једне минуте'], + mm: ['минут', 'минуте', 'минута'], + h: ['један сат', 'једног сата'], + hh: ['сат', 'сата', 'сати'], + dd: ['дан', 'дана', 'дана'], + MM: ['месец', 'месеца', 'месеци'], + yy: ['година', 'године', 'година'] + }, + correctGrammaticalCase: function (number, wordKey) { + return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]); + }, + translate: function (number, withoutSuffix, key) { + var wordKey = sr_cyrl__translator.words[key]; + if (key.length === 1) { + return withoutSuffix ? wordKey[0] : wordKey[1]; + } else { + return number + ' ' + sr_cyrl__translator.correctGrammaticalCase(number, wordKey); + } + } + }; + + var sr_cyrl = _moment__default.defineLocale('sr-cyrl', { + months: ['јануар', 'фебруар', 'март', 'април', 'мај', 'јун', 'јул', 'август', 'септембар', 'октобар', 'новембар', 'децембар'], + monthsShort: ['јан.', 'феб.', 'мар.', 'апр.', 'мај', 'јун', 'јул', 'авг.', 'сеп.', 'окт.', 'нов.', 'дец.'], + weekdays: ['недеља', 'понедељак', 'уторак', 'среда', 'четвртак', 'петак', 'субота'], + weekdaysShort: ['нед.', 'пон.', 'уто.', 'сре.', 'чет.', 'пет.', 'суб.'], + weekdaysMin: ['не', 'по', 'ут', 'ср', 'че', 'пе', 'су'], + longDateFormat: { + LT: 'H:mm', + LTS : 'H:mm:ss', + L: 'DD. MM. YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm' + }, + calendar: { + sameDay: '[данас у] LT', + nextDay: '[сутра у] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[у] [недељу] [у] LT'; + case 3: + return '[у] [среду] [у] LT'; + case 6: + return '[у] [суботу] [у] LT'; + case 1: + case 2: + case 4: + case 5: + return '[у] dddd [у] LT'; + } + }, + lastDay : '[јуче у] LT', + lastWeek : function () { + var lastWeekDays = [ + '[прошле] [недеље] [у] LT', + '[прошлог] [понедељка] [у] LT', + '[прошлог] [уторка] [у] LT', + '[прошле] [среде] [у] LT', + '[прошлог] [четвртка] [у] LT', + '[прошлог] [петка] [у] LT', + '[прошле] [суботе] [у] LT' + ]; + return lastWeekDays[this.day()]; + }, + sameElse : 'L' + }, + relativeTime : { + future : 'за %s', + past : 'пре %s', + s : 'неколико секунди', + m : sr_cyrl__translator.translate, + mm : sr_cyrl__translator.translate, + h : sr_cyrl__translator.translate, + hh : sr_cyrl__translator.translate, + d : 'дан', + dd : sr_cyrl__translator.translate, + M : 'месец', + MM : sr_cyrl__translator.translate, + y : 'годину', + yy : sr_cyrl__translator.translate + }, + ordinalParse: /\d{1,2}\./, + ordinal : '%d.', + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 1st is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : Serbian-latin (sr) + //! author : Milan Janačković : https://github.com/milan-j + + var sr__translator = { + words: { //Different grammatical cases + m: ['jedan minut', 'jedne minute'], + mm: ['minut', 'minute', 'minuta'], + h: ['jedan sat', 'jednog sata'], + hh: ['sat', 'sata', 'sati'], + dd: ['dan', 'dana', 'dana'], + MM: ['mesec', 'meseca', 'meseci'], + yy: ['godina', 'godine', 'godina'] + }, + correctGrammaticalCase: function (number, wordKey) { + return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]); + }, + translate: function (number, withoutSuffix, key) { + var wordKey = sr__translator.words[key]; + if (key.length === 1) { + return withoutSuffix ? wordKey[0] : wordKey[1]; + } else { + return number + ' ' + sr__translator.correctGrammaticalCase(number, wordKey); + } + } + }; + + var sr = _moment__default.defineLocale('sr', { + months: ['januar', 'februar', 'mart', 'april', 'maj', 'jun', 'jul', 'avgust', 'septembar', 'oktobar', 'novembar', 'decembar'], + monthsShort: ['jan.', 'feb.', 'mar.', 'apr.', 'maj', 'jun', 'jul', 'avg.', 'sep.', 'okt.', 'nov.', 'dec.'], + weekdays: ['nedelja', 'ponedeljak', 'utorak', 'sreda', 'četvrtak', 'petak', 'subota'], + weekdaysShort: ['ned.', 'pon.', 'uto.', 'sre.', 'čet.', 'pet.', 'sub.'], + weekdaysMin: ['ne', 'po', 'ut', 'sr', 'če', 'pe', 'su'], + longDateFormat: { + LT: 'H:mm', + LTS : 'H:mm:ss', + L: 'DD. MM. YYYY', + LL: 'D. MMMM YYYY', + LLL: 'D. MMMM YYYY H:mm', + LLLL: 'dddd, D. MMMM YYYY H:mm' + }, + calendar: { + sameDay: '[danas u] LT', + nextDay: '[sutra u] LT', + nextWeek: function () { + switch (this.day()) { + case 0: + return '[u] [nedelju] [u] LT'; + case 3: + return '[u] [sredu] [u] LT'; + case 6: + return '[u] [subotu] [u] LT'; + case 1: + case 2: + case 4: + case 5: + return '[u] dddd [u] LT'; + } + }, + lastDay : '[juče u] LT', + lastWeek : function () { + var lastWeekDays = [ + '[prošle] [nedelje] [u] LT', + '[prošlog] [ponedeljka] [u] LT', + '[prošlog] [utorka] [u] LT', + '[prošle] [srede] [u] LT', + '[prošlog] [četvrtka] [u] LT', + '[prošlog] [petka] [u] LT', + '[prošle] [subote] [u] LT' + ]; + return lastWeekDays[this.day()]; + }, + sameElse : 'L' + }, + relativeTime : { + future : 'za %s', + past : 'pre %s', + s : 'nekoliko sekundi', + m : sr__translator.translate, + mm : sr__translator.translate, + h : sr__translator.translate, + hh : sr__translator.translate, + d : 'dan', + dd : sr__translator.translate, + M : 'mesec', + MM : sr__translator.translate, + y : 'godinu', + yy : sr__translator.translate + }, + ordinalParse: /\d{1,2}\./, + ordinal : '%d.', + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 1st is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : swedish (sv) + //! author : Jens Alm : https://github.com/ulmus + + var sv = _moment__default.defineLocale('sv', { + months : 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split('_'), + monthsShort : 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'), + weekdays : 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'), + weekdaysShort : 'sön_mån_tis_ons_tor_fre_lör'.split('_'), + weekdaysMin : 'sö_må_ti_on_to_fr_lö'.split('_'), + longDateFormat : { + LT : 'HH:mm', + LTS : 'HH:mm:ss', + L : 'YYYY-MM-DD', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY HH:mm', + LLLL : 'dddd D MMMM YYYY HH:mm' + }, + calendar : { + sameDay: '[Idag] LT', + nextDay: '[Imorgon] LT', + lastDay: '[Igår] LT', + nextWeek: '[På] dddd LT', + lastWeek: '[I] dddd[s] LT', + sameElse: 'L' + }, + relativeTime : { + future : 'om %s', + past : 'för %s sedan', + s : 'några sekunder', + m : 'en minut', + mm : '%d minuter', + h : 'en timme', + hh : '%d timmar', + d : 'en dag', + dd : '%d dagar', + M : 'en månad', + MM : '%d månader', + y : 'ett år', + yy : '%d år' + }, + ordinalParse: /\d{1,2}(e|a)/, + ordinal : function (number) { + var b = number % 10, + output = (~~(number % 100 / 10) === 1) ? 'e' : + (b === 1) ? 'a' : + (b === 2) ? 'a' : + (b === 3) ? 'e' : 'e'; + return number + output; + }, + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : tamil (ta) + //! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404 + + var ta = _moment__default.defineLocale('ta', { + months : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'), + monthsShort : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'), + weekdays : 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split('_'), + weekdaysShort : 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split('_'), + weekdaysMin : 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'), + longDateFormat : { + LT : 'HH:mm', + LTS : 'HH:mm:ss', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY, HH:mm', + LLLL : 'dddd, D MMMM YYYY, HH:mm' + }, + calendar : { + sameDay : '[இன்று] LT', + nextDay : '[நாளை] LT', + nextWeek : 'dddd, LT', + lastDay : '[நேற்று] LT', + lastWeek : '[கடந்த வாரம்] dddd, LT', + sameElse : 'L' + }, + relativeTime : { + future : '%s இல்', + past : '%s முன்', + s : 'ஒரு சில விநாடிகள்', + m : 'ஒரு நிமிடம்', + mm : '%d நிமிடங்கள்', + h : 'ஒரு மணி நேரம்', + hh : '%d மணி நேரம்', + d : 'ஒரு நாள்', + dd : '%d நாட்கள்', + M : 'ஒரு மாதம்', + MM : '%d மாதங்கள்', + y : 'ஒரு வருடம்', + yy : '%d ஆண்டுகள்' + }, + ordinalParse: /\d{1,2}வது/, + ordinal : function (number) { + return number + 'வது'; + }, + // refer http://ta.wikipedia.org/s/1er1 + meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/, + meridiem : function (hour, minute, isLower) { + if (hour < 2) { + return ' யாமம்'; + } else if (hour < 6) { + return ' வைகறை'; // வைகறை + } else if (hour < 10) { + return ' காலை'; // காலை + } else if (hour < 14) { + return ' நண்பகல்'; // நண்பகல் + } else if (hour < 18) { + return ' எற்பாடு'; // எற்பாடு + } else if (hour < 22) { + return ' மாலை'; // மாலை + } else { + return ' யாமம்'; + } + }, + meridiemHour : function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === 'யாமம்') { + return hour < 2 ? hour : hour + 12; + } else if (meridiem === 'வைகறை' || meridiem === 'காலை') { + return hour; + } else if (meridiem === 'நண்பகல்') { + return hour >= 10 ? hour : hour + 12; + } else { + return hour + 12; + } + }, + week : { + dow : 0, // Sunday is the first day of the week. + doy : 6 // The week that contains Jan 1st is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : thai (th) + //! author : Kridsada Thanabulpong : https://github.com/sirn + + var th = _moment__default.defineLocale('th', { + months : 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split('_'), + monthsShort : 'มกรา_กุมภา_มีนา_เมษา_พฤษภา_มิถุนา_กรกฎา_สิงหา_กันยา_ตุลา_พฤศจิกา_ธันวา'.split('_'), + weekdays : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'), + weekdaysShort : 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference + weekdaysMin : 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'), + longDateFormat : { + LT : 'H นาฬิกา m นาที', + LTS : 'H นาฬิกา m นาที s วินาที', + L : 'YYYY/MM/DD', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY เวลา H นาฬิกา m นาที', + LLLL : 'วันddddที่ D MMMM YYYY เวลา H นาฬิกา m นาที' + }, + meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/, + isPM: function (input) { + return input === 'หลังเที่ยง'; + }, + meridiem : function (hour, minute, isLower) { + if (hour < 12) { + return 'ก่อนเที่ยง'; + } else { + return 'หลังเที่ยง'; + } + }, + calendar : { + sameDay : '[วันนี้ เวลา] LT', + nextDay : '[พรุ่งนี้ เวลา] LT', + nextWeek : 'dddd[หน้า เวลา] LT', + lastDay : '[เมื่อวานนี้ เวลา] LT', + lastWeek : '[วัน]dddd[ที่แล้ว เวลา] LT', + sameElse : 'L' + }, + relativeTime : { + future : 'อีก %s', + past : '%sที่แล้ว', + s : 'ไม่กี่วินาที', + m : '1 นาที', + mm : '%d นาที', + h : '1 ชั่วโมง', + hh : '%d ชั่วโมง', + d : '1 วัน', + dd : '%d วัน', + M : '1 เดือน', + MM : '%d เดือน', + y : '1 ปี', + yy : '%d ปี' + } + }); + + //! moment.js locale configuration + //! locale : Tagalog/Filipino (tl-ph) + //! author : Dan Hagman + + var tl_ph = _moment__default.defineLocale('tl-ph', { + months : 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split('_'), + monthsShort : 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'), + weekdays : 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split('_'), + weekdaysShort : 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'), + weekdaysMin : 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'), + longDateFormat : { + LT : 'HH:mm', + LTS : 'HH:mm:ss', + L : 'MM/D/YYYY', + LL : 'MMMM D, YYYY', + LLL : 'MMMM D, YYYY HH:mm', + LLLL : 'dddd, MMMM DD, YYYY HH:mm' + }, + calendar : { + sameDay: '[Ngayon sa] LT', + nextDay: '[Bukas sa] LT', + nextWeek: 'dddd [sa] LT', + lastDay: '[Kahapon sa] LT', + lastWeek: 'dddd [huling linggo] LT', + sameElse: 'L' + }, + relativeTime : { + future : 'sa loob ng %s', + past : '%s ang nakalipas', + s : 'ilang segundo', + m : 'isang minuto', + mm : '%d minuto', + h : 'isang oras', + hh : '%d oras', + d : 'isang araw', + dd : '%d araw', + M : 'isang buwan', + MM : '%d buwan', + y : 'isang taon', + yy : '%d taon' + }, + ordinalParse: /\d{1,2}/, + ordinal : function (number) { + return number; + }, + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : turkish (tr) + //! authors : Erhan Gundogan : https://github.com/erhangundogan, + //! Burak Yiğit Kaya: https://github.com/BYK + + var tr__suffixes = { + 1: '\'inci', + 5: '\'inci', + 8: '\'inci', + 70: '\'inci', + 80: '\'inci', + 2: '\'nci', + 7: '\'nci', + 20: '\'nci', + 50: '\'nci', + 3: '\'üncü', + 4: '\'üncü', + 100: '\'üncü', + 6: '\'ncı', + 9: '\'uncu', + 10: '\'uncu', + 30: '\'uncu', + 60: '\'ıncı', + 90: '\'ıncı' + }; + + var tr = _moment__default.defineLocale('tr', { + months : 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split('_'), + monthsShort : 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'), + weekdays : 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split('_'), + weekdaysShort : 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'), + weekdaysMin : 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'), + longDateFormat : { + LT : 'HH:mm', + LTS : 'HH:mm:ss', + L : 'DD.MM.YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY HH:mm', + LLLL : 'dddd, D MMMM YYYY HH:mm' + }, + calendar : { + sameDay : '[bugün saat] LT', + nextDay : '[yarın saat] LT', + nextWeek : '[haftaya] dddd [saat] LT', + lastDay : '[dün] LT', + lastWeek : '[geçen hafta] dddd [saat] LT', + sameElse : 'L' + }, + relativeTime : { + future : '%s sonra', + past : '%s önce', + s : 'birkaç saniye', + m : 'bir dakika', + mm : '%d dakika', + h : 'bir saat', + hh : '%d saat', + d : 'bir gün', + dd : '%d gün', + M : 'bir ay', + MM : '%d ay', + y : 'bir yıl', + yy : '%d yıl' + }, + ordinalParse: /\d{1,2}'(inci|nci|üncü|ncı|uncu|ıncı)/, + ordinal : function (number) { + if (number === 0) { // special case for zero + return number + '\'ıncı'; + } + var a = number % 10, + b = number % 100 - a, + c = number >= 100 ? 100 : null; + return number + (tr__suffixes[a] || tr__suffixes[b] || tr__suffixes[c]); + }, + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 1st is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : talossan (tzl) + //! author : Robin van der Vliet : https://github.com/robin0van0der0v with the help of Iustì Canun + + + var tzl = _moment__default.defineLocale('tzl', { + months : 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split('_'), + monthsShort : 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'), + weekdays : 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'), + weekdaysShort : 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'), + weekdaysMin : 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'), + longDateFormat : { + LT : 'HH.mm', + LTS : 'LT.ss', + L : 'DD.MM.YYYY', + LL : 'D. MMMM [dallas] YYYY', + LLL : 'D. MMMM [dallas] YYYY LT', + LLLL : 'dddd, [li] D. MMMM [dallas] YYYY LT' + }, + meridiem : function (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'd\'o' : 'D\'O'; + } else { + return isLower ? 'd\'a' : 'D\'A'; + } + }, + calendar : { + sameDay : '[oxhi à] LT', + nextDay : '[demà à] LT', + nextWeek : 'dddd [à] LT', + lastDay : '[ieiri à] LT', + lastWeek : '[sür el] dddd [lasteu à] LT', + sameElse : 'L' + }, + relativeTime : { + future : 'osprei %s', + past : 'ja%s', + s : tzl__processRelativeTime, + m : tzl__processRelativeTime, + mm : tzl__processRelativeTime, + h : tzl__processRelativeTime, + hh : tzl__processRelativeTime, + d : tzl__processRelativeTime, + dd : tzl__processRelativeTime, + M : tzl__processRelativeTime, + MM : tzl__processRelativeTime, + y : tzl__processRelativeTime, + yy : tzl__processRelativeTime + }, + ordinalParse: /\d{1,2}\./, + ordinal : '%d.', + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); + + function tzl__processRelativeTime(number, withoutSuffix, key, isFuture) { + var format = { + 's': ['viensas secunds', '\'iensas secunds'], + 'm': ['\'n míut', '\'iens míut'], + 'mm': [number + ' míuts', ' ' + number + ' míuts'], + 'h': ['\'n þora', '\'iensa þora'], + 'hh': [number + ' þoras', ' ' + number + ' þoras'], + 'd': ['\'n ziua', '\'iensa ziua'], + 'dd': [number + ' ziuas', ' ' + number + ' ziuas'], + 'M': ['\'n mes', '\'iens mes'], + 'MM': [number + ' mesen', ' ' + number + ' mesen'], + 'y': ['\'n ar', '\'iens ar'], + 'yy': [number + ' ars', ' ' + number + ' ars'] + }; + return isFuture ? format[key][0] : (withoutSuffix ? format[key][0] : format[key][1].trim()); + } + + //! moment.js locale configuration + //! locale : Morocco Central Atlas Tamaziɣt in Latin (tzm-latn) + //! author : Abdel Said : https://github.com/abdelsaid + + var tzm_latn = _moment__default.defineLocale('tzm-latn', { + months : 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'), + monthsShort : 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'), + weekdays : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), + weekdaysShort : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), + weekdaysMin : 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'), + longDateFormat : { + LT : 'HH:mm', + LTS : 'HH:mm:ss', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY HH:mm', + LLLL : 'dddd D MMMM YYYY HH:mm' + }, + calendar : { + sameDay: '[asdkh g] LT', + nextDay: '[aska g] LT', + nextWeek: 'dddd [g] LT', + lastDay: '[assant g] LT', + lastWeek: 'dddd [g] LT', + sameElse: 'L' + }, + relativeTime : { + future : 'dadkh s yan %s', + past : 'yan %s', + s : 'imik', + m : 'minuḍ', + mm : '%d minuḍ', + h : 'saɛa', + hh : '%d tassaɛin', + d : 'ass', + dd : '%d ossan', + M : 'ayowr', + MM : '%d iyyirn', + y : 'asgas', + yy : '%d isgasn' + }, + week : { + dow : 6, // Saturday is the first day of the week. + doy : 12 // The week that contains Jan 1st is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : Morocco Central Atlas Tamaziɣt (tzm) + //! author : Abdel Said : https://github.com/abdelsaid + + var tzm = _moment__default.defineLocale('tzm', { + months : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'), + monthsShort : 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'), + weekdays : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), + weekdaysShort : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), + weekdaysMin : 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'), + longDateFormat : { + LT : 'HH:mm', + LTS: 'HH:mm:ss', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY HH:mm', + LLLL : 'dddd D MMMM YYYY HH:mm' + }, + calendar : { + sameDay: '[ⴰⵙⴷⵅ ⴴ] LT', + nextDay: '[ⴰⵙⴽⴰ ⴴ] LT', + nextWeek: 'dddd [ⴴ] LT', + lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT', + lastWeek: 'dddd [ⴴ] LT', + sameElse: 'L' + }, + relativeTime : { + future : 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s', + past : 'ⵢⴰⵏ %s', + s : 'ⵉⵎⵉⴽ', + m : 'ⵎⵉⵏⵓⴺ', + mm : '%d ⵎⵉⵏⵓⴺ', + h : 'ⵙⴰⵄⴰ', + hh : '%d ⵜⴰⵙⵙⴰⵄⵉⵏ', + d : 'ⴰⵙⵙ', + dd : '%d oⵙⵙⴰⵏ', + M : 'ⴰⵢoⵓⵔ', + MM : '%d ⵉⵢⵢⵉⵔⵏ', + y : 'ⴰⵙⴳⴰⵙ', + yy : '%d ⵉⵙⴳⴰⵙⵏ' + }, + week : { + dow : 6, // Saturday is the first day of the week. + doy : 12 // The week that contains Jan 1st is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : ukrainian (uk) + //! author : zemlanin : https://github.com/zemlanin + //! Author : Menelion Elensúle : https://github.com/Oire + + function uk__plural(word, num) { + var forms = word.split('_'); + return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]); + } + function uk__relativeTimeWithPlural(number, withoutSuffix, key) { + var format = { + 'mm': 'хвилина_хвилини_хвилин', + 'hh': 'година_години_годин', + 'dd': 'день_дні_днів', + 'MM': 'місяць_місяці_місяців', + 'yy': 'рік_роки_років' + }; + if (key === 'm') { + return withoutSuffix ? 'хвилина' : 'хвилину'; + } + else if (key === 'h') { + return withoutSuffix ? 'година' : 'годину'; + } + else { + return number + ' ' + uk__plural(format[key], +number); + } + } + function uk__monthsCaseReplace(m, format) { + var months = { + 'nominative': 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_'), + 'accusative': 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_') + }, + nounCase = (/D[oD]? *MMMM?/).test(format) ? + 'accusative' : + 'nominative'; + return months[nounCase][m.month()]; + } + function uk__weekdaysCaseReplace(m, format) { + var weekdays = { + 'nominative': 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split('_'), + 'accusative': 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split('_'), + 'genitive': 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split('_') + }, + nounCase = (/(\[[ВвУу]\]) ?dddd/).test(format) ? + 'accusative' : + ((/\[?(?:минулої|наступної)? ?\] ?dddd/).test(format) ? + 'genitive' : + 'nominative'); + return weekdays[nounCase][m.day()]; + } + function processHoursFunction(str) { + return function () { + return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT'; + }; + } + + var uk = _moment__default.defineLocale('uk', { + months : uk__monthsCaseReplace, + monthsShort : 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'), + weekdays : uk__weekdaysCaseReplace, + weekdaysShort : 'нд_пн_вт_ср_чт_пт_сб'.split('_'), + weekdaysMin : 'нд_пн_вт_ср_чт_пт_сб'.split('_'), + longDateFormat : { + LT : 'HH:mm', + LTS : 'HH:mm:ss', + L : 'DD.MM.YYYY', + LL : 'D MMMM YYYY р.', + LLL : 'D MMMM YYYY р., HH:mm', + LLLL : 'dddd, D MMMM YYYY р., HH:mm' + }, + calendar : { + sameDay: processHoursFunction('[Сьогодні '), + nextDay: processHoursFunction('[Завтра '), + lastDay: processHoursFunction('[Вчора '), + nextWeek: processHoursFunction('[У] dddd ['), + lastWeek: function () { + switch (this.day()) { + case 0: + case 3: + case 5: + case 6: + return processHoursFunction('[Минулої] dddd [').call(this); + case 1: + case 2: + case 4: + return processHoursFunction('[Минулого] dddd [').call(this); + } + }, + sameElse: 'L' + }, + relativeTime : { + future : 'за %s', + past : '%s тому', + s : 'декілька секунд', + m : uk__relativeTimeWithPlural, + mm : uk__relativeTimeWithPlural, + h : 'годину', + hh : uk__relativeTimeWithPlural, + d : 'день', + dd : uk__relativeTimeWithPlural, + M : 'місяць', + MM : uk__relativeTimeWithPlural, + y : 'рік', + yy : uk__relativeTimeWithPlural + }, + // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason + meridiemParse: /ночі|ранку|дня|вечора/, + isPM: function (input) { + return /^(дня|вечора)$/.test(input); + }, + meridiem : function (hour, minute, isLower) { + if (hour < 4) { + return 'ночі'; + } else if (hour < 12) { + return 'ранку'; + } else if (hour < 17) { + return 'дня'; + } else { + return 'вечора'; + } + }, + ordinalParse: /\d{1,2}-(й|го)/, + ordinal: function (number, period) { + switch (period) { + case 'M': + case 'd': + case 'DDD': + case 'w': + case 'W': + return number + '-й'; + case 'D': + return number + '-го'; + default: + return number; + } + }, + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 1st is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : uzbek (uz) + //! author : Sardor Muminov : https://github.com/muminoff + + var uz = _moment__default.defineLocale('uz', { + months : 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_'), + monthsShort : 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'), + weekdays : 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'), + weekdaysShort : 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'), + weekdaysMin : 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'), + longDateFormat : { + LT : 'HH:mm', + LTS : 'HH:mm:ss', + L : 'DD/MM/YYYY', + LL : 'D MMMM YYYY', + LLL : 'D MMMM YYYY HH:mm', + LLLL : 'D MMMM YYYY, dddd HH:mm' + }, + calendar : { + sameDay : '[Бугун соат] LT [да]', + nextDay : '[Эртага] LT [да]', + nextWeek : 'dddd [куни соат] LT [да]', + lastDay : '[Кеча соат] LT [да]', + lastWeek : '[Утган] dddd [куни соат] LT [да]', + sameElse : 'L' + }, + relativeTime : { + future : 'Якин %s ичида', + past : 'Бир неча %s олдин', + s : 'фурсат', + m : 'бир дакика', + mm : '%d дакика', + h : 'бир соат', + hh : '%d соат', + d : 'бир кун', + dd : '%d кун', + M : 'бир ой', + MM : '%d ой', + y : 'бир йил', + yy : '%d йил' + }, + week : { + dow : 1, // Monday is the first day of the week. + doy : 7 // The week that contains Jan 4th is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : vietnamese (vi) + //! author : Bang Nguyen : https://github.com/bangnk + + var vi = _moment__default.defineLocale('vi', { + months : 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split('_'), + monthsShort : 'Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12'.split('_'), + weekdays : 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split('_'), + weekdaysShort : 'CN_T2_T3_T4_T5_T6_T7'.split('_'), + weekdaysMin : 'CN_T2_T3_T4_T5_T6_T7'.split('_'), + longDateFormat : { + LT : 'HH:mm', + LTS : 'HH:mm:ss', + L : 'DD/MM/YYYY', + LL : 'D MMMM [năm] YYYY', + LLL : 'D MMMM [năm] YYYY HH:mm', + LLLL : 'dddd, D MMMM [năm] YYYY HH:mm', + l : 'DD/M/YYYY', + ll : 'D MMM YYYY', + lll : 'D MMM YYYY HH:mm', + llll : 'ddd, D MMM YYYY HH:mm' + }, + calendar : { + sameDay: '[Hôm nay lúc] LT', + nextDay: '[Ngày mai lúc] LT', + nextWeek: 'dddd [tuần tới lúc] LT', + lastDay: '[Hôm qua lúc] LT', + lastWeek: 'dddd [tuần rồi lúc] LT', + sameElse: 'L' + }, + relativeTime : { + future : '%s tới', + past : '%s trước', + s : 'vài giây', + m : 'một phút', + mm : '%d phút', + h : 'một giờ', + hh : '%d giờ', + d : 'một ngày', + dd : '%d ngày', + M : 'một tháng', + MM : '%d tháng', + y : 'một năm', + yy : '%d năm' + }, + ordinalParse: /\d{1,2}/, + ordinal : function (number) { + return number; + }, + week : { + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : chinese (zh-cn) + //! author : suupic : https://github.com/suupic + //! author : Zeno Zeng : https://github.com/zenozeng + + var zh_cn = _moment__default.defineLocale('zh-cn', { + months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'), + monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'), + weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), + weekdaysShort : '周日_周一_周二_周三_周四_周五_周六'.split('_'), + weekdaysMin : '日_一_二_三_四_五_六'.split('_'), + longDateFormat : { + LT : 'Ah点mm分', + LTS : 'Ah点m分s秒', + L : 'YYYY-MM-DD', + LL : 'YYYY年MMMD日', + LLL : 'YYYY年MMMD日Ah点mm分', + LLLL : 'YYYY年MMMD日ddddAh点mm分', + l : 'YYYY-MM-DD', + ll : 'YYYY年MMMD日', + lll : 'YYYY年MMMD日Ah点mm分', + llll : 'YYYY年MMMD日ddddAh点mm分' + }, + meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, + meridiemHour: function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '凌晨' || meridiem === '早上' || + meridiem === '上午') { + return hour; + } else if (meridiem === '下午' || meridiem === '晚上') { + return hour + 12; + } else { + // '中午' + return hour >= 11 ? hour : hour + 12; + } + }, + meridiem : function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 600) { + return '凌晨'; + } else if (hm < 900) { + return '早上'; + } else if (hm < 1130) { + return '上午'; + } else if (hm < 1230) { + return '中午'; + } else if (hm < 1800) { + return '下午'; + } else { + return '晚上'; + } + }, + calendar : { + sameDay : function () { + return this.minutes() === 0 ? '[今天]Ah[点整]' : '[今天]LT'; + }, + nextDay : function () { + return this.minutes() === 0 ? '[明天]Ah[点整]' : '[明天]LT'; + }, + lastDay : function () { + return this.minutes() === 0 ? '[昨天]Ah[点整]' : '[昨天]LT'; + }, + nextWeek : function () { + var startOfWeek, prefix; + startOfWeek = _moment__default().startOf('week'); + prefix = this.unix() - startOfWeek.unix() >= 7 * 24 * 3600 ? '[下]' : '[本]'; + return this.minutes() === 0 ? prefix + 'dddAh点整' : prefix + 'dddAh点mm'; + }, + lastWeek : function () { + var startOfWeek, prefix; + startOfWeek = _moment__default().startOf('week'); + prefix = this.unix() < startOfWeek.unix() ? '[上]' : '[本]'; + return this.minutes() === 0 ? prefix + 'dddAh点整' : prefix + 'dddAh点mm'; + }, + sameElse : 'LL' + }, + ordinalParse: /\d{1,2}(日|月|周)/, + ordinal : function (number, period) { + switch (period) { + case 'd': + case 'D': + case 'DDD': + return number + '日'; + case 'M': + return number + '月'; + case 'w': + case 'W': + return number + '周'; + default: + return number; + } + }, + relativeTime : { + future : '%s内', + past : '%s前', + s : '几秒', + m : '1 分钟', + mm : '%d 分钟', + h : '1 小时', + hh : '%d 小时', + d : '1 天', + dd : '%d 天', + M : '1 个月', + MM : '%d 个月', + y : '1 年', + yy : '%d 年' + }, + week : { + // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效 + dow : 1, // Monday is the first day of the week. + doy : 4 // The week that contains Jan 4th is the first week of the year. + } + }); + + //! moment.js locale configuration + //! locale : traditional chinese (zh-tw) + //! author : Ben : https://github.com/ben-lin + + var zh_tw = _moment__default.defineLocale('zh-tw', { + months : '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'), + monthsShort : '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'), + weekdays : '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'), + weekdaysShort : '週日_週一_週二_週三_週四_週五_週六'.split('_'), + weekdaysMin : '日_一_二_三_四_五_六'.split('_'), + longDateFormat : { + LT : 'Ah點mm分', + LTS : 'Ah點m分s秒', + L : 'YYYY年MMMD日', + LL : 'YYYY年MMMD日', + LLL : 'YYYY年MMMD日Ah點mm分', + LLLL : 'YYYY年MMMD日ddddAh點mm分', + l : 'YYYY年MMMD日', + ll : 'YYYY年MMMD日', + lll : 'YYYY年MMMD日Ah點mm分', + llll : 'YYYY年MMMD日ddddAh點mm分' + }, + meridiemParse: /早上|上午|中午|下午|晚上/, + meridiemHour : function (hour, meridiem) { + if (hour === 12) { + hour = 0; + } + if (meridiem === '早上' || meridiem === '上午') { + return hour; + } else if (meridiem === '中午') { + return hour >= 11 ? hour : hour + 12; + } else if (meridiem === '下午' || meridiem === '晚上') { + return hour + 12; + } + }, + meridiem : function (hour, minute, isLower) { + var hm = hour * 100 + minute; + if (hm < 900) { + return '早上'; + } else if (hm < 1130) { + return '上午'; + } else if (hm < 1230) { + return '中午'; + } else if (hm < 1800) { + return '下午'; + } else { + return '晚上'; + } + }, + calendar : { + sameDay : '[今天]LT', + nextDay : '[明天]LT', + nextWeek : '[下]ddddLT', + lastDay : '[昨天]LT', + lastWeek : '[上]ddddLT', + sameElse : 'L' + }, + ordinalParse: /\d{1,2}(日|月|週)/, + ordinal : function (number, period) { + switch (period) { + case 'd' : + case 'D' : + case 'DDD' : + return number + '日'; + case 'M' : + return number + '月'; + case 'w' : + case 'W' : + return number + '週'; + default : + return number; + } + }, + relativeTime : { + future : '%s內', + past : '%s前', + s : '幾秒', + m : '一分鐘', + mm : '%d分鐘', + h : '一小時', + hh : '%d小時', + d : '一天', + dd : '%d天', + M : '一個月', + MM : '%d個月', + y : '一年', + yy : '%d年' + } + }); + + var moment_with_locales = _moment__default; + moment_with_locales.locale('en'); + + return moment_with_locales; + +})); \ No newline at end of file diff --git a/public/js/moment-with-locales.min.js b/public/js/moment-with-locales.min.js new file mode 100644 index 0000000..90eb91b --- /dev/null +++ b/public/js/moment-with-locales.min.js @@ -0,0 +1,80 @@ +!function(a,b){"object"==typeof exports&&"undefined"!=typeof module?module.exports=b():"function"==typeof define&&define.amd?define(b):a.moment=b()}(this,function(){"use strict";function a(){return Md.apply(null,arguments)}function b(a){Md=a}function c(a){return"[object Array]"===Object.prototype.toString.call(a)}function d(a){return a instanceof Date||"[object Date]"===Object.prototype.toString.call(a)}function e(a,b){var c,d=[];for(c=0;c0)for(c in Od)d=Od[c],e=b[d],"undefined"!=typeof e&&(a[d]=e);return a}function n(b){m(this,b),this._d=new Date(null!=b._d?b._d.getTime():NaN),Pd===!1&&(Pd=!0,a.updateOffset(this),Pd=!1)}function o(a){return a instanceof n||null!=a&&null!=a._isAMomentObject}function p(a){return 0>a?Math.ceil(a):Math.floor(a)}function q(a){var b=+a,c=0;return 0!==b&&isFinite(b)&&(c=p(b)),c}function r(a,b,c){var d,e=Math.min(a.length,b.length),f=Math.abs(a.length-b.length),g=0;for(d=0;e>d;d++)(c&&a[d]!==b[d]||!c&&q(a[d])!==q(b[d]))&&g++;return g+f}function s(){}function t(a){return a?a.toLowerCase().replace("_","-"):a}function u(a){for(var b,c,d,e,f=0;f0;){if(d=v(e.slice(0,b).join("-")))return d;if(c&&c.length>=b&&r(e,c,!0)>=b-1)break;b--}f++}return null}function v(a){var b=null;if(!Qd[a]&&"undefined"!=typeof module&&module&&module.exports)try{b=Nd._abbr,require("./locale/"+a),w(b)}catch(c){}return Qd[a]}function w(a,b){var c;return a&&(c="undefined"==typeof b?y(a):x(a,b),c&&(Nd=c)),Nd._abbr}function x(a,b){return null!==b?(b.abbr=a,Qd[a]=Qd[a]||new s,Qd[a].set(b),w(a),Qd[a]):(delete Qd[a],null)}function y(a){var b;if(a&&a._locale&&a._locale._abbr&&(a=a._locale._abbr),!a)return Nd;if(!c(a)){if(b=v(a))return b;a=[a]}return u(a)}function z(a,b){var c=a.toLowerCase();Rd[c]=Rd[c+"s"]=Rd[b]=a}function A(a){return"string"==typeof a?Rd[a]||Rd[a.toLowerCase()]:void 0}function B(a){var b,c,d={};for(c in a)f(a,c)&&(b=A(c),b&&(d[b]=a[c]));return d}function C(b,c){return function(d){return null!=d?(E(this,b,d),a.updateOffset(this,c),this):D(this,b)}}function D(a,b){return a._d["get"+(a._isUTC?"UTC":"")+b]()}function E(a,b,c){return a._d["set"+(a._isUTC?"UTC":"")+b](c)}function F(a,b){var c;if("object"==typeof a)for(c in a)this.set(c,a[c]);else if(a=A(a),"function"==typeof this[a])return this[a](b);return this}function G(a,b,c){var d=""+Math.abs(a),e=b-d.length,f=a>=0;return(f?c?"+":"":"-")+Math.pow(10,Math.max(0,e)).toString().substr(1)+d}function H(a,b,c,d){var e=d;"string"==typeof d&&(e=function(){return this[d]()}),a&&(Vd[a]=e),b&&(Vd[b[0]]=function(){return G(e.apply(this,arguments),b[1],b[2])}),c&&(Vd[c]=function(){return this.localeData().ordinal(e.apply(this,arguments),a)})}function I(a){return a.match(/\[[\s\S]/)?a.replace(/^\[|\]$/g,""):a.replace(/\\/g,"")}function J(a){var b,c,d=a.match(Sd);for(b=0,c=d.length;c>b;b++)Vd[d[b]]?d[b]=Vd[d[b]]:d[b]=I(d[b]);return function(e){var f="";for(b=0;c>b;b++)f+=d[b]instanceof Function?d[b].call(e,a):d[b];return f}}function K(a,b){return a.isValid()?(b=L(b,a.localeData()),Ud[b]=Ud[b]||J(b),Ud[b](a)):a.localeData().invalidDate()}function L(a,b){function c(a){return b.longDateFormat(a)||a}var d=5;for(Td.lastIndex=0;d>=0&&Td.test(a);)a=a.replace(Td,c),Td.lastIndex=0,d-=1;return a}function M(a){return"function"==typeof a&&"[object Function]"===Object.prototype.toString.call(a)}function N(a,b,c){ie[a]=M(b)?b:function(a){return a&&c?c:b}}function O(a,b){return f(ie,a)?ie[a](b._strict,b._locale):new RegExp(P(a))}function P(a){return a.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(a,b,c,d,e){return b||c||d||e}).replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function Q(a,b){var c,d=b;for("string"==typeof a&&(a=[a]),"number"==typeof b&&(d=function(a,c){c[b]=q(a)}),c=0;cd;d++){if(e=h([2e3,d]),c&&!this._longMonthsParse[d]&&(this._longMonthsParse[d]=new RegExp("^"+this.months(e,"").replace(".","")+"$","i"),this._shortMonthsParse[d]=new RegExp("^"+this.monthsShort(e,"").replace(".","")+"$","i")),c||this._monthsParse[d]||(f="^"+this.months(e,"")+"|^"+this.monthsShort(e,""),this._monthsParse[d]=new RegExp(f.replace(".",""),"i")),c&&"MMMM"===b&&this._longMonthsParse[d].test(a))return d;if(c&&"MMM"===b&&this._shortMonthsParse[d].test(a))return d;if(!c&&this._monthsParse[d].test(a))return d}}function X(a,b){var c;return"string"==typeof b&&(b=a.localeData().monthsParse(b),"number"!=typeof b)?a:(c=Math.min(a.date(),T(a.year(),b)),a._d["set"+(a._isUTC?"UTC":"")+"Month"](b,c),a)}function Y(b){return null!=b?(X(this,b),a.updateOffset(this,!0),this):D(this,"Month")}function Z(){return T(this.year(),this.month())}function $(a){var b,c=a._a;return c&&-2===j(a).overflow&&(b=c[le]<0||c[le]>11?le:c[me]<1||c[me]>T(c[ke],c[le])?me:c[ne]<0||c[ne]>24||24===c[ne]&&(0!==c[oe]||0!==c[pe]||0!==c[qe])?ne:c[oe]<0||c[oe]>59?oe:c[pe]<0||c[pe]>59?pe:c[qe]<0||c[qe]>999?qe:-1,j(a)._overflowDayOfYear&&(ke>b||b>me)&&(b=me),j(a).overflow=b),a}function _(b){a.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+b)}function aa(a,b){var c=!0;return g(function(){return c&&(_(a+"\n"+(new Error).stack),c=!1),b.apply(this,arguments)},b)}function ba(a,b){te[a]||(_(b),te[a]=!0)}function ca(a){var b,c,d=a._i,e=ue.exec(d);if(e){for(j(a).iso=!0,b=0,c=ve.length;c>b;b++)if(ve[b][1].exec(d)){a._f=ve[b][0];break}for(b=0,c=we.length;c>b;b++)if(we[b][1].exec(d)){a._f+=(e[6]||" ")+we[b][0];break}d.match(fe)&&(a._f+="Z"),va(a)}else a._isValid=!1}function da(b){var c=xe.exec(b._i);return null!==c?void(b._d=new Date(+c[1])):(ca(b),void(b._isValid===!1&&(delete b._isValid,a.createFromInputFallback(b))))}function ea(a,b,c,d,e,f,g){var h=new Date(a,b,c,d,e,f,g);return 1970>a&&h.setFullYear(a),h}function fa(a){var b=new Date(Date.UTC.apply(null,arguments));return 1970>a&&b.setUTCFullYear(a),b}function ga(a){return ha(a)?366:365}function ha(a){return a%4===0&&a%100!==0||a%400===0}function ia(){return ha(this.year())}function ja(a,b,c){var d,e=c-b,f=c-a.day();return f>e&&(f-=7),e-7>f&&(f+=7),d=Da(a).add(f,"d"),{week:Math.ceil(d.dayOfYear()/7),year:d.year()}}function ka(a){return ja(a,this._week.dow,this._week.doy).week}function la(){return this._week.dow}function ma(){return this._week.doy}function na(a){var b=this.localeData().week(this);return null==a?b:this.add(7*(a-b),"d")}function oa(a){var b=ja(this,1,4).week;return null==a?b:this.add(7*(a-b),"d")}function pa(a,b,c,d,e){var f,g=6+e-d,h=fa(a,0,1+g),i=h.getUTCDay();return e>i&&(i+=7),c=null!=c?1*c:e,f=1+g+7*(b-1)-i+c,{year:f>0?a:a-1,dayOfYear:f>0?f:ga(a-1)+f}}function qa(a){var b=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==a?b:this.add(a-b,"d")}function ra(a,b,c){return null!=a?a:null!=b?b:c}function sa(a){var b=new Date;return a._useUTC?[b.getUTCFullYear(),b.getUTCMonth(),b.getUTCDate()]:[b.getFullYear(),b.getMonth(),b.getDate()]}function ta(a){var b,c,d,e,f=[];if(!a._d){for(d=sa(a),a._w&&null==a._a[me]&&null==a._a[le]&&ua(a),a._dayOfYear&&(e=ra(a._a[ke],d[ke]),a._dayOfYear>ga(e)&&(j(a)._overflowDayOfYear=!0),c=fa(e,0,a._dayOfYear),a._a[le]=c.getUTCMonth(),a._a[me]=c.getUTCDate()),b=0;3>b&&null==a._a[b];++b)a._a[b]=f[b]=d[b];for(;7>b;b++)a._a[b]=f[b]=null==a._a[b]?2===b?1:0:a._a[b];24===a._a[ne]&&0===a._a[oe]&&0===a._a[pe]&&0===a._a[qe]&&(a._nextDay=!0,a._a[ne]=0),a._d=(a._useUTC?fa:ea).apply(null,f),null!=a._tzm&&a._d.setUTCMinutes(a._d.getUTCMinutes()-a._tzm),a._nextDay&&(a._a[ne]=24)}}function ua(a){var b,c,d,e,f,g,h;b=a._w,null!=b.GG||null!=b.W||null!=b.E?(f=1,g=4,c=ra(b.GG,a._a[ke],ja(Da(),1,4).year),d=ra(b.W,1),e=ra(b.E,1)):(f=a._locale._week.dow,g=a._locale._week.doy,c=ra(b.gg,a._a[ke],ja(Da(),f,g).year),d=ra(b.w,1),null!=b.d?(e=b.d,f>e&&++d):e=null!=b.e?b.e+f:f),h=pa(c,d,e,g,f),a._a[ke]=h.year,a._dayOfYear=h.dayOfYear}function va(b){if(b._f===a.ISO_8601)return void ca(b);b._a=[],j(b).empty=!0;var c,d,e,f,g,h=""+b._i,i=h.length,k=0;for(e=L(b._f,b._locale).match(Sd)||[],c=0;c0&&j(b).unusedInput.push(g),h=h.slice(h.indexOf(d)+d.length),k+=d.length),Vd[f]?(d?j(b).empty=!1:j(b).unusedTokens.push(f),S(f,d,b)):b._strict&&!d&&j(b).unusedTokens.push(f);j(b).charsLeftOver=i-k,h.length>0&&j(b).unusedInput.push(h),j(b).bigHour===!0&&b._a[ne]<=12&&b._a[ne]>0&&(j(b).bigHour=void 0),b._a[ne]=wa(b._locale,b._a[ne],b._meridiem),ta(b),$(b)}function wa(a,b,c){var d;return null==c?b:null!=a.meridiemHour?a.meridiemHour(b,c):null!=a.isPM?(d=a.isPM(c),d&&12>b&&(b+=12),d||12!==b||(b=0),b):b}function xa(a){var b,c,d,e,f;if(0===a._f.length)return j(a).invalidFormat=!0,void(a._d=new Date(NaN));for(e=0;ef)&&(d=f,c=b));g(a,c||b)}function ya(a){if(!a._d){var b=B(a._i);a._a=[b.year,b.month,b.day||b.date,b.hour,b.minute,b.second,b.millisecond],ta(a)}}function za(a){var b=new n($(Aa(a)));return b._nextDay&&(b.add(1,"d"),b._nextDay=void 0),b}function Aa(a){var b=a._i,e=a._f;return a._locale=a._locale||y(a._l),null===b||void 0===e&&""===b?l({nullInput:!0}):("string"==typeof b&&(a._i=b=a._locale.preparse(b)),o(b)?new n($(b)):(c(e)?xa(a):e?va(a):d(b)?a._d=b:Ba(a),a))}function Ba(b){var f=b._i;void 0===f?b._d=new Date:d(f)?b._d=new Date(+f):"string"==typeof f?da(b):c(f)?(b._a=e(f.slice(0),function(a){return parseInt(a,10)}),ta(b)):"object"==typeof f?ya(b):"number"==typeof f?b._d=new Date(f):a.createFromInputFallback(b)}function Ca(a,b,c,d,e){var f={};return"boolean"==typeof c&&(d=c,c=void 0),f._isAMomentObject=!0,f._useUTC=f._isUTC=e,f._l=c,f._i=a,f._f=b,f._strict=d,za(f)}function Da(a,b,c,d){return Ca(a,b,c,d,!1)}function Ea(a,b){var d,e;if(1===b.length&&c(b[0])&&(b=b[0]),!b.length)return Da();for(d=b[0],e=1;ea&&(a=-a,c="-"),c+G(~~(a/60),2)+b+G(~~a%60,2)})}function Ka(a){var b=(a||"").match(fe)||[],c=b[b.length-1]||[],d=(c+"").match(Ce)||["-",0,0],e=+(60*d[1])+q(d[2]);return"+"===d[0]?e:-e}function La(b,c){var e,f;return c._isUTC?(e=c.clone(),f=(o(b)||d(b)?+b:+Da(b))-+e,e._d.setTime(+e._d+f),a.updateOffset(e,!1),e):Da(b).local()}function Ma(a){return 15*-Math.round(a._d.getTimezoneOffset()/15)}function Na(b,c){var d,e=this._offset||0;return null!=b?("string"==typeof b&&(b=Ka(b)),Math.abs(b)<16&&(b=60*b),!this._isUTC&&c&&(d=Ma(this)),this._offset=b,this._isUTC=!0,null!=d&&this.add(d,"m"),e!==b&&(!c||this._changeInProgress?bb(this,Ya(b-e,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,a.updateOffset(this,!0),this._changeInProgress=null)),this):this._isUTC?e:Ma(this)}function Oa(a,b){return null!=a?("string"!=typeof a&&(a=-a),this.utcOffset(a,b),this):-this.utcOffset()}function Pa(a){return this.utcOffset(0,a)}function Qa(a){return this._isUTC&&(this.utcOffset(0,a),this._isUTC=!1,a&&this.subtract(Ma(this),"m")),this}function Ra(){return this._tzm?this.utcOffset(this._tzm):"string"==typeof this._i&&this.utcOffset(Ka(this._i)),this}function Sa(a){return a=a?Da(a).utcOffset():0,(this.utcOffset()-a)%60===0}function Ta(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Ua(){if("undefined"!=typeof this._isDSTShifted)return this._isDSTShifted;var a={};if(m(a,this),a=Aa(a),a._a){var b=a._isUTC?h(a._a):Da(a._a);this._isDSTShifted=this.isValid()&&r(a._a,b.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function Va(){return!this._isUTC}function Wa(){return this._isUTC}function Xa(){return this._isUTC&&0===this._offset}function Ya(a,b){var c,d,e,g=a,h=null;return Ia(a)?g={ms:a._milliseconds,d:a._days,M:a._months}:"number"==typeof a?(g={},b?g[b]=a:g.milliseconds=a):(h=De.exec(a))?(c="-"===h[1]?-1:1,g={y:0,d:q(h[me])*c,h:q(h[ne])*c,m:q(h[oe])*c,s:q(h[pe])*c,ms:q(h[qe])*c}):(h=Ee.exec(a))?(c="-"===h[1]?-1:1,g={y:Za(h[2],c),M:Za(h[3],c),d:Za(h[4],c),h:Za(h[5],c),m:Za(h[6],c),s:Za(h[7],c),w:Za(h[8],c)}):null==g?g={}:"object"==typeof g&&("from"in g||"to"in g)&&(e=_a(Da(g.from),Da(g.to)),g={},g.ms=e.milliseconds,g.M=e.months),d=new Ha(g),Ia(a)&&f(a,"_locale")&&(d._locale=a._locale),d}function Za(a,b){var c=a&&parseFloat(a.replace(",","."));return(isNaN(c)?0:c)*b}function $a(a,b){var c={milliseconds:0,months:0};return c.months=b.month()-a.month()+12*(b.year()-a.year()),a.clone().add(c.months,"M").isAfter(b)&&--c.months,c.milliseconds=+b-+a.clone().add(c.months,"M"),c}function _a(a,b){var c;return b=La(b,a),a.isBefore(b)?c=$a(a,b):(c=$a(b,a),c.milliseconds=-c.milliseconds,c.months=-c.months),c}function ab(a,b){return function(c,d){var e,f;return null===d||isNaN(+d)||(ba(b,"moment()."+b+"(period, number) is deprecated. Please use moment()."+b+"(number, period)."),f=c,c=d,d=f),c="string"==typeof c?+c:c,e=Ya(c,d),bb(this,e,a),this}}function bb(b,c,d,e){var f=c._milliseconds,g=c._days,h=c._months;e=null==e?!0:e,f&&b._d.setTime(+b._d+f*d),g&&E(b,"Date",D(b,"Date")+g*d),h&&X(b,D(b,"Month")+h*d),e&&a.updateOffset(b,g||h)}function cb(a,b){var c=a||Da(),d=La(c,this).startOf("day"),e=this.diff(d,"days",!0),f=-6>e?"sameElse":-1>e?"lastWeek":0>e?"lastDay":1>e?"sameDay":2>e?"nextDay":7>e?"nextWeek":"sameElse";return this.format(b&&b[f]||this.localeData().calendar(f,this,Da(c)))}function db(){return new n(this)}function eb(a,b){var c;return b=A("undefined"!=typeof b?b:"millisecond"),"millisecond"===b?(a=o(a)?a:Da(a),+this>+a):(c=o(a)?+a:+Da(a),c<+this.clone().startOf(b))}function fb(a,b){var c;return b=A("undefined"!=typeof b?b:"millisecond"),"millisecond"===b?(a=o(a)?a:Da(a),+a>+this):(c=o(a)?+a:+Da(a),+this.clone().endOf(b)b-f?(c=a.clone().add(e-1,"months"),d=(b-f)/(f-c)):(c=a.clone().add(e+1,"months"),d=(b-f)/(c-f)),-(e+d)}function kb(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function lb(){var a=this.clone().utc();return 0b;b++)if(this._weekdaysParse[b]||(c=Da([2e3,1]).day(b),d="^"+this.weekdays(c,"")+"|^"+this.weekdaysShort(c,"")+"|^"+this.weekdaysMin(c,""),this._weekdaysParse[b]=new RegExp(d.replace(".",""),"i")),this._weekdaysParse[b].test(a))return b}function Pb(a){var b=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=a?(a=Kb(a,this.localeData()),this.add(a-b,"d")):b}function Qb(a){var b=(this.day()+7-this.localeData()._week.dow)%7;return null==a?b:this.add(a-b,"d")}function Rb(a){return null==a?this.day()||7:this.day(this.day()%7?a:a-7)}function Sb(a,b){H(a,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),b)})}function Tb(a,b){return b._meridiemParse}function Ub(a){return"p"===(a+"").toLowerCase().charAt(0)}function Vb(a,b,c){return a>11?c?"pm":"PM":c?"am":"AM"}function Wb(a,b){b[qe]=q(1e3*("0."+a))}function Xb(){return this._isUTC?"UTC":""}function Yb(){return this._isUTC?"Coordinated Universal Time":""}function Zb(a){return Da(1e3*a)}function $b(){return Da.apply(null,arguments).parseZone()}function _b(a,b,c){var d=this._calendar[a];return"function"==typeof d?d.call(b,c):d}function ac(a){var b=this._longDateFormat[a],c=this._longDateFormat[a.toUpperCase()];return b||!c?b:(this._longDateFormat[a]=c.replace(/MMMM|MM|DD|dddd/g,function(a){return a.slice(1)}),this._longDateFormat[a])}function bc(){return this._invalidDate}function cc(a){return this._ordinal.replace("%d",a)}function dc(a){return a}function ec(a,b,c,d){var e=this._relativeTime[c];return"function"==typeof e?e(a,b,c,d):e.replace(/%d/i,a)}function fc(a,b){var c=this._relativeTime[a>0?"future":"past"];return"function"==typeof c?c(b):c.replace(/%s/i,b)}function gc(a){var b,c;for(c in a)b=a[c],"function"==typeof b?this[c]=b:this["_"+c]=b;this._ordinalParseLenient=new RegExp(this._ordinalParse.source+"|"+/\d{1,2}/.source)}function hc(a,b,c,d){var e=y(),f=h().set(d,b);return e[c](f,a)}function ic(a,b,c,d,e){if("number"==typeof a&&(b=a,a=void 0),a=a||"",null!=b)return hc(a,b,c,e);var f,g=[];for(f=0;d>f;f++)g[f]=hc(a,f,c,e);return g}function jc(a,b){return ic(a,b,"months",12,"month")}function kc(a,b){return ic(a,b,"monthsShort",12,"month")}function lc(a,b){return ic(a,b,"weekdays",7,"day")}function mc(a,b){return ic(a,b,"weekdaysShort",7,"day")}function nc(a,b){return ic(a,b,"weekdaysMin",7,"day")}function oc(){var a=this._data;return this._milliseconds=_e(this._milliseconds),this._days=_e(this._days),this._months=_e(this._months),a.milliseconds=_e(a.milliseconds),a.seconds=_e(a.seconds),a.minutes=_e(a.minutes),a.hours=_e(a.hours),a.months=_e(a.months),a.years=_e(a.years),this}function pc(a,b,c,d){var e=Ya(b,c);return a._milliseconds+=d*e._milliseconds,a._days+=d*e._days,a._months+=d*e._months,a._bubble()}function qc(a,b){return pc(this,a,b,1)}function rc(a,b){return pc(this,a,b,-1)}function sc(a){return 0>a?Math.floor(a):Math.ceil(a)}function tc(){var a,b,c,d,e,f=this._milliseconds,g=this._days,h=this._months,i=this._data;return f>=0&&g>=0&&h>=0||0>=f&&0>=g&&0>=h||(f+=864e5*sc(vc(h)+g),g=0,h=0),i.milliseconds=f%1e3,a=p(f/1e3),i.seconds=a%60,b=p(a/60),i.minutes=b%60,c=p(b/60),i.hours=c%24,g+=p(c/24),e=p(uc(g)),h+=e,g-=sc(vc(e)),d=p(h/12),h%=12,i.days=g,i.months=h,i.years=d,this}function uc(a){return 4800*a/146097}function vc(a){return 146097*a/4800}function wc(a){var b,c,d=this._milliseconds;if(a=A(a),"month"===a||"year"===a)return b=this._days+d/864e5,c=this._months+uc(b),"month"===a?c:c/12;switch(b=this._days+Math.round(vc(this._months)),a){case"week":return b/7+d/6048e5;case"day":return b+d/864e5;case"hour":return 24*b+d/36e5;case"minute":return 1440*b+d/6e4;case"second":return 86400*b+d/1e3;case"millisecond":return Math.floor(864e5*b)+d;default:throw new Error("Unknown unit "+a)}}function xc(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*q(this._months/12)}function yc(a){return function(){return this.as(a)}}function zc(a){return a=A(a),this[a+"s"]()}function Ac(a){return function(){return this._data[a]}}function Bc(){return p(this.days()/7)}function Cc(a,b,c,d,e){return e.relativeTime(b||1,!!c,a,d)}function Dc(a,b,c){var d=Ya(a).abs(),e=qf(d.as("s")),f=qf(d.as("m")),g=qf(d.as("h")),h=qf(d.as("d")),i=qf(d.as("M")),j=qf(d.as("y")),k=e0,k[4]=c,Cc.apply(null,k)}function Ec(a,b){return void 0===rf[a]?!1:void 0===b?rf[a]:(rf[a]=b,!0)}function Fc(a){var b=this.localeData(),c=Dc(this,!a,b);return a&&(c=b.pastFuture(+this,c)),b.postformat(c)}function Gc(){var a,b,c,d=sf(this._milliseconds)/1e3,e=sf(this._days),f=sf(this._months);a=p(d/60),b=p(a/60),d%=60,a%=60,c=p(f/12),f%=12;var g=c,h=f,i=e,j=b,k=a,l=d,m=this.asSeconds();return m?(0>m?"-":"")+"P"+(g?g+"Y":"")+(h?h+"M":"")+(i?i+"D":"")+(j||k||l?"T":"")+(j?j+"H":"")+(k?k+"M":"")+(l?l+"S":""):"P0D"} +//! moment.js locale configuration +//! locale : belarusian (be) +//! author : Dmitry Demidov : https://github.com/demidov91 +//! author: Praleska: http://praleska.pro/ +//! Author : Menelion Elensúle : https://github.com/Oire +function Hc(a,b){var c=a.split("_");return b%10===1&&b%100!==11?c[0]:b%10>=2&&4>=b%10&&(10>b%100||b%100>=20)?c[1]:c[2]}function Ic(a,b,c){var d={mm:b?"хвіліна_хвіліны_хвілін":"хвіліну_хвіліны_хвілін",hh:b?"гадзіна_гадзіны_гадзін":"гадзіну_гадзіны_гадзін",dd:"дзень_дні_дзён",MM:"месяц_месяцы_месяцаў",yy:"год_гады_гадоў"};return"m"===c?b?"хвіліна":"хвіліну":"h"===c?b?"гадзіна":"гадзіну":a+" "+Hc(d[c],+a)}function Jc(a,b){var c={nominative:"студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань".split("_"),accusative:"студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня".split("_")},d=/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/.test(b)?"accusative":"nominative";return c[d][a.month()]}function Kc(a,b){var c={nominative:"нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота".split("_"),accusative:"нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу".split("_")},d=/\[ ?[Вв] ?(?:мінулую|наступную)? ?\] ?dddd/.test(b)?"accusative":"nominative";return c[d][a.day()]} +//! moment.js locale configuration +//! locale : breton (br) +//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou +function Lc(a,b,c){var d={mm:"munutenn",MM:"miz",dd:"devezh"};return a+" "+Oc(d[c],a)}function Mc(a){switch(Nc(a)){case 1:case 3:case 4:case 5:case 9:return a+" bloaz";default:return a+" vloaz"}}function Nc(a){return a>9?Nc(a%10):a}function Oc(a,b){return 2===b?Pc(a):a}function Pc(a){var b={m:"v",b:"v",d:"z"};return void 0===b[a.charAt(0)]?a:b[a.charAt(0)]+a.substring(1)} +//! moment.js locale configuration +//! locale : bosnian (bs) +//! author : Nedim Cholich : https://github.com/frontyard +//! based on (hr) translation by Bojan Marković +function Qc(a,b,c){var d=a+" ";switch(c){case"m":return b?"jedna minuta":"jedne minute";case"mm":return d+=1===a?"minuta":2===a||3===a||4===a?"minute":"minuta";case"h":return b?"jedan sat":"jednog sata";case"hh":return d+=1===a?"sat":2===a||3===a||4===a?"sata":"sati";case"dd":return d+=1===a?"dan":"dana";case"MM":return d+=1===a?"mjesec":2===a||3===a||4===a?"mjeseca":"mjeseci";case"yy":return d+=1===a?"godina":2===a||3===a||4===a?"godine":"godina"}}function Rc(a){return a>1&&5>a&&1!==~~(a/10)}function Sc(a,b,c,d){var e=a+" ";switch(c){case"s":return b||d?"pár sekund":"pár sekundami";case"m":return b?"minuta":d?"minutu":"minutou";case"mm":return b||d?e+(Rc(a)?"minuty":"minut"):e+"minutami";break;case"h":return b?"hodina":d?"hodinu":"hodinou";case"hh":return b||d?e+(Rc(a)?"hodiny":"hodin"):e+"hodinami";break;case"d":return b||d?"den":"dnem";case"dd":return b||d?e+(Rc(a)?"dny":"dní"):e+"dny";break;case"M":return b||d?"měsíc":"měsícem";case"MM":return b||d?e+(Rc(a)?"měsíce":"měsíců"):e+"měsíci";break;case"y":return b||d?"rok":"rokem";case"yy":return b||d?e+(Rc(a)?"roky":"let"):e+"lety"}} +//! moment.js locale configuration +//! locale : austrian german (de-at) +//! author : lluchs : https://github.com/lluchs +//! author: Menelion Elensúle: https://github.com/Oire +//! author : Martin Groller : https://github.com/MadMG +function Tc(a,b,c,d){var e={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[a+" Tage",a+" Tagen"],M:["ein Monat","einem Monat"],MM:[a+" Monate",a+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[a+" Jahre",a+" Jahren"]};return b?e[c][0]:e[c][1]} +//! moment.js locale configuration +//! locale : german (de) +//! author : lluchs : https://github.com/lluchs +//! author: Menelion Elensúle: https://github.com/Oire +function Uc(a,b,c,d){var e={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[a+" Tage",a+" Tagen"],M:["ein Monat","einem Monat"],MM:[a+" Monate",a+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[a+" Jahre",a+" Jahren"]};return b?e[c][0]:e[c][1]} +//! moment.js locale configuration +//! locale : estonian (et) +//! author : Henry Kehlmann : https://github.com/madhenry +//! improvements : Illimar Tambek : https://github.com/ragulka +function Vc(a,b,c,d){var e={s:["mõne sekundi","mõni sekund","paar sekundit"],m:["ühe minuti","üks minut"],mm:[a+" minuti",a+" minutit"],h:["ühe tunni","tund aega","üks tund"],hh:[a+" tunni",a+" tundi"],d:["ühe päeva","üks päev"],M:["kuu aja","kuu aega","üks kuu"],MM:[a+" kuu",a+" kuud"],y:["ühe aasta","aasta","üks aasta"],yy:[a+" aasta",a+" aastat"]};return b?e[c][2]?e[c][2]:e[c][1]:d?e[c][0]:e[c][1]}function Wc(a,b,c,d){var e="";switch(c){case"s":return d?"muutaman sekunnin":"muutama sekunti";case"m":return d?"minuutin":"minuutti";case"mm":e=d?"minuutin":"minuuttia";break;case"h":return d?"tunnin":"tunti";case"hh":e=d?"tunnin":"tuntia";break;case"d":return d?"päivän":"päivä";case"dd":e=d?"päivän":"päivää";break;case"M":return d?"kuukauden":"kuukausi";case"MM":e=d?"kuukauden":"kuukautta";break;case"y":return d?"vuoden":"vuosi";case"yy":e=d?"vuoden":"vuotta"}return e=Xc(a,d)+" "+e}function Xc(a,b){return 10>a?b?Pf[a]:Of[a]:a} +//! moment.js locale configuration +//! locale : hrvatski (hr) +//! author : Bojan Marković : https://github.com/bmarkovic +function Yc(a,b,c){var d=a+" ";switch(c){case"m":return b?"jedna minuta":"jedne minute";case"mm":return d+=1===a?"minuta":2===a||3===a||4===a?"minute":"minuta";case"h":return b?"jedan sat":"jednog sata";case"hh":return d+=1===a?"sat":2===a||3===a||4===a?"sata":"sati";case"dd":return d+=1===a?"dan":"dana";case"MM":return d+=1===a?"mjesec":2===a||3===a||4===a?"mjeseca":"mjeseci";case"yy":return d+=1===a?"godina":2===a||3===a||4===a?"godine":"godina"}}function Zc(a,b,c,d){var e=a;switch(c){case"s":return d||b?"néhány másodperc":"néhány másodperce";case"m":return"egy"+(d||b?" perc":" perce");case"mm":return e+(d||b?" perc":" perce");case"h":return"egy"+(d||b?" óra":" órája");case"hh":return e+(d||b?" óra":" órája");case"d":return"egy"+(d||b?" nap":" napja");case"dd":return e+(d||b?" nap":" napja");case"M":return"egy"+(d||b?" hónap":" hónapja");case"MM":return e+(d||b?" hónap":" hónapja");case"y":return"egy"+(d||b?" év":" éve");case"yy":return e+(d||b?" év":" éve")}return""}function $c(a){return(a?"":"[múlt] ")+"["+Uf[this.day()]+"] LT[-kor]"} +//! moment.js locale configuration +//! locale : Armenian (hy-am) +//! author : Armendarabyan : https://github.com/armendarabyan +function _c(a,b){var c={nominative:"հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր".split("_"),accusative:"հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի".split("_")},d=/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/.test(b)?"accusative":"nominative";return c[d][a.month()]}function ad(a,b){var c="հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ".split("_");return c[a.month()]}function bd(a,b){var c="կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ".split("_");return c[a.day()]} +//! moment.js locale configuration +//! locale : icelandic (is) +//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik +function cd(a){return a%100===11?!0:a%10===1?!1:!0}function dd(a,b,c,d){var e=a+" ";switch(c){case"s":return b||d?"nokkrar sekúndur":"nokkrum sekúndum";case"m":return b?"mínúta":"mínútu";case"mm":return cd(a)?e+(b||d?"mínútur":"mínútum"):b?e+"mínúta":e+"mínútu";case"hh":return cd(a)?e+(b||d?"klukkustundir":"klukkustundum"):e+"klukkustund";case"d":return b?"dagur":d?"dag":"degi";case"dd":return cd(a)?b?e+"dagar":e+(d?"daga":"dögum"):b?e+"dagur":e+(d?"dag":"degi");case"M":return b?"mánuður":d?"mánuð":"mánuði";case"MM":return cd(a)?b?e+"mánuðir":e+(d?"mánuði":"mánuðum"):b?e+"mánuður":e+(d?"mánuð":"mánuði");case"y":return b||d?"ár":"ári";case"yy":return cd(a)?e+(b||d?"ár":"árum"):e+(b||d?"ár":"ári")}} +//! moment.js locale configuration +//! locale : Georgian (ka) +//! author : Irakli Janiashvili : https://github.com/irakli-janiashvili +function ed(a,b){var c={nominative:"იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი".split("_"),accusative:"იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს".split("_")},d=/D[oD] *MMMM?/.test(b)?"accusative":"nominative";return c[d][a.month()]}function fd(a,b){var c={nominative:"კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი".split("_"),accusative:"კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს".split("_")},d=/(წინა|შემდეგ)/.test(b)?"accusative":"nominative";return c[d][a.day()]} +//! moment.js locale configuration +//! locale : Luxembourgish (lb) +//! author : mweimerskirch : https://github.com/mweimerskirch, David Raison : https://github.com/kwisatz +function gd(a,b,c,d){var e={m:["eng Minutt","enger Minutt"],h:["eng Stonn","enger Stonn"],d:["een Dag","engem Dag"],M:["ee Mount","engem Mount"],y:["ee Joer","engem Joer"]};return b?e[c][0]:e[c][1]}function hd(a){var b=a.substr(0,a.indexOf(" "));return jd(b)?"a "+a:"an "+a}function id(a){var b=a.substr(0,a.indexOf(" "));return jd(b)?"viru "+a:"virun "+a}function jd(a){if(a=parseInt(a,10),isNaN(a))return!1;if(0>a)return!0;if(10>a)return a>=4&&7>=a?!0:!1;if(100>a){var b=a%10,c=a/10;return jd(0===b?c:b)}if(1e4>a){for(;a>=10;)a/=10;return jd(a)}return a/=1e3,jd(a)}function kd(a,b,c,d){return b?"kelios sekundės":d?"kelių sekundžių":"kelias sekundes"}function ld(a,b){var c={nominative:"sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis".split("_"),accusative:"sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio".split("_")},d=/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/.test(b)?"accusative":"nominative";return c[d][a.month()]}function md(a,b,c,d){return b?od(c)[0]:d?od(c)[1]:od(c)[2]}function nd(a){return a%10===0||a>10&&20>a}function od(a){return Vf[a].split("_")}function pd(a,b,c,d){var e=a+" ";return 1===a?e+md(a,b,c[0],d):b?e+(nd(a)?od(c)[1]:od(c)[0]):d?e+od(c)[1]:e+(nd(a)?od(c)[1]:od(c)[2])}function qd(a,b){var c=-1===b.indexOf("dddd HH:mm"),d=Wf[a.day()];return c?d:d.substring(0,d.length-2)+"į"}function rd(a,b,c){return c?b%10===1&&11!==b?a[2]:a[3]:b%10===1&&11!==b?a[0]:a[1]}function sd(a,b,c){return a+" "+rd(Xf[c],a,b)}function td(a,b,c){return rd(Xf[c],a,b)}function ud(a,b){return b?"dažas sekundes":"dažām sekundēm"}function vd(a){return 5>a%10&&a%10>1&&~~(a/10)%10!==1}function wd(a,b,c){var d=a+" ";switch(c){case"m":return b?"minuta":"minutę";case"mm":return d+(vd(a)?"minuty":"minut");case"h":return b?"godzina":"godzinę";case"hh":return d+(vd(a)?"godziny":"godzin");case"MM":return d+(vd(a)?"miesiące":"miesięcy");case"yy":return d+(vd(a)?"lata":"lat")}} +//! moment.js locale configuration +//! locale : romanian (ro) +//! author : Vlad Gurdiga : https://github.com/gurdiga +//! author : Valentin Agachi : https://github.com/avaly +function xd(a,b,c){var d={mm:"minute",hh:"ore",dd:"zile",MM:"luni",yy:"ani"},e=" ";return(a%100>=20||a>=100&&a%100===0)&&(e=" de "),a+e+d[c]} +//! moment.js locale configuration +//! locale : russian (ru) +//! author : Viktorminator : https://github.com/Viktorminator +//! Author : Menelion Elensúle : https://github.com/Oire +function yd(a,b){var c=a.split("_");return b%10===1&&b%100!==11?c[0]:b%10>=2&&4>=b%10&&(10>b%100||b%100>=20)?c[1]:c[2]}function zd(a,b,c){var d={mm:b?"минута_минуты_минут":"минуту_минуты_минут",hh:"час_часа_часов",dd:"день_дня_дней",MM:"месяц_месяца_месяцев",yy:"год_года_лет"};return"m"===c?b?"минута":"минуту":a+" "+yd(d[c],+a)}function Ad(a,b){var c={nominative:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),accusative:"января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря".split("_")},d=/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/.test(b)?"accusative":"nominative";return c[d][a.month()]}function Bd(a,b){var c={nominative:"янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек".split("_"),accusative:"янв_фев_мар_апр_мая_июня_июля_авг_сен_окт_ноя_дек".split("_")},d=/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/.test(b)?"accusative":"nominative";return c[d][a.month()]}function Cd(a,b){var c={nominative:"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"),accusative:"воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу".split("_")},d=/\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\] ?dddd/.test(b)?"accusative":"nominative";return c[d][a.day()]}function Dd(a){return a>1&&5>a}function Ed(a,b,c,d){var e=a+" ";switch(c){case"s":return b||d?"pár sekúnd":"pár sekundami";case"m":return b?"minúta":d?"minútu":"minútou";case"mm":return b||d?e+(Dd(a)?"minúty":"minút"):e+"minútami";break;case"h":return b?"hodina":d?"hodinu":"hodinou";case"hh":return b||d?e+(Dd(a)?"hodiny":"hodín"):e+"hodinami";break;case"d":return b||d?"deň":"dňom";case"dd":return b||d?e+(Dd(a)?"dni":"dní"):e+"dňami";break;case"M":return b||d?"mesiac":"mesiacom";case"MM":return b||d?e+(Dd(a)?"mesiace":"mesiacov"):e+"mesiacmi";break;case"y":return b||d?"rok":"rokom";case"yy":return b||d?e+(Dd(a)?"roky":"rokov"):e+"rokmi"}} +//! moment.js locale configuration +//! locale : slovenian (sl) +//! author : Robert Sedovšek : https://github.com/sedovsek +function Fd(a,b,c,d){var e=a+" ";switch(c){case"s":return b||d?"nekaj sekund":"nekaj sekundami";case"m":return b?"ena minuta":"eno minuto";case"mm":return e+=1===a?b?"minuta":"minuto":2===a?b||d?"minuti":"minutama":5>a?b||d?"minute":"minutami":b||d?"minut":"minutami";case"h":return b?"ena ura":"eno uro";case"hh":return e+=1===a?b?"ura":"uro":2===a?b||d?"uri":"urama":5>a?b||d?"ure":"urami":b||d?"ur":"urami";case"d":return b||d?"en dan":"enim dnem";case"dd":return e+=1===a?b||d?"dan":"dnem":2===a?b||d?"dni":"dnevoma":b||d?"dni":"dnevi";case"M":return b||d?"en mesec":"enim mesecem";case"MM":return e+=1===a?b||d?"mesec":"mesecem":2===a?b||d?"meseca":"mesecema":5>a?b||d?"mesece":"meseci":b||d?"mesecev":"meseci";case"y":return b||d?"eno leto":"enim letom";case"yy":return e+=1===a?b||d?"leto":"letom":2===a?b||d?"leti":"letoma":5>a?b||d?"leta":"leti":b||d?"let":"leti"}}function Gd(a,b,c,d){var e={s:["viensas secunds","'iensas secunds"],m:["'n míut","'iens míut"],mm:[a+" míuts"," "+a+" míuts"],h:["'n þora","'iensa þora"],hh:[a+" þoras"," "+a+" þoras"],d:["'n ziua","'iensa ziua"],dd:[a+" ziuas"," "+a+" ziuas"],M:["'n mes","'iens mes"],MM:[a+" mesen"," "+a+" mesen"],y:["'n ar","'iens ar"],yy:[a+" ars"," "+a+" ars"]};return d?e[c][0]:b?e[c][0]:e[c][1].trim()} +//! moment.js locale configuration +//! locale : ukrainian (uk) +//! author : zemlanin : https://github.com/zemlanin +//! Author : Menelion Elensúle : https://github.com/Oire +function Hd(a,b){var c=a.split("_");return b%10===1&&b%100!==11?c[0]:b%10>=2&&4>=b%10&&(10>b%100||b%100>=20)?c[1]:c[2]}function Id(a,b,c){var d={mm:"хвилина_хвилини_хвилин",hh:"година_години_годин",dd:"день_дні_днів",MM:"місяць_місяці_місяців",yy:"рік_роки_років"};return"m"===c?b?"хвилина":"хвилину":"h"===c?b?"година":"годину":a+" "+Hd(d[c],+a)}function Jd(a,b){var c={nominative:"січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень".split("_"),accusative:"січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня".split("_")},d=/D[oD]? *MMMM?/.test(b)?"accusative":"nominative";return c[d][a.month()]}function Kd(a,b){var c={nominative:"неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота".split("_"),accusative:"неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу".split("_"),genitive:"неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи".split("_")},d=/(\[[ВвУу]\]) ?dddd/.test(b)?"accusative":/\[?(?:минулої|наступної)? ?\] ?dddd/.test(b)?"genitive":"nominative";return c[d][a.day()]}function Ld(a){return function(){return a+"о"+(11===this.hours()?"б":"")+"] LT"}}var Md,Nd,Od=a.momentProperties=[],Pd=!1,Qd={},Rd={},Sd=/(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,Td=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,Ud={},Vd={},Wd=/\d/,Xd=/\d\d/,Yd=/\d{3}/,Zd=/\d{4}/,$d=/[+-]?\d{6}/,_d=/\d\d?/,ae=/\d{1,3}/,be=/\d{1,4}/,ce=/[+-]?\d{1,6}/,de=/\d+/,ee=/[+-]?\d+/,fe=/Z|[+-]\d\d:?\d\d/gi,ge=/[+-]?\d+(\.\d{1,3})?/,he=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,ie={},je={},ke=0,le=1,me=2,ne=3,oe=4,pe=5,qe=6;H("M",["MM",2],"Mo",function(){return this.month()+1}),H("MMM",0,0,function(a){return this.localeData().monthsShort(this,a)}),H("MMMM",0,0,function(a){return this.localeData().months(this,a)}),z("month","M"),N("M",_d),N("MM",_d,Xd),N("MMM",he),N("MMMM",he),Q(["M","MM"],function(a,b){b[le]=q(a)-1}),Q(["MMM","MMMM"],function(a,b,c,d){var e=c._locale.monthsParse(a,d,c._strict);null!=e?b[le]=e:j(c).invalidMonth=a});var re="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),se="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),te={};a.suppressDeprecationWarnings=!1;var ue=/^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,ve=[["YYYYYY-MM-DD",/[+-]\d{6}-\d{2}-\d{2}/],["YYYY-MM-DD",/\d{4}-\d{2}-\d{2}/],["GGGG-[W]WW-E",/\d{4}-W\d{2}-\d/],["GGGG-[W]WW",/\d{4}-W\d{2}/],["YYYY-DDD",/\d{4}-\d{3}/]],we=[["HH:mm:ss.SSSS",/(T| )\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss",/(T| )\d\d:\d\d:\d\d/],["HH:mm",/(T| )\d\d:\d\d/],["HH",/(T| )\d\d/]],xe=/^\/?Date\((\-?\d+)/i;a.createFromInputFallback=aa("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.",function(a){a._d=new Date(a._i+(a._useUTC?" UTC":""))}),H(0,["YY",2],0,function(){return this.year()%100}),H(0,["YYYY",4],0,"year"),H(0,["YYYYY",5],0,"year"),H(0,["YYYYYY",6,!0],0,"year"),z("year","y"),N("Y",ee),N("YY",_d,Xd),N("YYYY",be,Zd),N("YYYYY",ce,$d),N("YYYYYY",ce,$d),Q(["YYYYY","YYYYYY"],ke),Q("YYYY",function(b,c){c[ke]=2===b.length?a.parseTwoDigitYear(b):q(b)}),Q("YY",function(b,c){c[ke]=a.parseTwoDigitYear(b)}),a.parseTwoDigitYear=function(a){return q(a)+(q(a)>68?1900:2e3)};var ye=C("FullYear",!1);H("w",["ww",2],"wo","week"),H("W",["WW",2],"Wo","isoWeek"),z("week","w"),z("isoWeek","W"),N("w",_d),N("ww",_d,Xd),N("W",_d),N("WW",_d,Xd),R(["w","ww","W","WW"],function(a,b,c,d){b[d.substr(0,1)]=q(a)});var ze={dow:0,doy:6};H("DDD",["DDDD",3],"DDDo","dayOfYear"),z("dayOfYear","DDD"),N("DDD",ae),N("DDDD",Yd),Q(["DDD","DDDD"],function(a,b,c){c._dayOfYear=q(a)}),a.ISO_8601=function(){};var Ae=aa("moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548",function(){var a=Da.apply(null,arguments);return this>a?this:a}),Be=aa("moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(){var a=Da.apply(null,arguments);return a>this?this:a});Ja("Z",":"),Ja("ZZ",""),N("Z",fe),N("ZZ",fe),Q(["Z","ZZ"],function(a,b,c){c._useUTC=!0,c._tzm=Ka(a)});var Ce=/([\+\-]|\d\d)/gi;a.updateOffset=function(){};var De=/(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/,Ee=/^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/;Ya.fn=Ha.prototype;var Fe=ab(1,"add"),Ge=ab(-1,"subtract");a.defaultFormat="YYYY-MM-DDTHH:mm:ssZ";var He=aa("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(a){return void 0===a?this.localeData():this.locale(a)});H(0,["gg",2],0,function(){return this.weekYear()%100}),H(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Db("gggg","weekYear"),Db("ggggg","weekYear"),Db("GGGG","isoWeekYear"),Db("GGGGG","isoWeekYear"),z("weekYear","gg"),z("isoWeekYear","GG"),N("G",ee),N("g",ee),N("GG",_d,Xd),N("gg",_d,Xd),N("GGGG",be,Zd),N("gggg",be,Zd),N("GGGGG",ce,$d),N("ggggg",ce,$d),R(["gggg","ggggg","GGGG","GGGGG"],function(a,b,c,d){b[d.substr(0,2)]=q(a)}),R(["gg","GG"],function(b,c,d,e){c[e]=a.parseTwoDigitYear(b)}),H("Q",0,0,"quarter"),z("quarter","Q"),N("Q",Wd),Q("Q",function(a,b){b[le]=3*(q(a)-1)}),H("D",["DD",2],"Do","date"),z("date","D"),N("D",_d),N("DD",_d,Xd),N("Do",function(a,b){return a?b._ordinalParse:b._ordinalParseLenient}),Q(["D","DD"],me),Q("Do",function(a,b){b[me]=q(a.match(_d)[0],10)});var Ie=C("Date",!0);H("d",0,"do","day"),H("dd",0,0,function(a){return this.localeData().weekdaysMin(this,a)}),H("ddd",0,0,function(a){return this.localeData().weekdaysShort(this,a)}),H("dddd",0,0,function(a){return this.localeData().weekdays(this,a)}),H("e",0,0,"weekday"),H("E",0,0,"isoWeekday"),z("day","d"),z("weekday","e"),z("isoWeekday","E"),N("d",_d),N("e",_d),N("E",_d),N("dd",he),N("ddd",he),N("dddd",he),R(["dd","ddd","dddd"],function(a,b,c){var d=c._locale.weekdaysParse(a);null!=d?b.d=d:j(c).invalidWeekday=a}),R(["d","e","E"],function(a,b,c,d){b[d]=q(a)});var Je="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Ke="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Le="Su_Mo_Tu_We_Th_Fr_Sa".split("_");H("H",["HH",2],0,"hour"),H("h",["hh",2],0,function(){return this.hours()%12||12}),Sb("a",!0),Sb("A",!1),z("hour","h"),N("a",Tb),N("A",Tb),N("H",_d),N("h",_d),N("HH",_d,Xd),N("hh",_d,Xd),Q(["H","HH"],ne),Q(["a","A"],function(a,b,c){c._isPm=c._locale.isPM(a),c._meridiem=a}),Q(["h","hh"],function(a,b,c){b[ne]=q(a),j(c).bigHour=!0});var Me=/[ap]\.?m?\.?/i,Ne=C("Hours",!0);H("m",["mm",2],0,"minute"),z("minute","m"),N("m",_d),N("mm",_d,Xd),Q(["m","mm"],oe);var Oe=C("Minutes",!1);H("s",["ss",2],0,"second"),z("second","s"),N("s",_d),N("ss",_d,Xd),Q(["s","ss"],pe);var Pe=C("Seconds",!1);H("S",0,0,function(){return~~(this.millisecond()/100)}),H(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),H(0,["SSS",3],0,"millisecond"),H(0,["SSSS",4],0,function(){return 10*this.millisecond()}),H(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),H(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),H(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),H(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),H(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),z("millisecond","ms"),N("S",ae,Wd),N("SS",ae,Xd),N("SSS",ae,Yd);var Qe;for(Qe="SSSS";Qe.length<=9;Qe+="S")N(Qe,de);for(Qe="S";Qe.length<=9;Qe+="S")Q(Qe,Wb);var Re=C("Milliseconds",!1);H("z",0,0,"zoneAbbr"),H("zz",0,0,"zoneName");var Se=n.prototype;Se.add=Fe,Se.calendar=cb,Se.clone=db,Se.diff=ib,Se.endOf=ub,Se.format=mb,Se.from=nb,Se.fromNow=ob,Se.to=pb,Se.toNow=qb,Se.get=F,Se.invalidAt=Cb,Se.isAfter=eb,Se.isBefore=fb,Se.isBetween=gb,Se.isSame=hb,Se.isValid=Ab,Se.lang=He,Se.locale=rb,Se.localeData=sb,Se.max=Be,Se.min=Ae,Se.parsingFlags=Bb,Se.set=F,Se.startOf=tb,Se.subtract=Ge,Se.toArray=yb,Se.toObject=zb,Se.toDate=xb,Se.toISOString=lb,Se.toJSON=lb,Se.toString=kb,Se.unix=wb,Se.valueOf=vb,Se.year=ye,Se.isLeapYear=ia,Se.weekYear=Fb,Se.isoWeekYear=Gb,Se.quarter=Se.quarters=Jb,Se.month=Y,Se.daysInMonth=Z,Se.week=Se.weeks=na,Se.isoWeek=Se.isoWeeks=oa,Se.weeksInYear=Ib,Se.isoWeeksInYear=Hb,Se.date=Ie,Se.day=Se.days=Pb,Se.weekday=Qb,Se.isoWeekday=Rb,Se.dayOfYear=qa,Se.hour=Se.hours=Ne,Se.minute=Se.minutes=Oe,Se.second=Se.seconds=Pe,Se.millisecond=Se.milliseconds=Re,Se.utcOffset=Na,Se.utc=Pa,Se.local=Qa,Se.parseZone=Ra,Se.hasAlignedHourOffset=Sa,Se.isDST=Ta,Se.isDSTShifted=Ua,Se.isLocal=Va,Se.isUtcOffset=Wa,Se.isUtc=Xa,Se.isUTC=Xa,Se.zoneAbbr=Xb,Se.zoneName=Yb,Se.dates=aa("dates accessor is deprecated. Use date instead.",Ie),Se.months=aa("months accessor is deprecated. Use month instead",Y),Se.years=aa("years accessor is deprecated. Use year instead",ye),Se.zone=aa("moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779",Oa);var Te=Se,Ue={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},Ve={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},We="Invalid date",Xe="%d",Ye=/\d{1,2}/,Ze={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},$e=s.prototype;$e._calendar=Ue,$e.calendar=_b,$e._longDateFormat=Ve,$e.longDateFormat=ac,$e._invalidDate=We,$e.invalidDate=bc,$e._ordinal=Xe,$e.ordinal=cc,$e._ordinalParse=Ye,$e.preparse=dc,$e.postformat=dc,$e._relativeTime=Ze,$e.relativeTime=ec,$e.pastFuture=fc,$e.set=gc,$e.months=U,$e._months=re,$e.monthsShort=V,$e._monthsShort=se,$e.monthsParse=W,$e.week=ka,$e._week=ze,$e.firstDayOfYear=ma,$e.firstDayOfWeek=la,$e.weekdays=Lb,$e._weekdays=Je,$e.weekdaysMin=Nb,$e._weekdaysMin=Le,$e.weekdaysShort=Mb,$e._weekdaysShort=Ke,$e.weekdaysParse=Ob,$e.isPM=Ub,$e._meridiemParse=Me,$e.meridiem=Vb,w("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(a){var b=a%10,c=1===q(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c}}),a.lang=aa("moment.lang is deprecated. Use moment.locale instead.",w),a.langData=aa("moment.langData is deprecated. Use moment.localeData instead.",y);var _e=Math.abs,af=yc("ms"),bf=yc("s"),cf=yc("m"),df=yc("h"),ef=yc("d"),ff=yc("w"),gf=yc("M"),hf=yc("y"),jf=Ac("milliseconds"),kf=Ac("seconds"),lf=Ac("minutes"),mf=Ac("hours"),nf=Ac("days"),of=Ac("months"),pf=Ac("years"),qf=Math.round,rf={s:45,m:45,h:22,d:26,M:11},sf=Math.abs,tf=Ha.prototype;tf.abs=oc,tf.add=qc,tf.subtract=rc,tf.as=wc,tf.asMilliseconds=af,tf.asSeconds=bf,tf.asMinutes=cf,tf.asHours=df,tf.asDays=ef,tf.asWeeks=ff,tf.asMonths=gf,tf.asYears=hf,tf.valueOf=xc,tf._bubble=tc,tf.get=zc,tf.milliseconds=jf,tf.seconds=kf,tf.minutes=lf,tf.hours=mf,tf.days=nf,tf.weeks=Bc,tf.months=of,tf.years=pf,tf.humanize=Fc,tf.toISOString=Gc,tf.toString=Gc,tf.toJSON=Gc,tf.locale=rb,tf.localeData=sb,tf.toIsoString=aa("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Gc),tf.lang=He,H("X",0,0,"unix"),H("x",0,0,"valueOf"),N("x",ee),N("X",ge),Q("X",function(a,b,c){c._d=new Date(1e3*parseFloat(a,10))}),Q("x",function(a,b,c){c._d=new Date(q(a))}), +//! moment.js +//! version : 2.10.6 +//! authors : Tim Wood, Iskren Chernev, Moment.js contributors +//! license : MIT +//! momentjs.com +a.version="2.10.6",b(Da),a.fn=Te,a.min=Fa,a.max=Ga,a.utc=h,a.unix=Zb,a.months=jc,a.isDate=d,a.locale=w,a.invalid=l,a.duration=Ya,a.isMoment=o,a.weekdays=lc,a.parseZone=$b,a.localeData=y,a.isDuration=Ia,a.monthsShort=kc,a.weekdaysMin=nc,a.defineLocale=x,a.weekdaysShort=mc,a.normalizeUnits=A,a.relativeTimeThreshold=Ec;var uf=a,vf=(uf.defineLocale("af",{months:"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),weekdays:"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),weekdaysShort:"Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),weekdaysMin:"So_Ma_Di_Wo_Do_Vr_Sa".split("_"),meridiemParse:/vm|nm/i,isPM:function(a){return/^nm$/i.test(a)},meridiem:function(a,b,c){return 12>a?c?"vm":"VM":c?"nm":"NM"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Vandag om] LT",nextDay:"[Môre om] LT",nextWeek:"dddd [om] LT",lastDay:"[Gister om] LT",lastWeek:"[Laas] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oor %s",past:"%s gelede",s:"'n paar sekondes",m:"'n minuut",mm:"%d minute",h:"'n uur",hh:"%d ure",d:"'n dag",dd:"%d dae",M:"'n maand",MM:"%d maande",y:"'n jaar",yy:"%d jaar"},ordinalParse:/\d{1,2}(ste|de)/,ordinal:function(a){return a+(1===a||8===a||a>=20?"ste":"de")},week:{dow:1,doy:4}}),uf.defineLocale("ar-ma",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:6,doy:12}}),{1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"}),wf={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},xf=(uf.defineLocale("ar-sa",{months:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(a){return"م"===a},meridiem:function(a,b,c){return 12>a?"ص":"م"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},preparse:function(a){return a.replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(a){return wf[a]}).replace(/،/g,",")},postformat:function(a){return a.replace(/\d/g,function(a){return vf[a]}).replace(/,/g,"،")},week:{dow:6,doy:12}}),uf.defineLocale("ar-tn",{months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:1,doy:4}}),{1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"}),yf={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},zf=function(a){return 0===a?0:1===a?1:2===a?2:a%100>=3&&10>=a%100?3:a%100>=11?4:5},Af={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},Bf=function(a){return function(b,c,d,e){var f=zf(b),g=Af[a][zf(b)];return 2===f&&(g=g[c?0:1]),g.replace(/%d/i,b)}},Cf=["كانون الثاني يناير","شباط فبراير","آذار مارس","نيسان أبريل","أيار مايو","حزيران يونيو","تموز يوليو","آب أغسطس","أيلول سبتمبر","تشرين الأول أكتوبر","تشرين الثاني نوفمبر","كانون الأول ديسمبر"],Df=(uf.defineLocale("ar",{months:Cf,monthsShort:Cf,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(a){return"م"===a},meridiem:function(a,b,c){return 12>a?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:Bf("s"),m:Bf("m"),mm:Bf("m"),h:Bf("h"),hh:Bf("h"),d:Bf("d"),dd:Bf("d"),M:Bf("M"),MM:Bf("M"),y:Bf("y"),yy:Bf("y")},preparse:function(a){return a.replace(/\u200f/g,"").replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(a){return yf[a]}).replace(/،/g,",")},postformat:function(a){return a.replace(/\d/g,function(a){return xf[a]}).replace(/,/g,"،")},week:{dow:6,doy:12}}),{1:"-inci",5:"-inci",8:"-inci",70:"-inci",80:"-inci",2:"-nci",7:"-nci",20:"-nci",50:"-nci",3:"-üncü",4:"-üncü",100:"-üncü",6:"-ncı",9:"-uncu",10:"-uncu",30:"-uncu",60:"-ıncı",90:"-ıncı"}),Ef=(uf.defineLocale("az",{months:"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),monthsShort:"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),weekdays:"Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə".split("_"),weekdaysShort:"Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən".split("_"),weekdaysMin:"Bz_BE_ÇA_Çə_CA_Cü_Şə".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[sabah saat] LT",nextWeek:"[gələn həftə] dddd [saat] LT",lastDay:"[dünən] LT",lastWeek:"[keçən həftə] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s əvvəl",s:"birneçə saniyyə",m:"bir dəqiqə",mm:"%d dəqiqə",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},meridiemParse:/gecə|səhər|gündüz|axşam/,isPM:function(a){return/^(gündüz|axşam)$/.test(a)},meridiem:function(a,b,c){return 4>a?"gecə":12>a?"səhər":17>a?"gündüz":"axşam"},ordinalParse:/\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,ordinal:function(a){if(0===a)return a+"-ıncı";var b=a%10,c=a%100-b,d=a>=100?100:null;return a+(Df[b]||Df[c]||Df[d])},week:{dow:1,doy:7}}),uf.defineLocale("be",{months:Jc,monthsShort:"студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж".split("_"),weekdays:Kc,weekdaysShort:"нд_пн_ат_ср_чц_пт_сб".split("_"),weekdaysMin:"нд_пн_ат_ср_чц_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., HH:mm",LLLL:"dddd, D MMMM YYYY г., HH:mm"},calendar:{sameDay:"[Сёння ў] LT",nextDay:"[Заўтра ў] LT",lastDay:"[Учора ў] LT",nextWeek:function(){return"[У] dddd [ў] LT"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return"[У мінулую] dddd [ў] LT";case 1:case 2:case 4:return"[У мінулы] dddd [ў] LT"}},sameElse:"L"},relativeTime:{future:"праз %s",past:"%s таму",s:"некалькі секунд",m:Ic,mm:Ic,h:Ic,hh:Ic,d:"дзень",dd:Ic,M:"месяц",MM:Ic,y:"год",yy:Ic},meridiemParse:/ночы|раніцы|дня|вечара/,isPM:function(a){return/^(дня|вечара)$/.test(a)},meridiem:function(a,b,c){return 4>a?"ночы":12>a?"раніцы":17>a?"дня":"вечара"},ordinalParse:/\d{1,2}-(і|ы|га)/,ordinal:function(a,b){switch(b){case"M":case"d":case"DDD":case"w":case"W":return a%10!==2&&a%10!==3||a%100===12||a%100===13?a+"-ы":a+"-і";case"D":return a+"-га";default:return a}},week:{dow:1,doy:7}}),uf.defineLocale("bg",{months:"януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември".split("_"),monthsShort:"янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек".split("_"),weekdays:"неделя_понеделник_вторник_сряда_четвъртък_петък_събота".split("_"),weekdaysShort:"нед_пон_вто_сря_чет_пет_съб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Днес в] LT",nextDay:"[Утре в] LT",nextWeek:"dddd [в] LT",lastDay:"[Вчера в] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[В изминалата] dddd [в] LT";case 1:case 2:case 4:case 5:return"[В изминалия] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"след %s",past:"преди %s",s:"няколко секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дни",M:"месец",MM:"%d месеца",y:"година",yy:"%d години"},ordinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(a){var b=a%10,c=a%100;return 0===a?a+"-ев":0===c?a+"-ен":c>10&&20>c?a+"-ти":1===b?a+"-ви":2===b?a+"-ри":7===b||8===b?a+"-ми":a+"-ти"},week:{dow:1,doy:7}}),{1:"১",2:"২",3:"৩",4:"৪",5:"৫",6:"৬",7:"৭",8:"৮",9:"৯",0:"০"}),Ff={"১":"1","২":"2","৩":"3","৪":"4","৫":"5","৬":"6","৭":"7","৮":"8","৯":"9","০":"0"},Gf=(uf.defineLocale("bn",{months:"জানুয়ারী_ফেবুয়ারী_মার্চ_এপ্রিল_মে_জুন_জুলাই_অগাস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর".split("_"),monthsShort:"জানু_ফেব_মার্চ_এপর_মে_জুন_জুল_অগ_সেপ্ট_অক্টো_নভ_ডিসেম্".split("_"),weekdays:"রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পত্তিবার_শুক্রুবার_শনিবার".split("_"),weekdaysShort:"রবি_সোম_মঙ্গল_বুধ_বৃহস্পত্তি_শুক্রু_শনি".split("_"),weekdaysMin:"রব_সম_মঙ্গ_বু_ব্রিহ_শু_শনি".split("_"),longDateFormat:{LT:"A h:mm সময়",LTS:"A h:mm:ss সময়",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm সময়",LLLL:"dddd, D MMMM YYYY, A h:mm সময়"},calendar:{sameDay:"[আজ] LT",nextDay:"[আগামীকাল] LT",nextWeek:"dddd, LT",lastDay:"[গতকাল] LT",lastWeek:"[গত] dddd, LT",sameElse:"L"},relativeTime:{future:"%s পরে",past:"%s আগে",s:"কএক সেকেন্ড",m:"এক মিনিট",mm:"%d মিনিট",h:"এক ঘন্টা",hh:"%d ঘন্টা",d:"এক দিন",dd:"%d দিন",M:"এক মাস",MM:"%d মাস",y:"এক বছর",yy:"%d বছর"},preparse:function(a){return a.replace(/[১২৩৪৫৬৭৮৯০]/g,function(a){return Ff[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return Ef[a]})},meridiemParse:/রাত|সকাল|দুপুর|বিকেল|রাত/,isPM:function(a){return/^(দুপুর|বিকেল|রাত)$/.test(a)},meridiem:function(a,b,c){return 4>a?"রাত":10>a?"সকাল":17>a?"দুপুর":20>a?"বিকেল":"রাত"},week:{dow:0,doy:6}}),{1:"༡",2:"༢",3:"༣",4:"༤",5:"༥",6:"༦",7:"༧",8:"༨",9:"༩",0:"༠"}),Hf={"༡":"1","༢":"2","༣":"3","༤":"4","༥":"5","༦":"6","༧":"7","༨":"8","༩":"9","༠":"0"},If=(uf.defineLocale("bo",{months:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),monthsShort:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),weekdays:"གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་".split("_"),weekdaysShort:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),weekdaysMin:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[དི་རིང] LT",nextDay:"[སང་ཉིན] LT",nextWeek:"[བདུན་ཕྲག་རྗེས་མ], LT",lastDay:"[ཁ་སང] LT",lastWeek:"[བདུན་ཕྲག་མཐའ་མ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ལ་",past:"%s སྔན་ལ",s:"ལམ་སང",m:"སྐར་མ་གཅིག",mm:"%d སྐར་མ",h:"ཆུ་ཚོད་གཅིག",hh:"%d ཆུ་ཚོད",d:"ཉིན་གཅིག",dd:"%d ཉིན་",M:"ཟླ་བ་གཅིག",MM:"%d ཟླ་བ",y:"ལོ་གཅིག",yy:"%d ལོ"},preparse:function(a){return a.replace(/[༡༢༣༤༥༦༧༨༩༠]/g,function(a){return Hf[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return Gf[a]})},meridiemParse:/མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,isPM:function(a){return/^(ཉིན་གུང|དགོང་དག|མཚན་མོ)$/.test(a)},meridiem:function(a,b,c){return 4>a?"མཚན་མོ":10>a?"ཞོགས་ཀས":17>a?"ཉིན་གུང":20>a?"དགོང་དག":"མཚན་མོ"},week:{dow:0,doy:6}}),uf.defineLocale("br",{months:"Genver_C'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),monthsShort:"Gen_C'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),weekdays:"Sul_Lun_Meurzh_Merc'her_Yaou_Gwener_Sadorn".split("_"),weekdaysShort:"Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),weekdaysMin:"Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),longDateFormat:{LT:"h[e]mm A",LTS:"h[e]mm:ss A",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY h[e]mm A",LLLL:"dddd, D [a viz] MMMM YYYY h[e]mm A"},calendar:{sameDay:"[Hiziv da] LT",nextDay:"[Warc'hoazh da] LT",nextWeek:"dddd [da] LT",lastDay:"[Dec'h da] LT",lastWeek:"dddd [paset da] LT",sameElse:"L"},relativeTime:{future:"a-benn %s",past:"%s 'zo",s:"un nebeud segondennoù",m:"ur vunutenn",mm:Lc,h:"un eur",hh:"%d eur",d:"un devezh",dd:Lc,M:"ur miz",MM:Lc,y:"ur bloaz",yy:Mc},ordinalParse:/\d{1,2}(añ|vet)/,ordinal:function(a){var b=1===a?"añ":"vet";return a+b},week:{dow:1,doy:4}}),uf.defineLocale("bs",{months:"januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.".split("_"),weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",m:Qc,mm:Qc,h:Qc,hh:Qc,d:"dan",dd:Qc,M:"mjesec",MM:Qc,y:"godinu",yy:Qc},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),uf.defineLocale("ca",{months:"gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),monthsShort:"gen._febr._mar._abr._mai._jun._jul._ag._set._oct._nov._des.".split("_"),weekdays:"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dt._dc._dj._dv._ds.".split("_"),weekdaysMin:"Dg_Dl_Dt_Dc_Dj_Dv_Ds".split("_"),longDateFormat:{LT:"H:mm",LTS:"LT:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd D MMMM YYYY H:mm"},calendar:{sameDay:function(){return"[avui a "+(1!==this.hours()?"les":"la")+"] LT"},nextDay:function(){return"[demà a "+(1!==this.hours()?"les":"la")+"] LT"},nextWeek:function(){return"dddd [a "+(1!==this.hours()?"les":"la")+"] LT"},lastDay:function(){return"[ahir a "+(1!==this.hours()?"les":"la")+"] LT"},lastWeek:function(){return"[el] dddd [passat a "+(1!==this.hours()?"les":"la")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"fa %s",s:"uns segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},ordinalParse:/\d{1,2}(r|n|t|è|a)/,ordinal:function(a,b){var c=1===a?"r":2===a?"n":3===a?"r":4===a?"t":"è";return("w"===b||"W"===b)&&(c="a"),a+c},week:{dow:1,doy:4}}),"leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec".split("_")),Jf="led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro".split("_"),Kf=(uf.defineLocale("cs",{months:If,monthsShort:Jf,monthsParse:function(a,b){var c,d=[];for(c=0;12>c;c++)d[c]=new RegExp("^"+a[c]+"$|^"+b[c]+"$","i");return d}(If,Jf),weekdays:"neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota".split("_"),weekdaysShort:"ne_po_út_st_čt_pá_so".split("_"),weekdaysMin:"ne_po_út_st_čt_pá_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm"},calendar:{sameDay:"[dnes v] LT",nextDay:"[zítra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v neděli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve středu v] LT";case 4:return"[ve čtvrtek v] LT";case 5:return"[v pátek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[včera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou neděli v] LT";case 1:case 2:return"[minulé] dddd [v] LT";case 3:return"[minulou středu v] LT";case 4:case 5:return"[minulý] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"před %s",s:Sc,m:Sc,mm:Sc,h:Sc,hh:Sc,d:Sc,dd:Sc,M:Sc,MM:Sc,y:Sc,yy:Sc},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),uf.defineLocale("cv",{months:"кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав".split("_"),monthsShort:"кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш".split("_"),weekdays:"вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун".split("_"),weekdaysShort:"выр_тун_ытл_юн_кӗҫ_эрн_шӑм".split("_"),weekdaysMin:"вр_тн_ыт_юн_кҫ_эр_шм".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]",LLL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm",LLLL:"dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm"},calendar:{sameDay:"[Паян] LT [сехетре]",nextDay:"[Ыран] LT [сехетре]",lastDay:"[Ӗнер] LT [сехетре]",nextWeek:"[Ҫитес] dddd LT [сехетре]",lastWeek:"[Иртнӗ] dddd LT [сехетре]",sameElse:"L"},relativeTime:{future:function(a){var b=/сехет$/i.exec(a)?"рен":/ҫул$/i.exec(a)?"тан":"ран";return a+b},past:"%s каялла",s:"пӗр-ик ҫеккунт",m:"пӗр минут",mm:"%d минут",h:"пӗр сехет",hh:"%d сехет",d:"пӗр кун",dd:"%d кун",M:"пӗр уйӑх",MM:"%d уйӑх",y:"пӗр ҫул",yy:"%d ҫул"},ordinalParse:/\d{1,2}-мӗш/,ordinal:"%d-мӗш",week:{dow:1,doy:7}}),uf.defineLocale("cy",{months:"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),monthsShort:"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),weekdays:"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),weekdaysShort:"Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"),weekdaysMin:"Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Heddiw am] LT",nextDay:"[Yfory am] LT",nextWeek:"dddd [am] LT",lastDay:"[Ddoe am] LT",lastWeek:"dddd [diwethaf am] LT",sameElse:"L"},relativeTime:{future:"mewn %s",past:"%s yn ôl",s:"ychydig eiliadau",m:"munud",mm:"%d munud",h:"awr",hh:"%d awr",d:"diwrnod",dd:"%d diwrnod",M:"mis",MM:"%d mis",y:"blwyddyn",yy:"%d flynedd"},ordinalParse:/\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,ordinal:function(a){var b=a,c="",d=["","af","il","ydd","ydd","ed","ed","ed","fed","fed","fed","eg","fed","eg","eg","fed","eg","eg","fed","eg","fed"];return b>20?c=40===b||50===b||60===b||80===b||100===b?"fed":"ain":b>0&&(c=d[b]),a+c},week:{dow:1,doy:4}}),uf.defineLocale("da",{months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"søn_man_tir_ons_tor_fre_lør".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd [d.] D. MMMM YYYY HH:mm"},calendar:{sameDay:"[I dag kl.] LT",nextDay:"[I morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[I går kl.] LT",lastWeek:"[sidste] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"få sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en måned",MM:"%d måneder",y:"et år",yy:"%d år"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),uf.defineLocale("de-at",{months:"Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jän._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[Heute um] LT [Uhr]",sameElse:"L",nextDay:"[Morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[Gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",m:Tc,mm:"%d Minuten",h:Tc,hh:"%d Stunden",d:Tc,dd:Tc,M:Tc,MM:Tc,y:Tc,yy:Tc},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),uf.defineLocale("de",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[Heute um] LT [Uhr]",sameElse:"L",nextDay:"[Morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[Gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",m:Uc,mm:"%d Minuten",h:Uc,hh:"%d Stunden",d:Uc,dd:Uc,M:Uc,MM:Uc,y:Uc,yy:Uc},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),uf.defineLocale("el",{monthsNominativeEl:"Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος".split("_"),monthsGenitiveEl:"Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου".split("_"),months:function(a,b){return/D/.test(b.substring(0,b.indexOf("MMMM")))?this._monthsGenitiveEl[a.month()]:this._monthsNominativeEl[a.month()]},monthsShort:"Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ".split("_"),weekdays:"Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο".split("_"),weekdaysShort:"Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ".split("_"),weekdaysMin:"Κυ_Δε_Τρ_Τε_Πε_Πα_Σα".split("_"),meridiem:function(a,b,c){return a>11?c?"μμ":"ΜΜ":c?"πμ":"ΠΜ"},isPM:function(a){return"μ"===(a+"").toLowerCase()[0]},meridiemParse:/[ΠΜ]\.?Μ?\.?/i,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendarEl:{sameDay:"[Σήμερα {}] LT",nextDay:"[Αύριο {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[Χθες {}] LT",lastWeek:function(){switch(this.day()){case 6:return"[το προηγούμενο] dddd [{}] LT";default:return"[την προηγούμενη] dddd [{}] LT"}},sameElse:"L"},calendar:function(a,b){var c=this._calendarEl[a],d=b&&b.hours();return"function"==typeof c&&(c=c.apply(b)),c.replace("{}",d%12===1?"στη":"στις")},relativeTime:{future:"σε %s",past:"%s πριν",s:"λίγα δευτερόλεπτα",m:"ένα λεπτό",mm:"%d λεπτά",h:"μία ώρα",hh:"%d ώρες",d:"μία μέρα",dd:"%d μέρες",M:"ένας μήνας",MM:"%d μήνες",y:"ένας χρόνος",yy:"%d χρόνια"},ordinalParse:/\d{1,2}η/,ordinal:"%dη",week:{dow:1,doy:4}}),uf.defineLocale("en-au",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c},week:{dow:1,doy:4}}),uf.defineLocale("en-ca",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"YYYY-MM-DD",LL:"D MMMM, YYYY",LLL:"D MMMM, YYYY h:mm A",LLLL:"dddd, D MMMM, YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c}}),uf.defineLocale("en-gb",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c},week:{dow:1,doy:4}}),uf.defineLocale("eo",{months:"januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aŭg_sep_okt_nov_dec".split("_"),weekdays:"Dimanĉo_Lundo_Mardo_Merkredo_Ĵaŭdo_Vendredo_Sabato".split("_"),weekdaysShort:"Dim_Lun_Mard_Merk_Ĵaŭ_Ven_Sab".split("_"),weekdaysMin:"Di_Lu_Ma_Me_Ĵa_Ve_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D[-an de] MMMM, YYYY",LLL:"D[-an de] MMMM, YYYY HH:mm",LLLL:"dddd, [la] D[-an de] MMMM, YYYY HH:mm"},meridiemParse:/[ap]\.t\.m/i,isPM:function(a){return"p"===a.charAt(0).toLowerCase()},meridiem:function(a,b,c){return a>11?c?"p.t.m.":"P.T.M.":c?"a.t.m.":"A.T.M."},calendar:{sameDay:"[Hodiaŭ je] LT",nextDay:"[Morgaŭ je] LT",nextWeek:"dddd [je] LT",lastDay:"[Hieraŭ je] LT",lastWeek:"[pasinta] dddd [je] LT",sameElse:"L"},relativeTime:{future:"je %s",past:"antaŭ %s",s:"sekundoj",m:"minuto",mm:"%d minutoj",h:"horo",hh:"%d horoj",d:"tago",dd:"%d tagoj",M:"monato",MM:"%d monatoj",y:"jaro",yy:"%d jaroj"},ordinalParse:/\d{1,2}a/,ordinal:"%da",week:{dow:1,doy:7}}),"Ene._Feb._Mar._Abr._May._Jun._Jul._Ago._Sep._Oct._Nov._Dic.".split("_")),Lf="Ene_Feb_Mar_Abr_May_Jun_Jul_Ago_Sep_Oct_Nov_Dic".split("_"),Mf=(uf.defineLocale("es",{months:"Enero_Febrero_Marzo_Abril_Mayo_Junio_Julio_Agosto_Septiembre_Octubre_Noviembre_Diciembre".split("_"),monthsShort:function(a,b){return/-MMM-/.test(b)?Lf[a.month()]:Kf[a.month()]},weekdays:"Domingo_Lunes_Martes_Miércoles_Jueves_Viernes_Sábado".split("_"),weekdaysShort:"Dom._Lun._Mar._Mié._Jue._Vie._Sáb.".split("_"),weekdaysMin:"Do_Lu_Ma_Mi_Ju_Vi_Sá".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},ordinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}}),uf.defineLocale("et",{months:"jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),monthsShort:"jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),weekdays:"pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev".split("_"),weekdaysShort:"P_E_T_K_N_R_L".split("_"),weekdaysMin:"P_E_T_K_N_R_L".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[Täna,] LT",nextDay:"[Homme,] LT",nextWeek:"[Järgmine] dddd LT",lastDay:"[Eile,] LT",lastWeek:"[Eelmine] dddd LT",sameElse:"L"},relativeTime:{future:"%s pärast",past:"%s tagasi",s:Vc,m:Vc,mm:Vc,h:Vc,hh:Vc,d:Vc,dd:"%d päeva",M:Vc,MM:Vc,y:Vc,yy:Vc},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),uf.defineLocale("eu",{months:"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),monthsShort:"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),weekdays:"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),weekdaysShort:"ig._al._ar._az._og._ol._lr.".split("_"),weekdaysMin:"ig_al_ar_az_og_ol_lr".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] HH:mm",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] HH:mm",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] HH:mm",llll:"ddd, YYYY[ko] MMM D[a] HH:mm"},calendar:{sameDay:"[gaur] LT[etan]",nextDay:"[bihar] LT[etan]",nextWeek:"dddd LT[etan]", +lastDay:"[atzo] LT[etan]",lastWeek:"[aurreko] dddd LT[etan]",sameElse:"L"},relativeTime:{future:"%s barru",past:"duela %s",s:"segundo batzuk",m:"minutu bat",mm:"%d minutu",h:"ordu bat",hh:"%d ordu",d:"egun bat",dd:"%d egun",M:"hilabete bat",MM:"%d hilabete",y:"urte bat",yy:"%d urte"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),{1:"۱",2:"۲",3:"۳",4:"۴",5:"۵",6:"۶",7:"۷",8:"۸",9:"۹",0:"۰"}),Nf={"۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","۰":"0"},Of=(uf.defineLocale("fa",{months:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),monthsShort:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),weekdays:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysShort:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysMin:"ی_د_س_چ_پ_ج_ش".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/قبل از ظهر|بعد از ظهر/,isPM:function(a){return/بعد از ظهر/.test(a)},meridiem:function(a,b,c){return 12>a?"قبل از ظهر":"بعد از ظهر"},calendar:{sameDay:"[امروز ساعت] LT",nextDay:"[فردا ساعت] LT",nextWeek:"dddd [ساعت] LT",lastDay:"[دیروز ساعت] LT",lastWeek:"dddd [پیش] [ساعت] LT",sameElse:"L"},relativeTime:{future:"در %s",past:"%s پیش",s:"چندین ثانیه",m:"یک دقیقه",mm:"%d دقیقه",h:"یک ساعت",hh:"%d ساعت",d:"یک روز",dd:"%d روز",M:"یک ماه",MM:"%d ماه",y:"یک سال",yy:"%d سال"},preparse:function(a){return a.replace(/[۰-۹]/g,function(a){return Nf[a]}).replace(/،/g,",")},postformat:function(a){return a.replace(/\d/g,function(a){return Mf[a]}).replace(/,/g,"،")},ordinalParse:/\d{1,2}م/,ordinal:"%dم",week:{dow:6,doy:12}}),"nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän".split(" ")),Pf=["nolla","yhden","kahden","kolmen","neljän","viiden","kuuden",Of[7],Of[8],Of[9]],Qf=(uf.defineLocale("fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu".split("_"),weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] HH.mm",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] HH.mm",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] HH.mm",llll:"ddd, Do MMM YYYY, [klo] HH.mm"},calendar:{sameDay:"[tänään] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s päästä",past:"%s sitten",s:Wc,m:Wc,mm:Wc,h:Wc,hh:Wc,d:Wc,dd:Wc,M:Wc,MM:Wc,y:Wc,yy:Wc},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),uf.defineLocale("fo",{months:"januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur".split("_"),weekdaysShort:"sun_mán_týs_mik_hós_frí_ley".split("_"),weekdaysMin:"su_má_tý_mi_hó_fr_le".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D. MMMM, YYYY HH:mm"},calendar:{sameDay:"[Í dag kl.] LT",nextDay:"[Í morgin kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[Í gjár kl.] LT",lastWeek:"[síðstu] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"um %s",past:"%s síðani",s:"fá sekund",m:"ein minutt",mm:"%d minuttir",h:"ein tími",hh:"%d tímar",d:"ein dagur",dd:"%d dagar",M:"ein mánaði",MM:"%d mánaðir",y:"eitt ár",yy:"%d ár"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),uf.defineLocale("fr-ca",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"Di_Lu_Ma_Me_Je_Ve_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd'hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},ordinalParse:/\d{1,2}(er|e)/,ordinal:function(a){return a+(1===a?"er":"e")}}),uf.defineLocale("fr",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"Di_Lu_Ma_Me_Je_Ve_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd'hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},ordinalParse:/\d{1,2}(er|)/,ordinal:function(a){return a+(1===a?"er":"")},week:{dow:1,doy:4}}),"jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.".split("_")),Rf="jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),Sf=(uf.defineLocale("fy",{months:"jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber".split("_"),monthsShort:function(a,b){return/-MMM-/.test(b)?Rf[a.month()]:Qf[a.month()]},weekdays:"snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon".split("_"),weekdaysShort:"si._mo._ti._wo._to._fr._so.".split("_"),weekdaysMin:"Si_Mo_Ti_Wo_To_Fr_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[hjoed om] LT",nextDay:"[moarn om] LT",nextWeek:"dddd [om] LT",lastDay:"[juster om] LT",lastWeek:"[ôfrûne] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oer %s",past:"%s lyn",s:"in pear sekonden",m:"ien minút",mm:"%d minuten",h:"ien oere",hh:"%d oeren",d:"ien dei",dd:"%d dagen",M:"ien moanne",MM:"%d moannen",y:"ien jier",yy:"%d jierren"},ordinalParse:/\d{1,2}(ste|de)/,ordinal:function(a){return a+(1===a||8===a||a>=20?"ste":"de")},week:{dow:1,doy:4}}),uf.defineLocale("gl",{months:"Xaneiro_Febreiro_Marzo_Abril_Maio_Xuño_Xullo_Agosto_Setembro_Outubro_Novembro_Decembro".split("_"),monthsShort:"Xan._Feb._Mar._Abr._Mai._Xuñ._Xul._Ago._Set._Out._Nov._Dec.".split("_"),weekdays:"Domingo_Luns_Martes_Mércores_Xoves_Venres_Sábado".split("_"),weekdaysShort:"Dom._Lun._Mar._Mér._Xov._Ven._Sáb.".split("_"),weekdaysMin:"Do_Lu_Ma_Mé_Xo_Ve_Sá".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd D MMMM YYYY H:mm"},calendar:{sameDay:function(){return"[hoxe "+(1!==this.hours()?"ás":"á")+"] LT"},nextDay:function(){return"[mañá "+(1!==this.hours()?"ás":"á")+"] LT"},nextWeek:function(){return"dddd ["+(1!==this.hours()?"ás":"a")+"] LT"},lastDay:function(){return"[onte "+(1!==this.hours()?"á":"a")+"] LT"},lastWeek:function(){return"[o] dddd [pasado "+(1!==this.hours()?"ás":"a")+"] LT"},sameElse:"L"},relativeTime:{future:function(a){return"uns segundos"===a?"nuns segundos":"en "+a},past:"hai %s",s:"uns segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"},ordinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:7}}),uf.defineLocale("he",{months:"ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר".split("_"),monthsShort:"ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳".split("_"),weekdays:"ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת".split("_"),weekdaysShort:"א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳".split("_"),weekdaysMin:"א_ב_ג_ד_ה_ו_ש".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [ב]MMMM YYYY",LLL:"D [ב]MMMM YYYY HH:mm",LLLL:"dddd, D [ב]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[היום ב־]LT",nextDay:"[מחר ב־]LT",nextWeek:"dddd [בשעה] LT",lastDay:"[אתמול ב־]LT",lastWeek:"[ביום] dddd [האחרון בשעה] LT",sameElse:"L"},relativeTime:{future:"בעוד %s",past:"לפני %s",s:"מספר שניות",m:"דקה",mm:"%d דקות",h:"שעה",hh:function(a){return 2===a?"שעתיים":a+" שעות"},d:"יום",dd:function(a){return 2===a?"יומיים":a+" ימים"},M:"חודש",MM:function(a){return 2===a?"חודשיים":a+" חודשים"},y:"שנה",yy:function(a){return 2===a?"שנתיים":a%10===0&&10!==a?a+" שנה":a+" שנים"}}}),{1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"}),Tf={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"},Uf=(uf.defineLocale("hi",{months:"जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर".split("_"),monthsShort:"जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.".split("_"),weekdays:"रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm बजे",LTS:"A h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm बजे",LLLL:"dddd, D MMMM YYYY, A h:mm बजे"},calendar:{sameDay:"[आज] LT",nextDay:"[कल] LT",nextWeek:"dddd, LT",lastDay:"[कल] LT",lastWeek:"[पिछले] dddd, LT",sameElse:"L"},relativeTime:{future:"%s में",past:"%s पहले",s:"कुछ ही क्षण",m:"एक मिनट",mm:"%d मिनट",h:"एक घंटा",hh:"%d घंटे",d:"एक दिन",dd:"%d दिन",M:"एक महीने",MM:"%d महीने",y:"एक वर्ष",yy:"%d वर्ष"},preparse:function(a){return a.replace(/[१२३४५६७८९०]/g,function(a){return Tf[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return Sf[a]})},meridiemParse:/रात|सुबह|दोपहर|शाम/,meridiemHour:function(a,b){return 12===a&&(a=0),"रात"===b?4>a?a:a+12:"सुबह"===b?a:"दोपहर"===b?a>=10?a:a+12:"शाम"===b?a+12:void 0},meridiem:function(a,b,c){return 4>a?"रात":10>a?"सुबह":17>a?"दोपहर":20>a?"शाम":"रात"},week:{dow:0,doy:6}}),uf.defineLocale("hr",{months:"siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_"),monthsShort:"sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",m:Yc,mm:Yc,h:Yc,hh:Yc,d:"dan",dd:Yc,M:"mjesec",MM:Yc,y:"godinu",yy:Yc},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),"vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton".split(" ")),Vf=(uf.defineLocale("hu",{months:"január_február_március_április_május_június_július_augusztus_szeptember_október_november_december".split("_"),monthsShort:"jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec".split("_"),weekdays:"vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat".split("_"),weekdaysShort:"vas_hét_kedd_sze_csüt_pén_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D. H:mm",LLLL:"YYYY. MMMM D., dddd H:mm"},meridiemParse:/de|du/i,isPM:function(a){return"u"===a.charAt(1).toLowerCase()},meridiem:function(a,b,c){return 12>a?c===!0?"de":"DE":c===!0?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return $c.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return $c.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s múlva",past:"%s",s:Zc,m:Zc,mm:Zc,h:Zc,hh:Zc,d:Zc,dd:Zc,M:Zc,MM:Zc,y:Zc,yy:Zc},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),uf.defineLocale("hy-am",{months:_c,monthsShort:ad,weekdays:bd,weekdaysShort:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),weekdaysMin:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY թ.",LLL:"D MMMM YYYY թ., HH:mm",LLLL:"dddd, D MMMM YYYY թ., HH:mm"},calendar:{sameDay:"[այսօր] LT",nextDay:"[վաղը] LT",lastDay:"[երեկ] LT",nextWeek:function(){return"dddd [օրը ժամը] LT"},lastWeek:function(){return"[անցած] dddd [օրը ժամը] LT"},sameElse:"L"},relativeTime:{future:"%s հետո",past:"%s առաջ",s:"մի քանի վայրկյան",m:"րոպե",mm:"%d րոպե",h:"ժամ",hh:"%d ժամ",d:"օր",dd:"%d օր",M:"ամիս",MM:"%d ամիս",y:"տարի",yy:"%d տարի"},meridiemParse:/գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,isPM:function(a){return/^(ցերեկվա|երեկոյան)$/.test(a)},meridiem:function(a){return 4>a?"գիշերվա":12>a?"առավոտվա":17>a?"ցերեկվա":"երեկոյան"},ordinalParse:/\d{1,2}|\d{1,2}-(ին|րդ)/,ordinal:function(a,b){switch(b){case"DDD":case"w":case"W":case"DDDo":return 1===a?a+"-ին":a+"-րդ";default:return a}},week:{dow:1,doy:7}}),uf.defineLocale("id",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(a,b){return 12===a&&(a=0),"pagi"===b?a:"siang"===b?a>=11?a:a+12:"sore"===b||"malam"===b?a+12:void 0},meridiem:function(a,b,c){return 11>a?"pagi":15>a?"siang":19>a?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}}),uf.defineLocale("is",{months:"janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember".split("_"),monthsShort:"jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des".split("_"),weekdays:"sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur".split("_"),weekdaysShort:"sun_mán_þri_mið_fim_fös_lau".split("_"),weekdaysMin:"Su_Má_Þr_Mi_Fi_Fö_La".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd, D. MMMM YYYY [kl.] H:mm"},calendar:{sameDay:"[í dag kl.] LT",nextDay:"[á morgun kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[í gær kl.] LT",lastWeek:"[síðasta] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"eftir %s",past:"fyrir %s síðan",s:dd,m:dd,mm:dd,h:"klukkustund",hh:dd,d:dd,dd:dd,M:dd,MM:dd,y:dd,yy:dd},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),uf.defineLocale("it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"Domenica_Lunedì_Martedì_Mercoledì_Giovedì_Venerdì_Sabato".split("_"),weekdaysShort:"Dom_Lun_Mar_Mer_Gio_Ven_Sab".split("_"),weekdaysMin:"D_L_Ma_Me_G_V_S".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(a){return(/^[0-9].+$/.test(a)?"tra":"in")+" "+a},past:"%s fa",s:"alcuni secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},ordinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}}),uf.defineLocale("ja",{months:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"),weekdaysShort:"日_月_火_水_木_金_土".split("_"),weekdaysMin:"日_月_火_水_木_金_土".split("_"),longDateFormat:{LT:"Ah時m分",LTS:"Ah時m分s秒",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah時m分",LLLL:"YYYY年M月D日Ah時m分 dddd"},meridiemParse:/午前|午後/i,isPM:function(a){return"午後"===a},meridiem:function(a,b,c){return 12>a?"午前":"午後"},calendar:{sameDay:"[今日] LT",nextDay:"[明日] LT",nextWeek:"[来週]dddd LT",lastDay:"[昨日] LT",lastWeek:"[前週]dddd LT",sameElse:"L"},relativeTime:{future:"%s後",past:"%s前",s:"数秒",m:"1分",mm:"%d分",h:"1時間",hh:"%d時間",d:"1日",dd:"%d日",M:"1ヶ月",MM:"%dヶ月",y:"1年",yy:"%d年"}}),uf.defineLocale("jv",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des".split("_"),weekdays:"Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu".split("_"),weekdaysShort:"Min_Sen_Sel_Reb_Kem_Jem_Sep".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sp".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/enjing|siyang|sonten|ndalu/,meridiemHour:function(a,b){return 12===a&&(a=0),"enjing"===b?a:"siyang"===b?a>=11?a:a+12:"sonten"===b||"ndalu"===b?a+12:void 0},meridiem:function(a,b,c){return 11>a?"enjing":15>a?"siyang":19>a?"sonten":"ndalu"},calendar:{sameDay:"[Dinten puniko pukul] LT",nextDay:"[Mbenjang pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kala wingi pukul] LT",lastWeek:"dddd [kepengker pukul] LT",sameElse:"L"},relativeTime:{future:"wonten ing %s",past:"%s ingkang kepengker",s:"sawetawis detik",m:"setunggal menit",mm:"%d menit",h:"setunggal jam",hh:"%d jam",d:"sedinten",dd:"%d dinten",M:"sewulan",MM:"%d wulan",y:"setaun",yy:"%d taun"},week:{dow:1,doy:7}}),uf.defineLocale("ka",{months:ed,monthsShort:"იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ".split("_"),weekdays:fd,weekdaysShort:"კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ".split("_"),weekdaysMin:"კვ_ორ_სა_ოთ_ხუ_პა_შა".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[დღეს] LT[-ზე]",nextDay:"[ხვალ] LT[-ზე]",lastDay:"[გუშინ] LT[-ზე]",nextWeek:"[შემდეგ] dddd LT[-ზე]",lastWeek:"[წინა] dddd LT-ზე",sameElse:"L"},relativeTime:{future:function(a){return/(წამი|წუთი|საათი|წელი)/.test(a)?a.replace(/ი$/,"ში"):a+"ში"},past:function(a){return/(წამი|წუთი|საათი|დღე|თვე)/.test(a)?a.replace(/(ი|ე)$/,"ის წინ"):/წელი/.test(a)?a.replace(/წელი$/,"წლის წინ"):void 0},s:"რამდენიმე წამი",m:"წუთი",mm:"%d წუთი",h:"საათი",hh:"%d საათი",d:"დღე",dd:"%d დღე",M:"თვე",MM:"%d თვე",y:"წელი",yy:"%d წელი"},ordinalParse:/0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/,ordinal:function(a){return 0===a?a:1===a?a+"-ლი":20>a||100>=a&&a%20===0||a%100===0?"მე-"+a:a+"-ე"},week:{dow:1,doy:7}}),uf.defineLocale("km",{months:"មករា_កុម្ភៈ_មិនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),monthsShort:"មករា_កុម្ភៈ_មិនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),weekdays:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),weekdaysShort:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),weekdaysMin:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[ថ្ងៃនៈ ម៉ោង] LT",nextDay:"[ស្អែក ម៉ោង] LT",nextWeek:"dddd [ម៉ោង] LT",lastDay:"[ម្សិលមិញ ម៉ោង] LT",lastWeek:"dddd [សប្តាហ៍មុន] [ម៉ោង] LT",sameElse:"L"},relativeTime:{future:"%sទៀត",past:"%sមុន",s:"ប៉ុន្មានវិនាទី",m:"មួយនាទី",mm:"%d នាទី",h:"មួយម៉ោង",hh:"%d ម៉ោង",d:"មួយថ្ងៃ",dd:"%d ថ្ងៃ",M:"មួយខែ",MM:"%d ខែ",y:"មួយឆ្នាំ",yy:"%d ឆ្នាំ"},week:{dow:1,doy:4}}),uf.defineLocale("ko",{months:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),monthsShort:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),weekdays:"일요일_월요일_화요일_수요일_목요일_금요일_토요일".split("_"),weekdaysShort:"일_월_화_수_목_금_토".split("_"),weekdaysMin:"일_월_화_수_목_금_토".split("_"),longDateFormat:{LT:"A h시 m분",LTS:"A h시 m분 s초",L:"YYYY.MM.DD",LL:"YYYY년 MMMM D일",LLL:"YYYY년 MMMM D일 A h시 m분",LLLL:"YYYY년 MMMM D일 dddd A h시 m분"},calendar:{sameDay:"오늘 LT",nextDay:"내일 LT",nextWeek:"dddd LT",lastDay:"어제 LT",lastWeek:"지난주 dddd LT",sameElse:"L"},relativeTime:{future:"%s 후",past:"%s 전",s:"몇초",ss:"%d초",m:"일분",mm:"%d분",h:"한시간",hh:"%d시간",d:"하루",dd:"%d일",M:"한달",MM:"%d달",y:"일년",yy:"%d년"},ordinalParse:/\d{1,2}일/,ordinal:"%d일",meridiemParse:/오전|오후/,isPM:function(a){return"오후"===a},meridiem:function(a,b,c){return 12>a?"오전":"오후"}}),uf.defineLocale("lb",{months:"Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),weekdays:"Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),weekdaysShort:"So._Mé._Dë._Më._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mé_Dë_Më_Do_Fr_Sa".split("_"),longDateFormat:{LT:"H:mm [Auer]",LTS:"H:mm:ss [Auer]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm [Auer]",LLLL:"dddd, D. MMMM YYYY H:mm [Auer]"},calendar:{sameDay:"[Haut um] LT",sameElse:"L",nextDay:"[Muer um] LT",nextWeek:"dddd [um] LT",lastDay:"[Gëschter um] LT",lastWeek:function(){switch(this.day()){case 2:case 4:return"[Leschten] dddd [um] LT";default:return"[Leschte] dddd [um] LT"}}},relativeTime:{future:hd,past:id,s:"e puer Sekonnen",m:gd,mm:"%d Minutten",h:gd,hh:"%d Stonnen",d:gd,dd:"%d Deeg",M:gd,MM:"%d Méint",y:gd,yy:"%d Joer"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),{m:"minutė_minutės_minutę",mm:"minutės_minučių_minutes",h:"valanda_valandos_valandą",hh:"valandos_valandų_valandas",d:"diena_dienos_dieną",dd:"dienos_dienų_dienas",M:"mėnuo_mėnesio_mėnesį",MM:"mėnesiai_mėnesių_mėnesius",y:"metai_metų_metus",yy:"metai_metų_metus"}),Wf="sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis".split("_"),Xf=(uf.defineLocale("lt",{months:ld,monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),weekdays:qd,weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_Šeš".split("_"),weekdaysMin:"S_P_A_T_K_Pn_Š".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"},calendar:{sameDay:"[Šiandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[Praėjusį] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prieš %s",s:kd,m:md,mm:pd,h:md,hh:pd,d:md,dd:pd,M:md,MM:pd,y:md,yy:pd},ordinalParse:/\d{1,2}-oji/,ordinal:function(a){return a+"-oji"},week:{dow:1,doy:4}}),{m:"minūtes_minūtēm_minūte_minūtes".split("_"),mm:"minūtes_minūtēm_minūte_minūtes".split("_"),h:"stundas_stundām_stunda_stundas".split("_"),hh:"stundas_stundām_stunda_stundas".split("_"),d:"dienas_dienām_diena_dienas".split("_"),dd:"dienas_dienām_diena_dienas".split("_"),M:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),MM:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),y:"gada_gadiem_gads_gadi".split("_"),yy:"gada_gadiem_gads_gadi".split("_")}),Yf=(uf.defineLocale("lv",{months:"janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris".split("_"),monthsShort:"jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec".split("_"),weekdays:"svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena".split("_"),weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY.",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, HH:mm",LLLL:"YYYY. [gada] D. MMMM, dddd, HH:mm"},calendar:{sameDay:"[Šodien pulksten] LT",nextDay:"[Rīt pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",lastWeek:"[Pagājušā] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"pēc %s",past:"pirms %s",s:ud,m:td,mm:sd,h:td,hh:sd,d:td,dd:sd,M:td,MM:sd,y:td,yy:sd},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),{words:{m:["jedan minut","jednog minuta"],mm:["minut","minuta","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mjesec","mjeseca","mjeseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&4>=a?b[1]:b[2]},translate:function(a,b,c){var d=Yf.words[c];return 1===c.length?b?d[0]:d[1]:a+" "+Yf.correctGrammaticalCase(a,d)}}),Zf=(uf.defineLocale("me",{months:["januar","februar","mart","april","maj","jun","jul","avgust","septembar","oktobar","novembar","decembar"],monthsShort:["jan.","feb.","mar.","apr.","maj","jun","jul","avg.","sep.","okt.","nov.","dec."],weekdays:["nedjelja","ponedjeljak","utorak","srijeda","četvrtak","petak","subota"],weekdaysShort:["ned.","pon.","uto.","sri.","čet.","pet.","sub."],weekdaysMin:["ne","po","ut","sr","če","pe","su"],longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sjutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){var a=["[prošle] [nedjelje] [u] LT","[prošlog] [ponedjeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srijede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"];return a[this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"nekoliko sekundi",m:Yf.translate,mm:Yf.translate,h:Yf.translate,hh:Yf.translate,d:"dan",dd:Yf.translate,M:"mjesec",MM:Yf.translate,y:"godinu",yy:Yf.translate},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),uf.defineLocale("mk",{months:"јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември".split("_"),monthsShort:"јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек".split("_"),weekdays:"недела_понеделник_вторник_среда_четврток_петок_сабота".split("_"),weekdaysShort:"нед_пон_вто_сре_чет_пет_саб".split("_"),weekdaysMin:"нe_пo_вт_ср_че_пе_сa".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Денес во] LT",nextDay:"[Утре во] LT",nextWeek:"dddd [во] LT",lastDay:"[Вчера во] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[Во изминатата] dddd [во] LT";case 1:case 2:case 4:case 5:return"[Во изминатиот] dddd [во] LT"}},sameElse:"L"},relativeTime:{future:"после %s",past:"пред %s",s:"неколку секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дена",M:"месец",MM:"%d месеци",y:"година",yy:"%d години"},ordinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(a){var b=a%10,c=a%100;return 0===a?a+"-ев":0===c?a+"-ен":c>10&&20>c?a+"-ти":1===b?a+"-ви":2===b?a+"-ри":7===b||8===b?a+"-ми":a+"-ти"},week:{dow:1,doy:7}}),uf.defineLocale("ml",{months:"ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ".split("_"),monthsShort:"ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.".split("_"),weekdays:"ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച".split("_"),weekdaysShort:"ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി".split("_"),weekdaysMin:"ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ".split("_"),longDateFormat:{LT:"A h:mm -നു",LTS:"A h:mm:ss -നു",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm -നു",LLLL:"dddd, D MMMM YYYY, A h:mm -നു"},calendar:{sameDay:"[ഇന്ന്] LT",nextDay:"[നാളെ] LT",nextWeek:"dddd, LT",lastDay:"[ഇന്നലെ] LT",lastWeek:"[കഴിഞ്ഞ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s കഴിഞ്ഞ്",past:"%s മുൻപ്",s:"അൽപ നിമിഷങ്ങൾ",m:"ഒരു മിനിറ്റ്",mm:"%d മിനിറ്റ്",h:"ഒരു മണിക്കൂർ",hh:"%d മണിക്കൂർ",d:"ഒരു ദിവസം",dd:"%d ദിവസം",M:"ഒരു മാസം",MM:"%d മാസം",y:"ഒരു വർഷം",yy:"%d വർഷം"},meridiemParse:/രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,isPM:function(a){return/^(ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി)$/.test(a)},meridiem:function(a,b,c){return 4>a?"രാത്രി":12>a?"രാവിലെ":17>a?"ഉച്ച കഴിഞ്ഞ്":20>a?"വൈകുന്നേരം":"രാത്രി"}}),{1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"}),$f={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"},_f=(uf.defineLocale("mr",{months:"जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर".split("_"),monthsShort:"जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.".split("_"),weekdays:"रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm वाजता",LTS:"A h:mm:ss वाजता",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm वाजता",LLLL:"dddd, D MMMM YYYY, A h:mm वाजता"},calendar:{sameDay:"[आज] LT",nextDay:"[उद्या] LT",nextWeek:"dddd, LT",lastDay:"[काल] LT",lastWeek:"[मागील] dddd, LT",sameElse:"L"},relativeTime:{future:"%s नंतर",past:"%s पूर्वी",s:"सेकंद",m:"एक मिनिट",mm:"%d मिनिटे",h:"एक तास",hh:"%d तास",d:"एक दिवस",dd:"%d दिवस",M:"एक महिना",MM:"%d महिने",y:"एक वर्ष",yy:"%d वर्षे"},preparse:function(a){return a.replace(/[१२३४५६७८९०]/g,function(a){return $f[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return Zf[a]})},meridiemParse:/रात्री|सकाळी|दुपारी|सायंकाळी/,meridiemHour:function(a,b){return 12===a&&(a=0),"रात्री"===b?4>a?a:a+12:"सकाळी"===b?a:"दुपारी"===b?a>=10?a:a+12:"सायंकाळी"===b?a+12:void 0},meridiem:function(a,b,c){return 4>a?"रात्री":10>a?"सकाळी":17>a?"दुपारी":20>a?"सायंकाळी":"रात्री"},week:{dow:0,doy:6}}),uf.defineLocale("ms-my",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(a,b){return 12===a&&(a=0),"pagi"===b?a:"tengahari"===b?a>=11?a:a+12:"petang"===b||"malam"===b?a+12:void 0},meridiem:function(a,b,c){return 11>a?"pagi":15>a?"tengahari":19>a?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT", +lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}}),uf.defineLocale("ms",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(a,b){return 12===a&&(a=0),"pagi"===b?a:"tengahari"===b?a>=11?a:a+12:"petang"===b||"malam"===b?a+12:void 0},meridiem:function(a,b,c){return 11>a?"pagi":15>a?"tengahari":19>a?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}}),{1:"၁",2:"၂",3:"၃",4:"၄",5:"၅",6:"၆",7:"၇",8:"၈",9:"၉",0:"၀"}),ag={"၁":"1","၂":"2","၃":"3","၄":"4","၅":"5","၆":"6","၇":"7","၈":"8","၉":"9","၀":"0"},bg=(uf.defineLocale("my",{months:"ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ".split("_"),monthsShort:"ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ".split("_"),weekdays:"တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ".split("_"),weekdaysShort:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),weekdaysMin:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[ယနေ.] LT [မှာ]",nextDay:"[မနက်ဖြန်] LT [မှာ]",nextWeek:"dddd LT [မှာ]",lastDay:"[မနေ.က] LT [မှာ]",lastWeek:"[ပြီးခဲ့သော] dddd LT [မှာ]",sameElse:"L"},relativeTime:{future:"လာမည့် %s မှာ",past:"လွန်ခဲ့သော %s က",s:"စက္ကန်.အနည်းငယ်",m:"တစ်မိနစ်",mm:"%d မိနစ်",h:"တစ်နာရီ",hh:"%d နာရီ",d:"တစ်ရက်",dd:"%d ရက်",M:"တစ်လ",MM:"%d လ",y:"တစ်နှစ်",yy:"%d နှစ်"},preparse:function(a){return a.replace(/[၁၂၃၄၅၆၇၈၉၀]/g,function(a){return ag[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return _f[a]})},week:{dow:1,doy:4}}),uf.defineLocale("nb",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"søn_man_tirs_ons_tors_fre_lør".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),longDateFormat:{LT:"H.mm",LTS:"H.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H.mm",LLLL:"dddd D. MMMM YYYY [kl.] H.mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[forrige] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"for %s siden",s:"noen sekunder",m:"ett minutt",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dager",M:"en måned",MM:"%d måneder",y:"ett år",yy:"%d år"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),{1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"}),cg={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"},dg=(uf.defineLocale("ne",{months:"जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर".split("_"),monthsShort:"जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.".split("_"),weekdays:"आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार".split("_"),weekdaysShort:"आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.".split("_"),weekdaysMin:"आइ._सो._मङ्_बु._बि._शु._श.".split("_"),longDateFormat:{LT:"Aको h:mm बजे",LTS:"Aको h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, Aको h:mm बजे",LLLL:"dddd, D MMMM YYYY, Aको h:mm बजे"},preparse:function(a){return a.replace(/[१२३४५६७८९०]/g,function(a){return cg[a]})},postformat:function(a){return a.replace(/\d/g,function(a){return bg[a]})},meridiemParse:/राती|बिहान|दिउँसो|बेलुका|साँझ|राती/,meridiemHour:function(a,b){return 12===a&&(a=0),"राती"===b?3>a?a:a+12:"बिहान"===b?a:"दिउँसो"===b?a>=10?a:a+12:"बेलुका"===b||"साँझ"===b?a+12:void 0},meridiem:function(a,b,c){return 3>a?"राती":10>a?"बिहान":15>a?"दिउँसो":18>a?"बेलुका":20>a?"साँझ":"राती"},calendar:{sameDay:"[आज] LT",nextDay:"[भोली] LT",nextWeek:"[आउँदो] dddd[,] LT",lastDay:"[हिजो] LT",lastWeek:"[गएको] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%sमा",past:"%s अगाडी",s:"केही समय",m:"एक मिनेट",mm:"%d मिनेट",h:"एक घण्टा",hh:"%d घण्टा",d:"एक दिन",dd:"%d दिन",M:"एक महिना",MM:"%d महिना",y:"एक बर्ष",yy:"%d बर्ष"},week:{dow:1,doy:7}}),"jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_")),eg="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),fg=(uf.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(a,b){return/-MMM-/.test(b)?eg[a.month()]:dg[a.month()]},weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"Zo_Ma_Di_Wo_Do_Vr_Za".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},ordinalParse:/\d{1,2}(ste|de)/,ordinal:function(a){return a+(1===a||8===a||a>=20?"ste":"de")},week:{dow:1,doy:4}}),uf.defineLocale("nn",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),weekdaysShort:"sun_mån_tys_ons_tor_fre_lau".split("_"),weekdaysMin:"su_må_ty_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[I dag klokka] LT",nextDay:"[I morgon klokka] LT",nextWeek:"dddd [klokka] LT",lastDay:"[I går klokka] LT",lastWeek:"[Føregåande] dddd [klokka] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"for %s sidan",s:"nokre sekund",m:"eit minutt",mm:"%d minutt",h:"ein time",hh:"%d timar",d:"ein dag",dd:"%d dagar",M:"ein månad",MM:"%d månader",y:"eit år",yy:"%d år"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),"styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień".split("_")),gg="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia".split("_"),hg=(uf.defineLocale("pl",{months:function(a,b){return""===b?"("+gg[a.month()]+"|"+fg[a.month()]+")":/D MMMM/.test(b)?gg[a.month()]:fg[a.month()]},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"),weekdays:"niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota".split("_"),weekdaysShort:"nie_pon_wt_śr_czw_pt_sb".split("_"),weekdaysMin:"N_Pn_Wt_Śr_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Dziś o] LT",nextDay:"[Jutro o] LT",nextWeek:"[W] dddd [o] LT",lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zeszłą niedzielę o] LT";case 3:return"[W zeszłą środę o] LT";case 6:return"[W zeszłą sobotę o] LT";default:return"[W zeszły] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",m:wd,mm:wd,h:wd,hh:wd,d:"1 dzień",dd:"%d dni",M:"miesiąc",MM:wd,y:"rok",yy:wd},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),uf.defineLocale("pt-br",{months:"Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingo_Segunda-Feira_Terça-Feira_Quarta-Feira_Quinta-Feira_Sexta-Feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Dom_2ª_3ª_4ª_5ª_6ª_Sáb".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [às] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [às] HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"%s atrás",s:"poucos segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},ordinalParse:/\d{1,2}º/,ordinal:"%dº"}),uf.defineLocale("pt",{months:"Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingo_Segunda-Feira_Terça-Feira_Quarta-Feira_Quinta-Feira_Sexta-Feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Dom_2ª_3ª_4ª_5ª_6ª_Sáb".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},ordinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}}),uf.defineLocale("ro",{months:"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),monthsShort:"ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),weekdays:"duminică_luni_marți_miercuri_joi_vineri_sâmbătă".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_Sâm".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_Sâ".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[azi la] LT",nextDay:"[mâine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},relativeTime:{future:"peste %s",past:"%s în urmă",s:"câteva secunde",m:"un minut",mm:xd,h:"o oră",hh:xd,d:"o zi",dd:xd,M:"o lună",MM:xd,y:"un an",yy:xd},week:{dow:1,doy:7}}),uf.defineLocale("ru",{months:Ad,monthsShort:Bd,weekdays:Cd,weekdaysShort:"вс_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"вс_пн_вт_ср_чт_пт_сб".split("_"),monthsParse:[/^янв/i,/^фев/i,/^мар/i,/^апр/i,/^ма[й|я]/i,/^июн/i,/^июл/i,/^авг/i,/^сен/i,/^окт/i,/^ноя/i,/^дек/i],longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., HH:mm",LLLL:"dddd, D MMMM YYYY г., HH:mm"},calendar:{sameDay:"[Сегодня в] LT",nextDay:"[Завтра в] LT",lastDay:"[Вчера в] LT",nextWeek:function(){return 2===this.day()?"[Во] dddd [в] LT":"[В] dddd [в] LT"},lastWeek:function(a){if(a.week()===this.week())return 2===this.day()?"[Во] dddd [в] LT":"[В] dddd [в] LT";switch(this.day()){case 0:return"[В прошлое] dddd [в] LT";case 1:case 2:case 4:return"[В прошлый] dddd [в] LT";case 3:case 5:case 6:return"[В прошлую] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"через %s",past:"%s назад",s:"несколько секунд",m:zd,mm:zd,h:"час",hh:zd,d:"день",dd:zd,M:"месяц",MM:zd,y:"год",yy:zd},meridiemParse:/ночи|утра|дня|вечера/i,isPM:function(a){return/^(дня|вечера)$/.test(a)},meridiem:function(a,b,c){return 4>a?"ночи":12>a?"утра":17>a?"дня":"вечера"},ordinalParse:/\d{1,2}-(й|го|я)/,ordinal:function(a,b){switch(b){case"M":case"d":case"DDD":return a+"-й";case"D":return a+"-го";case"w":case"W":return a+"-я";default:return a}},week:{dow:1,doy:7}}),uf.defineLocale("si",{months:"ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්".split("_"),monthsShort:"ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ".split("_"),weekdays:"ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා".split("_"),weekdaysShort:"ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන".split("_"),weekdaysMin:"ඉ_ස_අ_බ_බ්‍ර_සි_සෙ".split("_"),longDateFormat:{LT:"a h:mm",LTS:"a h:mm:ss",L:"YYYY/MM/DD",LL:"YYYY MMMM D",LLL:"YYYY MMMM D, a h:mm",LLLL:"YYYY MMMM D [වැනි] dddd, a h:mm:ss"},calendar:{sameDay:"[අද] LT[ට]",nextDay:"[හෙට] LT[ට]",nextWeek:"dddd LT[ට]",lastDay:"[ඊයේ] LT[ට]",lastWeek:"[පසුගිය] dddd LT[ට]",sameElse:"L"},relativeTime:{future:"%sකින්",past:"%sකට පෙර",s:"තත්පර කිහිපය",m:"මිනිත්තුව",mm:"මිනිත්තු %d",h:"පැය",hh:"පැය %d",d:"දිනය",dd:"දින %d",M:"මාසය",MM:"මාස %d",y:"වසර",yy:"වසර %d"},ordinalParse:/\d{1,2} වැනි/,ordinal:function(a){return a+" වැනි"},meridiem:function(a,b,c){return a>11?c?"ප.ව.":"පස් වරු":c?"පෙ.ව.":"පෙර වරු"}}),"január_február_marec_apríl_máj_jún_júl_august_september_október_november_december".split("_")),ig="jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec".split("_"),jg=(uf.defineLocale("sk",{months:hg,monthsShort:ig,monthsParse:function(a,b){var c,d=[];for(c=0;12>c;c++)d[c]=new RegExp("^"+a[c]+"$|^"+b[c]+"$","i");return d}(hg,ig),weekdays:"nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_št_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_št_pi_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm"},calendar:{sameDay:"[dnes o] LT",nextDay:"[zajtra o] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nedeľu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo štvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[včera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulú nedeľu o] LT";case 1:case 2:return"[minulý] dddd [o] LT";case 3:return"[minulú stredu o] LT";case 4:case 5:return"[minulý] dddd [o] LT";case 6:return"[minulú sobotu o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:Ed,m:Ed,mm:Ed,h:Ed,hh:Ed,d:Ed,dd:Ed,M:Ed,MM:Ed,y:Ed,yy:Ed},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),uf.defineLocale("sl",{months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),weekdays:"nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota".split("_"),weekdaysShort:"ned._pon._tor._sre._čet._pet._sob.".split("_"),weekdaysMin:"ne_po_to_sr_če_pe_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[včeraj ob] LT",lastWeek:function(){switch(this.day()){case 0:return"[prejšnjo] [nedeljo] [ob] LT";case 3:return"[prejšnjo] [sredo] [ob] LT";case 6:return"[prejšnjo] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[prejšnji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"čez %s",past:"pred %s",s:Fd,m:Fd,mm:Fd,h:Fd,hh:Fd,d:Fd,dd:Fd,M:Fd,MM:Fd,y:Fd,yy:Fd},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),uf.defineLocale("sq",{months:"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor".split("_"),monthsShort:"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj".split("_"),weekdays:"E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë".split("_"),weekdaysShort:"Die_Hën_Mar_Mër_Enj_Pre_Sht".split("_"),weekdaysMin:"D_H_Ma_Më_E_P_Sh".split("_"),meridiemParse:/PD|MD/,isPM:function(a){return"M"===a.charAt(0)},meridiem:function(a,b,c){return 12>a?"PD":"MD"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Sot në] LT",nextDay:"[Nesër në] LT",nextWeek:"dddd [në] LT",lastDay:"[Dje në] LT",lastWeek:"dddd [e kaluar në] LT",sameElse:"L"},relativeTime:{future:"në %s",past:"%s më parë",s:"disa sekonda",m:"një minutë",mm:"%d minuta",h:"një orë",hh:"%d orë",d:"një ditë",dd:"%d ditë",M:"një muaj",MM:"%d muaj",y:"një vit",yy:"%d vite"},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),{words:{m:["један минут","једне минуте"],mm:["минут","минуте","минута"],h:["један сат","једног сата"],hh:["сат","сата","сати"],dd:["дан","дана","дана"],MM:["месец","месеца","месеци"],yy:["година","године","година"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&4>=a?b[1]:b[2]},translate:function(a,b,c){var d=jg.words[c];return 1===c.length?b?d[0]:d[1]:a+" "+jg.correctGrammaticalCase(a,d)}}),kg=(uf.defineLocale("sr-cyrl",{months:["јануар","фебруар","март","април","мај","јун","јул","август","септембар","октобар","новембар","децембар"],monthsShort:["јан.","феб.","мар.","апр.","мај","јун","јул","авг.","сеп.","окт.","нов.","дец."],weekdays:["недеља","понедељак","уторак","среда","четвртак","петак","субота"],weekdaysShort:["нед.","пон.","уто.","сре.","чет.","пет.","суб."],weekdaysMin:["не","по","ут","ср","че","пе","су"],longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[данас у] LT",nextDay:"[сутра у] LT",nextWeek:function(){switch(this.day()){case 0:return"[у] [недељу] [у] LT";case 3:return"[у] [среду] [у] LT";case 6:return"[у] [суботу] [у] LT";case 1:case 2:case 4:case 5:return"[у] dddd [у] LT"}},lastDay:"[јуче у] LT",lastWeek:function(){var a=["[прошле] [недеље] [у] LT","[прошлог] [понедељка] [у] LT","[прошлог] [уторка] [у] LT","[прошле] [среде] [у] LT","[прошлог] [четвртка] [у] LT","[прошлог] [петка] [у] LT","[прошле] [суботе] [у] LT"];return a[this.day()]},sameElse:"L"},relativeTime:{future:"за %s",past:"пре %s",s:"неколико секунди",m:jg.translate,mm:jg.translate,h:jg.translate,hh:jg.translate,d:"дан",dd:jg.translate,M:"месец",MM:jg.translate,y:"годину",yy:jg.translate},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),{words:{m:["jedan minut","jedne minute"],mm:["minut","minute","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mesec","meseca","meseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&4>=a?b[1]:b[2]},translate:function(a,b,c){var d=kg.words[c];return 1===c.length?b?d[0]:d[1]:a+" "+kg.correctGrammaticalCase(a,d)}}),lg=(uf.defineLocale("sr",{months:["januar","februar","mart","april","maj","jun","jul","avgust","septembar","oktobar","novembar","decembar"],monthsShort:["jan.","feb.","mar.","apr.","maj","jun","jul","avg.","sep.","okt.","nov.","dec."],weekdays:["nedelja","ponedeljak","utorak","sreda","četvrtak","petak","subota"],weekdaysShort:["ned.","pon.","uto.","sre.","čet.","pet.","sub."],weekdaysMin:["ne","po","ut","sr","če","pe","su"],longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){var a=["[prošle] [nedelje] [u] LT","[prošlog] [ponedeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"];return a[this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",m:kg.translate,mm:kg.translate,h:kg.translate,hh:kg.translate,d:"dan",dd:kg.translate,M:"mesec",MM:kg.translate,y:"godinu",yy:kg.translate},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),uf.defineLocale("sv",{months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag".split("_"),weekdaysShort:"sön_mån_tis_ons_tor_fre_lör".split("_"),weekdaysMin:"sö_må_ti_on_to_fr_lö".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[Igår] LT",nextWeek:"[På] dddd LT",lastWeek:"[I] dddd[s] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"för %s sedan",s:"några sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en månad",MM:"%d månader",y:"ett år",yy:"%d år"},ordinalParse:/\d{1,2}(e|a)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?"e":1===b?"a":2===b?"a":"e";return a+c},week:{dow:1,doy:4}}),uf.defineLocale("ta",{months:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),monthsShort:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),weekdays:"ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை".split("_"),weekdaysShort:"ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி".split("_"),weekdaysMin:"ஞா_தி_செ_பு_வி_வெ_ச".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, HH:mm",LLLL:"dddd, D MMMM YYYY, HH:mm"},calendar:{sameDay:"[இன்று] LT",nextDay:"[நாளை] LT",nextWeek:"dddd, LT",lastDay:"[நேற்று] LT",lastWeek:"[கடந்த வாரம்] dddd, LT",sameElse:"L"},relativeTime:{future:"%s இல்",past:"%s முன்",s:"ஒரு சில விநாடிகள்",m:"ஒரு நிமிடம்",mm:"%d நிமிடங்கள்",h:"ஒரு மணி நேரம்",hh:"%d மணி நேரம்",d:"ஒரு நாள்",dd:"%d நாட்கள்",M:"ஒரு மாதம்",MM:"%d மாதங்கள்",y:"ஒரு வருடம்",yy:"%d ஆண்டுகள்"},ordinalParse:/\d{1,2}வது/,ordinal:function(a){return a+"வது"},meridiemParse:/யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,meridiem:function(a,b,c){return 2>a?" யாமம்":6>a?" வைகறை":10>a?" காலை":14>a?" நண்பகல்":18>a?" எற்பாடு":22>a?" மாலை":" யாமம்"},meridiemHour:function(a,b){return 12===a&&(a=0),"யாமம்"===b?2>a?a:a+12:"வைகறை"===b||"காலை"===b?a:"நண்பகல்"===b&&a>=10?a:a+12},week:{dow:0,doy:6}}),uf.defineLocale("th",{months:"มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม".split("_"),monthsShort:"มกรา_กุมภา_มีนา_เมษา_พฤษภา_มิถุนา_กรกฎา_สิงหา_กันยา_ตุลา_พฤศจิกา_ธันวา".split("_"),weekdays:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์".split("_"),weekdaysShort:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์".split("_"),weekdaysMin:"อา._จ._อ._พ._พฤ._ศ._ส.".split("_"),longDateFormat:{LT:"H นาฬิกา m นาที",LTS:"H นาฬิกา m นาที s วินาที",L:"YYYY/MM/DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY เวลา H นาฬิกา m นาที",LLLL:"วันddddที่ D MMMM YYYY เวลา H นาฬิกา m นาที"},meridiemParse:/ก่อนเที่ยง|หลังเที่ยง/,isPM:function(a){return"หลังเที่ยง"===a},meridiem:function(a,b,c){return 12>a?"ก่อนเที่ยง":"หลังเที่ยง"},calendar:{sameDay:"[วันนี้ เวลา] LT",nextDay:"[พรุ่งนี้ เวลา] LT",nextWeek:"dddd[หน้า เวลา] LT",lastDay:"[เมื่อวานนี้ เวลา] LT",lastWeek:"[วัน]dddd[ที่แล้ว เวลา] LT",sameElse:"L"},relativeTime:{future:"อีก %s",past:"%sที่แล้ว",s:"ไม่กี่วินาที",m:"1 นาที",mm:"%d นาที",h:"1 ชั่วโมง",hh:"%d ชั่วโมง",d:"1 วัน",dd:"%d วัน",M:"1 เดือน",MM:"%d เดือน",y:"1 ปี",yy:"%d ปี"}}),uf.defineLocale("tl-ph",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"[Ngayon sa] LT",nextDay:"[Bukas sa] LT",nextWeek:"dddd [sa] LT",lastDay:"[Kahapon sa] LT",lastWeek:"dddd [huling linggo] LT",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},ordinalParse:/\d{1,2}/,ordinal:function(a){return a},week:{dow:1,doy:4}}),{1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'üncü",4:"'üncü",100:"'üncü",6:"'ncı",9:"'uncu",10:"'uncu",30:"'uncu",60:"'ıncı",90:"'ıncı"}),mg=(uf.defineLocale("tr",{months:"Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık".split("_"),monthsShort:"Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pts_Sal_Çar_Per_Cum_Cts".split("_"),weekdaysMin:"Pz_Pt_Sa_Ça_Pe_Cu_Ct".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[yarın saat] LT",nextWeek:"[haftaya] dddd [saat] LT",lastDay:"[dün] LT",lastWeek:"[geçen hafta] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s önce",s:"birkaç saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir yıl",yy:"%d yıl"},ordinalParse:/\d{1,2}'(inci|nci|üncü|ncı|uncu|ıncı)/,ordinal:function(a){if(0===a)return a+"'ıncı";var b=a%10,c=a%100-b,d=a>=100?100:null;return a+(lg[b]||lg[c]||lg[d])},week:{dow:1,doy:7}}),uf.defineLocale("tzl",{months:"Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar".split("_"),monthsShort:"Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec".split("_"),weekdays:"Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi".split("_"),weekdaysShort:"Súl_Lún_Mai_Már_Xhú_Vié_Sát".split("_"),weekdaysMin:"Sú_Lú_Ma_Má_Xh_Vi_Sá".split("_"),longDateFormat:{LT:"HH.mm",LTS:"LT.ss",L:"DD.MM.YYYY",LL:"D. MMMM [dallas] YYYY",LLL:"D. MMMM [dallas] YYYY LT",LLLL:"dddd, [li] D. MMMM [dallas] YYYY LT"},meridiem:function(a,b,c){return a>11?c?"d'o":"D'O":c?"d'a":"D'A"},calendar:{sameDay:"[oxhi à] LT",nextDay:"[demà à] LT",nextWeek:"dddd [à] LT",lastDay:"[ieiri à] LT",lastWeek:"[sür el] dddd [lasteu à] LT",sameElse:"L"},relativeTime:{future:"osprei %s",past:"ja%s",s:Gd,m:Gd,mm:Gd,h:Gd,hh:Gd,d:Gd,dd:Gd,M:Gd,MM:Gd,y:Gd,yy:Gd},ordinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}}),uf.defineLocale("tzm-latn",{months:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),monthsShort:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),weekdays:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysShort:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysMin:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[asdkh g] LT",nextDay:"[aska g] LT",nextWeek:"dddd [g] LT",lastDay:"[assant g] LT",lastWeek:"dddd [g] LT",sameElse:"L"},relativeTime:{future:"dadkh s yan %s",past:"yan %s",s:"imik",m:"minuḍ",mm:"%d minuḍ",h:"saɛa",hh:"%d tassaɛin",d:"ass",dd:"%d ossan",M:"ayowr",MM:"%d iyyirn",y:"asgas",yy:"%d isgasn"},week:{dow:6,doy:12}}),uf.defineLocale("tzm",{months:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),monthsShort:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),weekdays:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysShort:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysMin:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[ⴰⵙⴷⵅ ⴴ] LT",nextDay:"[ⴰⵙⴽⴰ ⴴ] LT",nextWeek:"dddd [ⴴ] LT",lastDay:"[ⴰⵚⴰⵏⵜ ⴴ] LT",lastWeek:"dddd [ⴴ] LT",sameElse:"L"},relativeTime:{future:"ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s",past:"ⵢⴰⵏ %s",s:"ⵉⵎⵉⴽ",m:"ⵎⵉⵏⵓⴺ",mm:"%d ⵎⵉⵏⵓⴺ",h:"ⵙⴰⵄⴰ",hh:"%d ⵜⴰⵙⵙⴰⵄⵉⵏ",d:"ⴰⵙⵙ",dd:"%d oⵙⵙⴰⵏ",M:"ⴰⵢoⵓⵔ",MM:"%d ⵉⵢⵢⵉⵔⵏ",y:"ⴰⵙⴳⴰⵙ",yy:"%d ⵉⵙⴳⴰⵙⵏ"},week:{dow:6,doy:12}}),uf.defineLocale("uk",{months:Jd,monthsShort:"січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд".split("_"),weekdays:Kd,weekdaysShort:"нд_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY р.",LLL:"D MMMM YYYY р., HH:mm",LLLL:"dddd, D MMMM YYYY р., HH:mm"},calendar:{sameDay:Ld("[Сьогодні "),nextDay:Ld("[Завтра "),lastDay:Ld("[Вчора "),nextWeek:Ld("[У] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return Ld("[Минулої] dddd [").call(this);case 1:case 2:case 4:return Ld("[Минулого] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"за %s",past:"%s тому",s:"декілька секунд",m:Id,mm:Id,h:"годину",hh:Id,d:"день",dd:Id,M:"місяць",MM:Id,y:"рік",yy:Id},meridiemParse:/ночі|ранку|дня|вечора/,isPM:function(a){return/^(дня|вечора)$/.test(a)},meridiem:function(a,b,c){return 4>a?"ночі":12>a?"ранку":17>a?"дня":"вечора"},ordinalParse:/\d{1,2}-(й|го)/,ordinal:function(a,b){switch(b){case"M":case"d":case"DDD":case"w":case"W":return a+"-й";case"D":return a+"-го";default:return a}},week:{dow:1,doy:7}}),uf.defineLocale("uz",{months:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба".split("_"),weekdaysShort:"Якш_Душ_Сеш_Чор_Пай_Жум_Шан".split("_"),weekdaysMin:"Як_Ду_Се_Чо_Па_Жу_Ша".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Бугун соат] LT [да]",nextDay:"[Эртага] LT [да]",nextWeek:"dddd [куни соат] LT [да]",lastDay:"[Кеча соат] LT [да]",lastWeek:"[Утган] dddd [куни соат] LT [да]",sameElse:"L"},relativeTime:{future:"Якин %s ичида",past:"Бир неча %s олдин",s:"фурсат",m:"бир дакика",mm:"%d дакика",h:"бир соат",hh:"%d соат",d:"бир кун",dd:"%d кун",M:"бир ой",MM:"%d ой",y:"бир йил",yy:"%d йил"},week:{dow:1,doy:7}}),uf.defineLocale("vi",{months:"tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12".split("_"),monthsShort:"Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12".split("_"),weekdays:"chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy".split("_"),weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [năm] YYYY",LLL:"D MMMM [năm] YYYY HH:mm",LLLL:"dddd, D MMMM [năm] YYYY HH:mm",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm", +llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[Hôm nay lúc] LT",nextDay:"[Ngày mai lúc] LT",nextWeek:"dddd [tuần tới lúc] LT",lastDay:"[Hôm qua lúc] LT",lastWeek:"dddd [tuần rồi lúc] LT",sameElse:"L"},relativeTime:{future:"%s tới",past:"%s trước",s:"vài giây",m:"một phút",mm:"%d phút",h:"một giờ",hh:"%d giờ",d:"một ngày",dd:"%d ngày",M:"một tháng",MM:"%d tháng",y:"một năm",yy:"%d năm"},ordinalParse:/\d{1,2}/,ordinal:function(a){return a},week:{dow:1,doy:4}}),uf.defineLocale("zh-cn",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"Ah点mm分",LTS:"Ah点m分s秒",L:"YYYY-MM-DD",LL:"YYYY年MMMD日",LLL:"YYYY年MMMD日Ah点mm分",LLLL:"YYYY年MMMD日ddddAh点mm分",l:"YYYY-MM-DD",ll:"YYYY年MMMD日",lll:"YYYY年MMMD日Ah点mm分",llll:"YYYY年MMMD日ddddAh点mm分"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(a,b){return 12===a&&(a=0),"凌晨"===b||"早上"===b||"上午"===b?a:"下午"===b||"晚上"===b?a+12:a>=11?a:a+12},meridiem:function(a,b,c){var d=100*a+b;return 600>d?"凌晨":900>d?"早上":1130>d?"上午":1230>d?"中午":1800>d?"下午":"晚上"},calendar:{sameDay:function(){return 0===this.minutes()?"[今天]Ah[点整]":"[今天]LT"},nextDay:function(){return 0===this.minutes()?"[明天]Ah[点整]":"[明天]LT"},lastDay:function(){return 0===this.minutes()?"[昨天]Ah[点整]":"[昨天]LT"},nextWeek:function(){var a,b;return a=uf().startOf("week"),b=this.unix()-a.unix()>=604800?"[下]":"[本]",0===this.minutes()?b+"dddAh点整":b+"dddAh点mm"},lastWeek:function(){var a,b;return a=uf().startOf("week"),b=this.unix()=11?a:a+12:"下午"===b||"晚上"===b?a+12:void 0},meridiem:function(a,b,c){var d=100*a+b;return 900>d?"早上":1130>d?"上午":1230>d?"中午":1800>d?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},ordinalParse:/\d{1,2}(日|月|週)/,ordinal:function(a,b){switch(b){case"d":case"D":case"DDD":return a+"日";case"M":return a+"月";case"w":case"W":return a+"週";default:return a}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",m:"一分鐘",mm:"%d分鐘",h:"一小時",hh:"%d小時",d:"一天",dd:"%d天",M:"一個月",MM:"%d個月",y:"一年",yy:"%d年"}}),uf);return mg.locale("en"),mg}); \ No newline at end of file diff --git a/public/js/moment.js b/public/js/moment.js new file mode 100644 index 0000000..23cd3ed --- /dev/null +++ b/public/js/moment.js @@ -0,0 +1,3195 @@ +//! moment.js +//! version : 2.10.6 +//! authors : Tim Wood, Iskren Chernev, Moment.js contributors +//! license : MIT +//! momentjs.com + +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + global.moment = factory() +}(this, function () { 'use strict'; + + var hookCallback; + + function utils_hooks__hooks () { + return hookCallback.apply(null, arguments); + } + + // This is done to register the method called with moment() + // without creating circular dependencies. + function setHookCallback (callback) { + hookCallback = callback; + } + + function isArray(input) { + return Object.prototype.toString.call(input) === '[object Array]'; + } + + function isDate(input) { + return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]'; + } + + function map(arr, fn) { + var res = [], i; + for (i = 0; i < arr.length; ++i) { + res.push(fn(arr[i], i)); + } + return res; + } + + function hasOwnProp(a, b) { + return Object.prototype.hasOwnProperty.call(a, b); + } + + function extend(a, b) { + for (var i in b) { + if (hasOwnProp(b, i)) { + a[i] = b[i]; + } + } + + if (hasOwnProp(b, 'toString')) { + a.toString = b.toString; + } + + if (hasOwnProp(b, 'valueOf')) { + a.valueOf = b.valueOf; + } + + return a; + } + + function create_utc__createUTC (input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, true).utc(); + } + + function defaultParsingFlags() { + // We need to deep clone this object. + return { + empty : false, + unusedTokens : [], + unusedInput : [], + overflow : -2, + charsLeftOver : 0, + nullInput : false, + invalidMonth : null, + invalidFormat : false, + userInvalidated : false, + iso : false + }; + } + + function getParsingFlags(m) { + if (m._pf == null) { + m._pf = defaultParsingFlags(); + } + return m._pf; + } + + function valid__isValid(m) { + if (m._isValid == null) { + var flags = getParsingFlags(m); + m._isValid = !isNaN(m._d.getTime()) && + flags.overflow < 0 && + !flags.empty && + !flags.invalidMonth && + !flags.invalidWeekday && + !flags.nullInput && + !flags.invalidFormat && + !flags.userInvalidated; + + if (m._strict) { + m._isValid = m._isValid && + flags.charsLeftOver === 0 && + flags.unusedTokens.length === 0 && + flags.bigHour === undefined; + } + } + return m._isValid; + } + + function valid__createInvalid (flags) { + var m = create_utc__createUTC(NaN); + if (flags != null) { + extend(getParsingFlags(m), flags); + } + else { + getParsingFlags(m).userInvalidated = true; + } + + return m; + } + + var momentProperties = utils_hooks__hooks.momentProperties = []; + + function copyConfig(to, from) { + var i, prop, val; + + if (typeof from._isAMomentObject !== 'undefined') { + to._isAMomentObject = from._isAMomentObject; + } + if (typeof from._i !== 'undefined') { + to._i = from._i; + } + if (typeof from._f !== 'undefined') { + to._f = from._f; + } + if (typeof from._l !== 'undefined') { + to._l = from._l; + } + if (typeof from._strict !== 'undefined') { + to._strict = from._strict; + } + if (typeof from._tzm !== 'undefined') { + to._tzm = from._tzm; + } + if (typeof from._isUTC !== 'undefined') { + to._isUTC = from._isUTC; + } + if (typeof from._offset !== 'undefined') { + to._offset = from._offset; + } + if (typeof from._pf !== 'undefined') { + to._pf = getParsingFlags(from); + } + if (typeof from._locale !== 'undefined') { + to._locale = from._locale; + } + + if (momentProperties.length > 0) { + for (i in momentProperties) { + prop = momentProperties[i]; + val = from[prop]; + if (typeof val !== 'undefined') { + to[prop] = val; + } + } + } + + return to; + } + + var updateInProgress = false; + + // Moment prototype object + function Moment(config) { + copyConfig(this, config); + this._d = new Date(config._d != null ? config._d.getTime() : NaN); + // Prevent infinite loop in case updateOffset creates new moment + // objects. + if (updateInProgress === false) { + updateInProgress = true; + utils_hooks__hooks.updateOffset(this); + updateInProgress = false; + } + } + + function isMoment (obj) { + return obj instanceof Moment || (obj != null && obj._isAMomentObject != null); + } + + function absFloor (number) { + if (number < 0) { + return Math.ceil(number); + } else { + return Math.floor(number); + } + } + + function toInt(argumentForCoercion) { + var coercedNumber = +argumentForCoercion, + value = 0; + + if (coercedNumber !== 0 && isFinite(coercedNumber)) { + value = absFloor(coercedNumber); + } + + return value; + } + + function compareArrays(array1, array2, dontConvert) { + var len = Math.min(array1.length, array2.length), + lengthDiff = Math.abs(array1.length - array2.length), + diffs = 0, + i; + for (i = 0; i < len; i++) { + if ((dontConvert && array1[i] !== array2[i]) || + (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) { + diffs++; + } + } + return diffs + lengthDiff; + } + + function Locale() { + } + + var locales = {}; + var globalLocale; + + function normalizeLocale(key) { + return key ? key.toLowerCase().replace('_', '-') : key; + } + + // pick the locale from the array + // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each + // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root + function chooseLocale(names) { + var i = 0, j, next, locale, split; + + while (i < names.length) { + split = normalizeLocale(names[i]).split('-'); + j = split.length; + next = normalizeLocale(names[i + 1]); + next = next ? next.split('-') : null; + while (j > 0) { + locale = loadLocale(split.slice(0, j).join('-')); + if (locale) { + return locale; + } + if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) { + //the next array item is better than a shallower substring of this one + break; + } + j--; + } + i++; + } + return null; + } + + function loadLocale(name) { + var oldLocale = null; + // TODO: Find a better way to register and load all the locales in Node + if (!locales[name] && typeof module !== 'undefined' && + module && module.exports) { + try { + oldLocale = globalLocale._abbr; + require('./locale/' + name); + // because defineLocale currently also sets the global locale, we + // want to undo that for lazy loaded locales + locale_locales__getSetGlobalLocale(oldLocale); + } catch (e) { } + } + return locales[name]; + } + + // This function will load locale and then set the global locale. If + // no arguments are passed in, it will simply return the current global + // locale key. + function locale_locales__getSetGlobalLocale (key, values) { + var data; + if (key) { + if (typeof values === 'undefined') { + data = locale_locales__getLocale(key); + } + else { + data = defineLocale(key, values); + } + + if (data) { + // moment.duration._locale = moment._locale = data; + globalLocale = data; + } + } + + return globalLocale._abbr; + } + + function defineLocale (name, values) { + if (values !== null) { + values.abbr = name; + locales[name] = locales[name] || new Locale(); + locales[name].set(values); + + // backwards compat for now: also set the locale + locale_locales__getSetGlobalLocale(name); + + return locales[name]; + } else { + // useful for testing + delete locales[name]; + return null; + } + } + + // returns locale data + function locale_locales__getLocale (key) { + var locale; + + if (key && key._locale && key._locale._abbr) { + key = key._locale._abbr; + } + + if (!key) { + return globalLocale; + } + + if (!isArray(key)) { + //short-circuit everything else + locale = loadLocale(key); + if (locale) { + return locale; + } + key = [key]; + } + + return chooseLocale(key); + } + + var aliases = {}; + + function addUnitAlias (unit, shorthand) { + var lowerCase = unit.toLowerCase(); + aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit; + } + + function normalizeUnits(units) { + return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined; + } + + function normalizeObjectUnits(inputObject) { + var normalizedInput = {}, + normalizedProp, + prop; + + for (prop in inputObject) { + if (hasOwnProp(inputObject, prop)) { + normalizedProp = normalizeUnits(prop); + if (normalizedProp) { + normalizedInput[normalizedProp] = inputObject[prop]; + } + } + } + + return normalizedInput; + } + + function makeGetSet (unit, keepTime) { + return function (value) { + if (value != null) { + get_set__set(this, unit, value); + utils_hooks__hooks.updateOffset(this, keepTime); + return this; + } else { + return get_set__get(this, unit); + } + }; + } + + function get_set__get (mom, unit) { + return mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit](); + } + + function get_set__set (mom, unit, value) { + return mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value); + } + + // MOMENTS + + function getSet (units, value) { + var unit; + if (typeof units === 'object') { + for (unit in units) { + this.set(unit, units[unit]); + } + } else { + units = normalizeUnits(units); + if (typeof this[units] === 'function') { + return this[units](value); + } + } + return this; + } + + function zeroFill(number, targetLength, forceSign) { + var absNumber = '' + Math.abs(number), + zerosToFill = targetLength - absNumber.length, + sign = number >= 0; + return (sign ? (forceSign ? '+' : '') : '-') + + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber; + } + + var formattingTokens = /(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g; + + var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g; + + var formatFunctions = {}; + + var formatTokenFunctions = {}; + + // token: 'M' + // padded: ['MM', 2] + // ordinal: 'Mo' + // callback: function () { this.month() + 1 } + function addFormatToken (token, padded, ordinal, callback) { + var func = callback; + if (typeof callback === 'string') { + func = function () { + return this[callback](); + }; + } + if (token) { + formatTokenFunctions[token] = func; + } + if (padded) { + formatTokenFunctions[padded[0]] = function () { + return zeroFill(func.apply(this, arguments), padded[1], padded[2]); + }; + } + if (ordinal) { + formatTokenFunctions[ordinal] = function () { + return this.localeData().ordinal(func.apply(this, arguments), token); + }; + } + } + + function removeFormattingTokens(input) { + if (input.match(/\[[\s\S]/)) { + return input.replace(/^\[|\]$/g, ''); + } + return input.replace(/\\/g, ''); + } + + function makeFormatFunction(format) { + var array = format.match(formattingTokens), i, length; + + for (i = 0, length = array.length; i < length; i++) { + if (formatTokenFunctions[array[i]]) { + array[i] = formatTokenFunctions[array[i]]; + } else { + array[i] = removeFormattingTokens(array[i]); + } + } + + return function (mom) { + var output = ''; + for (i = 0; i < length; i++) { + output += array[i] instanceof Function ? array[i].call(mom, format) : array[i]; + } + return output; + }; + } + + // format date using native date object + function formatMoment(m, format) { + if (!m.isValid()) { + return m.localeData().invalidDate(); + } + + format = expandFormat(format, m.localeData()); + formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format); + + return formatFunctions[format](m); + } + + function expandFormat(format, locale) { + var i = 5; + + function replaceLongDateFormatTokens(input) { + return locale.longDateFormat(input) || input; + } + + localFormattingTokens.lastIndex = 0; + while (i >= 0 && localFormattingTokens.test(format)) { + format = format.replace(localFormattingTokens, replaceLongDateFormatTokens); + localFormattingTokens.lastIndex = 0; + i -= 1; + } + + return format; + } + + var match1 = /\d/; // 0 - 9 + var match2 = /\d\d/; // 00 - 99 + var match3 = /\d{3}/; // 000 - 999 + var match4 = /\d{4}/; // 0000 - 9999 + var match6 = /[+-]?\d{6}/; // -999999 - 999999 + var match1to2 = /\d\d?/; // 0 - 99 + var match1to3 = /\d{1,3}/; // 0 - 999 + var match1to4 = /\d{1,4}/; // 0 - 9999 + var match1to6 = /[+-]?\d{1,6}/; // -999999 - 999999 + + var matchUnsigned = /\d+/; // 0 - inf + var matchSigned = /[+-]?\d+/; // -inf - inf + + var matchOffset = /Z|[+-]\d\d:?\d\d/gi; // +00:00 -00:00 +0000 -0000 or Z + + var matchTimestamp = /[+-]?\d+(\.\d{1,3})?/; // 123456789 123456789.123 + + // any word (or two) characters or numbers including two/three word month in arabic. + var matchWord = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i; + + var regexes = {}; + + function isFunction (sth) { + // https://github.com/moment/moment/issues/2325 + return typeof sth === 'function' && + Object.prototype.toString.call(sth) === '[object Function]'; + } + + + function addRegexToken (token, regex, strictRegex) { + regexes[token] = isFunction(regex) ? regex : function (isStrict) { + return (isStrict && strictRegex) ? strictRegex : regex; + }; + } + + function getParseRegexForToken (token, config) { + if (!hasOwnProp(regexes, token)) { + return new RegExp(unescapeFormat(token)); + } + + return regexes[token](config._strict, config._locale); + } + + // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript + function unescapeFormat(s) { + return s.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) { + return p1 || p2 || p3 || p4; + }).replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); + } + + var tokens = {}; + + function addParseToken (token, callback) { + var i, func = callback; + if (typeof token === 'string') { + token = [token]; + } + if (typeof callback === 'number') { + func = function (input, array) { + array[callback] = toInt(input); + }; + } + for (i = 0; i < token.length; i++) { + tokens[token[i]] = func; + } + } + + function addWeekParseToken (token, callback) { + addParseToken(token, function (input, array, config, token) { + config._w = config._w || {}; + callback(input, config._w, config, token); + }); + } + + function addTimeToArrayFromToken(token, input, config) { + if (input != null && hasOwnProp(tokens, token)) { + tokens[token](input, config._a, config, token); + } + } + + var YEAR = 0; + var MONTH = 1; + var DATE = 2; + var HOUR = 3; + var MINUTE = 4; + var SECOND = 5; + var MILLISECOND = 6; + + function daysInMonth(year, month) { + return new Date(Date.UTC(year, month + 1, 0)).getUTCDate(); + } + + // FORMATTING + + addFormatToken('M', ['MM', 2], 'Mo', function () { + return this.month() + 1; + }); + + addFormatToken('MMM', 0, 0, function (format) { + return this.localeData().monthsShort(this, format); + }); + + addFormatToken('MMMM', 0, 0, function (format) { + return this.localeData().months(this, format); + }); + + // ALIASES + + addUnitAlias('month', 'M'); + + // PARSING + + addRegexToken('M', match1to2); + addRegexToken('MM', match1to2, match2); + addRegexToken('MMM', matchWord); + addRegexToken('MMMM', matchWord); + + addParseToken(['M', 'MM'], function (input, array) { + array[MONTH] = toInt(input) - 1; + }); + + addParseToken(['MMM', 'MMMM'], function (input, array, config, token) { + var month = config._locale.monthsParse(input, token, config._strict); + // if we didn't find a month name, mark the date as invalid. + if (month != null) { + array[MONTH] = month; + } else { + getParsingFlags(config).invalidMonth = input; + } + }); + + // LOCALES + + var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'); + function localeMonths (m) { + return this._months[m.month()]; + } + + var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'); + function localeMonthsShort (m) { + return this._monthsShort[m.month()]; + } + + function localeMonthsParse (monthName, format, strict) { + var i, mom, regex; + + if (!this._monthsParse) { + this._monthsParse = []; + this._longMonthsParse = []; + this._shortMonthsParse = []; + } + + for (i = 0; i < 12; i++) { + // make the regex if we don't have it already + mom = create_utc__createUTC([2000, i]); + if (strict && !this._longMonthsParse[i]) { + this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i'); + this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i'); + } + if (!strict && !this._monthsParse[i]) { + regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, ''); + this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) { + return i; + } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) { + return i; + } else if (!strict && this._monthsParse[i].test(monthName)) { + return i; + } + } + } + + // MOMENTS + + function setMonth (mom, value) { + var dayOfMonth; + + // TODO: Move this out of here! + if (typeof value === 'string') { + value = mom.localeData().monthsParse(value); + // TODO: Another silent failure? + if (typeof value !== 'number') { + return mom; + } + } + + dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value)); + mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth); + return mom; + } + + function getSetMonth (value) { + if (value != null) { + setMonth(this, value); + utils_hooks__hooks.updateOffset(this, true); + return this; + } else { + return get_set__get(this, 'Month'); + } + } + + function getDaysInMonth () { + return daysInMonth(this.year(), this.month()); + } + + function checkOverflow (m) { + var overflow; + var a = m._a; + + if (a && getParsingFlags(m).overflow === -2) { + overflow = + a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : + a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : + a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR : + a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : + a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : + a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : + -1; + + if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) { + overflow = DATE; + } + + getParsingFlags(m).overflow = overflow; + } + + return m; + } + + function warn(msg) { + if (utils_hooks__hooks.suppressDeprecationWarnings === false && typeof console !== 'undefined' && console.warn) { + console.warn('Deprecation warning: ' + msg); + } + } + + function deprecate(msg, fn) { + var firstTime = true; + + return extend(function () { + if (firstTime) { + warn(msg + '\n' + (new Error()).stack); + firstTime = false; + } + return fn.apply(this, arguments); + }, fn); + } + + var deprecations = {}; + + function deprecateSimple(name, msg) { + if (!deprecations[name]) { + warn(msg); + deprecations[name] = true; + } + } + + utils_hooks__hooks.suppressDeprecationWarnings = false; + + var from_string__isoRegex = /^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/; + + var isoDates = [ + ['YYYYYY-MM-DD', /[+-]\d{6}-\d{2}-\d{2}/], + ['YYYY-MM-DD', /\d{4}-\d{2}-\d{2}/], + ['GGGG-[W]WW-E', /\d{4}-W\d{2}-\d/], + ['GGGG-[W]WW', /\d{4}-W\d{2}/], + ['YYYY-DDD', /\d{4}-\d{3}/] + ]; + + // iso time formats and regexes + var isoTimes = [ + ['HH:mm:ss.SSSS', /(T| )\d\d:\d\d:\d\d\.\d+/], + ['HH:mm:ss', /(T| )\d\d:\d\d:\d\d/], + ['HH:mm', /(T| )\d\d:\d\d/], + ['HH', /(T| )\d\d/] + ]; + + var aspNetJsonRegex = /^\/?Date\((\-?\d+)/i; + + // date from iso format + function configFromISO(config) { + var i, l, + string = config._i, + match = from_string__isoRegex.exec(string); + + if (match) { + getParsingFlags(config).iso = true; + for (i = 0, l = isoDates.length; i < l; i++) { + if (isoDates[i][1].exec(string)) { + config._f = isoDates[i][0]; + break; + } + } + for (i = 0, l = isoTimes.length; i < l; i++) { + if (isoTimes[i][1].exec(string)) { + // match[6] should be 'T' or space + config._f += (match[6] || ' ') + isoTimes[i][0]; + break; + } + } + if (string.match(matchOffset)) { + config._f += 'Z'; + } + configFromStringAndFormat(config); + } else { + config._isValid = false; + } + } + + // date from iso format or fallback + function configFromString(config) { + var matched = aspNetJsonRegex.exec(config._i); + + if (matched !== null) { + config._d = new Date(+matched[1]); + return; + } + + configFromISO(config); + if (config._isValid === false) { + delete config._isValid; + utils_hooks__hooks.createFromInputFallback(config); + } + } + + utils_hooks__hooks.createFromInputFallback = deprecate( + 'moment construction falls back to js Date. This is ' + + 'discouraged and will be removed in upcoming major ' + + 'release. Please refer to ' + + 'https://github.com/moment/moment/issues/1407 for more info.', + function (config) { + config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); + } + ); + + function createDate (y, m, d, h, M, s, ms) { + //can't just apply() to create a date: + //http://stackoverflow.com/questions/181348/instantiating-a-javascript-object-by-calling-prototype-constructor-apply + var date = new Date(y, m, d, h, M, s, ms); + + //the date constructor doesn't accept years < 1970 + if (y < 1970) { + date.setFullYear(y); + } + return date; + } + + function createUTCDate (y) { + var date = new Date(Date.UTC.apply(null, arguments)); + if (y < 1970) { + date.setUTCFullYear(y); + } + return date; + } + + addFormatToken(0, ['YY', 2], 0, function () { + return this.year() % 100; + }); + + addFormatToken(0, ['YYYY', 4], 0, 'year'); + addFormatToken(0, ['YYYYY', 5], 0, 'year'); + addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); + + // ALIASES + + addUnitAlias('year', 'y'); + + // PARSING + + addRegexToken('Y', matchSigned); + addRegexToken('YY', match1to2, match2); + addRegexToken('YYYY', match1to4, match4); + addRegexToken('YYYYY', match1to6, match6); + addRegexToken('YYYYYY', match1to6, match6); + + addParseToken(['YYYYY', 'YYYYYY'], YEAR); + addParseToken('YYYY', function (input, array) { + array[YEAR] = input.length === 2 ? utils_hooks__hooks.parseTwoDigitYear(input) : toInt(input); + }); + addParseToken('YY', function (input, array) { + array[YEAR] = utils_hooks__hooks.parseTwoDigitYear(input); + }); + + // HELPERS + + function daysInYear(year) { + return isLeapYear(year) ? 366 : 365; + } + + function isLeapYear(year) { + return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; + } + + // HOOKS + + utils_hooks__hooks.parseTwoDigitYear = function (input) { + return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); + }; + + // MOMENTS + + var getSetYear = makeGetSet('FullYear', false); + + function getIsLeapYear () { + return isLeapYear(this.year()); + } + + addFormatToken('w', ['ww', 2], 'wo', 'week'); + addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); + + // ALIASES + + addUnitAlias('week', 'w'); + addUnitAlias('isoWeek', 'W'); + + // PARSING + + addRegexToken('w', match1to2); + addRegexToken('ww', match1to2, match2); + addRegexToken('W', match1to2); + addRegexToken('WW', match1to2, match2); + + addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) { + week[token.substr(0, 1)] = toInt(input); + }); + + // HELPERS + + // firstDayOfWeek 0 = sun, 6 = sat + // the day of the week that starts the week + // (usually sunday or monday) + // firstDayOfWeekOfYear 0 = sun, 6 = sat + // the first week is the week that contains the first + // of this day of the week + // (eg. ISO weeks use thursday (4)) + function weekOfYear(mom, firstDayOfWeek, firstDayOfWeekOfYear) { + var end = firstDayOfWeekOfYear - firstDayOfWeek, + daysToDayOfWeek = firstDayOfWeekOfYear - mom.day(), + adjustedMoment; + + + if (daysToDayOfWeek > end) { + daysToDayOfWeek -= 7; + } + + if (daysToDayOfWeek < end - 7) { + daysToDayOfWeek += 7; + } + + adjustedMoment = local__createLocal(mom).add(daysToDayOfWeek, 'd'); + return { + week: Math.ceil(adjustedMoment.dayOfYear() / 7), + year: adjustedMoment.year() + }; + } + + // LOCALES + + function localeWeek (mom) { + return weekOfYear(mom, this._week.dow, this._week.doy).week; + } + + var defaultLocaleWeek = { + dow : 0, // Sunday is the first day of the week. + doy : 6 // The week that contains Jan 1st is the first week of the year. + }; + + function localeFirstDayOfWeek () { + return this._week.dow; + } + + function localeFirstDayOfYear () { + return this._week.doy; + } + + // MOMENTS + + function getSetWeek (input) { + var week = this.localeData().week(this); + return input == null ? week : this.add((input - week) * 7, 'd'); + } + + function getSetISOWeek (input) { + var week = weekOfYear(this, 1, 4).week; + return input == null ? week : this.add((input - week) * 7, 'd'); + } + + addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); + + // ALIASES + + addUnitAlias('dayOfYear', 'DDD'); + + // PARSING + + addRegexToken('DDD', match1to3); + addRegexToken('DDDD', match3); + addParseToken(['DDD', 'DDDD'], function (input, array, config) { + config._dayOfYear = toInt(input); + }); + + // HELPERS + + //http://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday + function dayOfYearFromWeeks(year, week, weekday, firstDayOfWeekOfYear, firstDayOfWeek) { + var week1Jan = 6 + firstDayOfWeek - firstDayOfWeekOfYear, janX = createUTCDate(year, 0, 1 + week1Jan), d = janX.getUTCDay(), dayOfYear; + if (d < firstDayOfWeek) { + d += 7; + } + + weekday = weekday != null ? 1 * weekday : firstDayOfWeek; + + dayOfYear = 1 + week1Jan + 7 * (week - 1) - d + weekday; + + return { + year: dayOfYear > 0 ? year : year - 1, + dayOfYear: dayOfYear > 0 ? dayOfYear : daysInYear(year - 1) + dayOfYear + }; + } + + // MOMENTS + + function getSetDayOfYear (input) { + var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1; + return input == null ? dayOfYear : this.add((input - dayOfYear), 'd'); + } + + // Pick the first defined of two or three arguments. + function defaults(a, b, c) { + if (a != null) { + return a; + } + if (b != null) { + return b; + } + return c; + } + + function currentDateArray(config) { + var now = new Date(); + if (config._useUTC) { + return [now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate()]; + } + return [now.getFullYear(), now.getMonth(), now.getDate()]; + } + + // convert an array to a date. + // the array should mirror the parameters below + // note: all values past the year are optional and will default to the lowest possible value. + // [year, month, day , hour, minute, second, millisecond] + function configFromArray (config) { + var i, date, input = [], currentDate, yearToUse; + + if (config._d) { + return; + } + + currentDate = currentDateArray(config); + + //compute day of the year from weeks and weekdays + if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { + dayOfYearFromWeekInfo(config); + } + + //if the day of the year is set, figure out what it is + if (config._dayOfYear) { + yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); + + if (config._dayOfYear > daysInYear(yearToUse)) { + getParsingFlags(config)._overflowDayOfYear = true; + } + + date = createUTCDate(yearToUse, 0, config._dayOfYear); + config._a[MONTH] = date.getUTCMonth(); + config._a[DATE] = date.getUTCDate(); + } + + // Default to current date. + // * if no year, month, day of month are given, default to today + // * if day of month is given, default month and year + // * if month is given, default only year + // * if year is given, don't default anything + for (i = 0; i < 3 && config._a[i] == null; ++i) { + config._a[i] = input[i] = currentDate[i]; + } + + // Zero out whatever was not defaulted, including time + for (; i < 7; i++) { + config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i]; + } + + // Check for 24:00:00.000 + if (config._a[HOUR] === 24 && + config._a[MINUTE] === 0 && + config._a[SECOND] === 0 && + config._a[MILLISECOND] === 0) { + config._nextDay = true; + config._a[HOUR] = 0; + } + + config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input); + // Apply timezone offset from input. The actual utcOffset can be changed + // with parseZone. + if (config._tzm != null) { + config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); + } + + if (config._nextDay) { + config._a[HOUR] = 24; + } + } + + function dayOfYearFromWeekInfo(config) { + var w, weekYear, week, weekday, dow, doy, temp; + + w = config._w; + if (w.GG != null || w.W != null || w.E != null) { + dow = 1; + doy = 4; + + // TODO: We need to take the current isoWeekYear, but that depends on + // how we interpret now (local, utc, fixed offset). So create + // a now version of current config (take local/utc/offset flags, and + // create now). + weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(local__createLocal(), 1, 4).year); + week = defaults(w.W, 1); + weekday = defaults(w.E, 1); + } else { + dow = config._locale._week.dow; + doy = config._locale._week.doy; + + weekYear = defaults(w.gg, config._a[YEAR], weekOfYear(local__createLocal(), dow, doy).year); + week = defaults(w.w, 1); + + if (w.d != null) { + // weekday -- low day numbers are considered next week + weekday = w.d; + if (weekday < dow) { + ++week; + } + } else if (w.e != null) { + // local weekday -- counting starts from begining of week + weekday = w.e + dow; + } else { + // default to begining of week + weekday = dow; + } + } + temp = dayOfYearFromWeeks(weekYear, week, weekday, doy, dow); + + config._a[YEAR] = temp.year; + config._dayOfYear = temp.dayOfYear; + } + + utils_hooks__hooks.ISO_8601 = function () {}; + + // date from string and format string + function configFromStringAndFormat(config) { + // TODO: Move this to another part of the creation flow to prevent circular deps + if (config._f === utils_hooks__hooks.ISO_8601) { + configFromISO(config); + return; + } + + config._a = []; + getParsingFlags(config).empty = true; + + // This array is used to make a Date, either with `new Date` or `Date.UTC` + var string = '' + config._i, + i, parsedInput, tokens, token, skipped, + stringLength = string.length, + totalParsedInputLength = 0; + + tokens = expandFormat(config._f, config._locale).match(formattingTokens) || []; + + for (i = 0; i < tokens.length; i++) { + token = tokens[i]; + parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0]; + if (parsedInput) { + skipped = string.substr(0, string.indexOf(parsedInput)); + if (skipped.length > 0) { + getParsingFlags(config).unusedInput.push(skipped); + } + string = string.slice(string.indexOf(parsedInput) + parsedInput.length); + totalParsedInputLength += parsedInput.length; + } + // don't parse if it's not a known token + if (formatTokenFunctions[token]) { + if (parsedInput) { + getParsingFlags(config).empty = false; + } + else { + getParsingFlags(config).unusedTokens.push(token); + } + addTimeToArrayFromToken(token, parsedInput, config); + } + else if (config._strict && !parsedInput) { + getParsingFlags(config).unusedTokens.push(token); + } + } + + // add remaining unparsed input length to the string + getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength; + if (string.length > 0) { + getParsingFlags(config).unusedInput.push(string); + } + + // clear _12h flag if hour is <= 12 + if (getParsingFlags(config).bigHour === true && + config._a[HOUR] <= 12 && + config._a[HOUR] > 0) { + getParsingFlags(config).bigHour = undefined; + } + // handle meridiem + config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem); + + configFromArray(config); + checkOverflow(config); + } + + + function meridiemFixWrap (locale, hour, meridiem) { + var isPm; + + if (meridiem == null) { + // nothing to do + return hour; + } + if (locale.meridiemHour != null) { + return locale.meridiemHour(hour, meridiem); + } else if (locale.isPM != null) { + // Fallback + isPm = locale.isPM(meridiem); + if (isPm && hour < 12) { + hour += 12; + } + if (!isPm && hour === 12) { + hour = 0; + } + return hour; + } else { + // this is not supposed to happen + return hour; + } + } + + function configFromStringAndArray(config) { + var tempConfig, + bestMoment, + + scoreToBeat, + i, + currentScore; + + if (config._f.length === 0) { + getParsingFlags(config).invalidFormat = true; + config._d = new Date(NaN); + return; + } + + for (i = 0; i < config._f.length; i++) { + currentScore = 0; + tempConfig = copyConfig({}, config); + if (config._useUTC != null) { + tempConfig._useUTC = config._useUTC; + } + tempConfig._f = config._f[i]; + configFromStringAndFormat(tempConfig); + + if (!valid__isValid(tempConfig)) { + continue; + } + + // if there is any input that was not parsed add a penalty for that format + currentScore += getParsingFlags(tempConfig).charsLeftOver; + + //or tokens + currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; + + getParsingFlags(tempConfig).score = currentScore; + + if (scoreToBeat == null || currentScore < scoreToBeat) { + scoreToBeat = currentScore; + bestMoment = tempConfig; + } + } + + extend(config, bestMoment || tempConfig); + } + + function configFromObject(config) { + if (config._d) { + return; + } + + var i = normalizeObjectUnits(config._i); + config._a = [i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond]; + + configFromArray(config); + } + + function createFromConfig (config) { + var res = new Moment(checkOverflow(prepareConfig(config))); + if (res._nextDay) { + // Adding is smart enough around DST + res.add(1, 'd'); + res._nextDay = undefined; + } + + return res; + } + + function prepareConfig (config) { + var input = config._i, + format = config._f; + + config._locale = config._locale || locale_locales__getLocale(config._l); + + if (input === null || (format === undefined && input === '')) { + return valid__createInvalid({nullInput: true}); + } + + if (typeof input === 'string') { + config._i = input = config._locale.preparse(input); + } + + if (isMoment(input)) { + return new Moment(checkOverflow(input)); + } else if (isArray(format)) { + configFromStringAndArray(config); + } else if (format) { + configFromStringAndFormat(config); + } else if (isDate(input)) { + config._d = input; + } else { + configFromInput(config); + } + + return config; + } + + function configFromInput(config) { + var input = config._i; + if (input === undefined) { + config._d = new Date(); + } else if (isDate(input)) { + config._d = new Date(+input); + } else if (typeof input === 'string') { + configFromString(config); + } else if (isArray(input)) { + config._a = map(input.slice(0), function (obj) { + return parseInt(obj, 10); + }); + configFromArray(config); + } else if (typeof(input) === 'object') { + configFromObject(config); + } else if (typeof(input) === 'number') { + // from milliseconds + config._d = new Date(input); + } else { + utils_hooks__hooks.createFromInputFallback(config); + } + } + + function createLocalOrUTC (input, format, locale, strict, isUTC) { + var c = {}; + + if (typeof(locale) === 'boolean') { + strict = locale; + locale = undefined; + } + // object construction must be done this way. + // https://github.com/moment/moment/issues/1423 + c._isAMomentObject = true; + c._useUTC = c._isUTC = isUTC; + c._l = locale; + c._i = input; + c._f = format; + c._strict = strict; + + return createFromConfig(c); + } + + function local__createLocal (input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, false); + } + + var prototypeMin = deprecate( + 'moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548', + function () { + var other = local__createLocal.apply(null, arguments); + return other < this ? this : other; + } + ); + + var prototypeMax = deprecate( + 'moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548', + function () { + var other = local__createLocal.apply(null, arguments); + return other > this ? this : other; + } + ); + + // Pick a moment m from moments so that m[fn](other) is true for all + // other. This relies on the function fn to be transitive. + // + // moments should either be an array of moment objects or an array, whose + // first element is an array of moment objects. + function pickBy(fn, moments) { + var res, i; + if (moments.length === 1 && isArray(moments[0])) { + moments = moments[0]; + } + if (!moments.length) { + return local__createLocal(); + } + res = moments[0]; + for (i = 1; i < moments.length; ++i) { + if (!moments[i].isValid() || moments[i][fn](res)) { + res = moments[i]; + } + } + return res; + } + + // TODO: Use [].sort instead? + function min () { + var args = [].slice.call(arguments, 0); + + return pickBy('isBefore', args); + } + + function max () { + var args = [].slice.call(arguments, 0); + + return pickBy('isAfter', args); + } + + function Duration (duration) { + var normalizedInput = normalizeObjectUnits(duration), + years = normalizedInput.year || 0, + quarters = normalizedInput.quarter || 0, + months = normalizedInput.month || 0, + weeks = normalizedInput.week || 0, + days = normalizedInput.day || 0, + hours = normalizedInput.hour || 0, + minutes = normalizedInput.minute || 0, + seconds = normalizedInput.second || 0, + milliseconds = normalizedInput.millisecond || 0; + + // representation for dateAddRemove + this._milliseconds = +milliseconds + + seconds * 1e3 + // 1000 + minutes * 6e4 + // 1000 * 60 + hours * 36e5; // 1000 * 60 * 60 + // Because of dateAddRemove treats 24 hours as different from a + // day when working around DST, we need to store them separately + this._days = +days + + weeks * 7; + // It is impossible translate months into days without knowing + // which months you are are talking about, so we have to store + // it separately. + this._months = +months + + quarters * 3 + + years * 12; + + this._data = {}; + + this._locale = locale_locales__getLocale(); + + this._bubble(); + } + + function isDuration (obj) { + return obj instanceof Duration; + } + + function offset (token, separator) { + addFormatToken(token, 0, 0, function () { + var offset = this.utcOffset(); + var sign = '+'; + if (offset < 0) { + offset = -offset; + sign = '-'; + } + return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2); + }); + } + + offset('Z', ':'); + offset('ZZ', ''); + + // PARSING + + addRegexToken('Z', matchOffset); + addRegexToken('ZZ', matchOffset); + addParseToken(['Z', 'ZZ'], function (input, array, config) { + config._useUTC = true; + config._tzm = offsetFromString(input); + }); + + // HELPERS + + // timezone chunker + // '+10:00' > ['10', '00'] + // '-1530' > ['-15', '30'] + var chunkOffset = /([\+\-]|\d\d)/gi; + + function offsetFromString(string) { + var matches = ((string || '').match(matchOffset) || []); + var chunk = matches[matches.length - 1] || []; + var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0]; + var minutes = +(parts[1] * 60) + toInt(parts[2]); + + return parts[0] === '+' ? minutes : -minutes; + } + + // Return a moment from input, that is local/utc/zone equivalent to model. + function cloneWithOffset(input, model) { + var res, diff; + if (model._isUTC) { + res = model.clone(); + diff = (isMoment(input) || isDate(input) ? +input : +local__createLocal(input)) - (+res); + // Use low-level api, because this fn is low-level api. + res._d.setTime(+res._d + diff); + utils_hooks__hooks.updateOffset(res, false); + return res; + } else { + return local__createLocal(input).local(); + } + } + + function getDateOffset (m) { + // On Firefox.24 Date#getTimezoneOffset returns a floating point. + // https://github.com/moment/moment/pull/1871 + return -Math.round(m._d.getTimezoneOffset() / 15) * 15; + } + + // HOOKS + + // This function will be called whenever a moment is mutated. + // It is intended to keep the offset in sync with the timezone. + utils_hooks__hooks.updateOffset = function () {}; + + // MOMENTS + + // keepLocalTime = true means only change the timezone, without + // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> + // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset + // +0200, so we adjust the time as needed, to be valid. + // + // Keeping the time actually adds/subtracts (one hour) + // from the actual represented time. That is why we call updateOffset + // a second time. In case it wants us to change the offset again + // _changeInProgress == true case, then we have to adjust, because + // there is no such time in the given timezone. + function getSetOffset (input, keepLocalTime) { + var offset = this._offset || 0, + localAdjust; + if (input != null) { + if (typeof input === 'string') { + input = offsetFromString(input); + } + if (Math.abs(input) < 16) { + input = input * 60; + } + if (!this._isUTC && keepLocalTime) { + localAdjust = getDateOffset(this); + } + this._offset = input; + this._isUTC = true; + if (localAdjust != null) { + this.add(localAdjust, 'm'); + } + if (offset !== input) { + if (!keepLocalTime || this._changeInProgress) { + add_subtract__addSubtract(this, create__createDuration(input - offset, 'm'), 1, false); + } else if (!this._changeInProgress) { + this._changeInProgress = true; + utils_hooks__hooks.updateOffset(this, true); + this._changeInProgress = null; + } + } + return this; + } else { + return this._isUTC ? offset : getDateOffset(this); + } + } + + function getSetZone (input, keepLocalTime) { + if (input != null) { + if (typeof input !== 'string') { + input = -input; + } + + this.utcOffset(input, keepLocalTime); + + return this; + } else { + return -this.utcOffset(); + } + } + + function setOffsetToUTC (keepLocalTime) { + return this.utcOffset(0, keepLocalTime); + } + + function setOffsetToLocal (keepLocalTime) { + if (this._isUTC) { + this.utcOffset(0, keepLocalTime); + this._isUTC = false; + + if (keepLocalTime) { + this.subtract(getDateOffset(this), 'm'); + } + } + return this; + } + + function setOffsetToParsedOffset () { + if (this._tzm) { + this.utcOffset(this._tzm); + } else if (typeof this._i === 'string') { + this.utcOffset(offsetFromString(this._i)); + } + return this; + } + + function hasAlignedHourOffset (input) { + input = input ? local__createLocal(input).utcOffset() : 0; + + return (this.utcOffset() - input) % 60 === 0; + } + + function isDaylightSavingTime () { + return ( + this.utcOffset() > this.clone().month(0).utcOffset() || + this.utcOffset() > this.clone().month(5).utcOffset() + ); + } + + function isDaylightSavingTimeShifted () { + if (typeof this._isDSTShifted !== 'undefined') { + return this._isDSTShifted; + } + + var c = {}; + + copyConfig(c, this); + c = prepareConfig(c); + + if (c._a) { + var other = c._isUTC ? create_utc__createUTC(c._a) : local__createLocal(c._a); + this._isDSTShifted = this.isValid() && + compareArrays(c._a, other.toArray()) > 0; + } else { + this._isDSTShifted = false; + } + + return this._isDSTShifted; + } + + function isLocal () { + return !this._isUTC; + } + + function isUtcOffset () { + return this._isUTC; + } + + function isUtc () { + return this._isUTC && this._offset === 0; + } + + var aspNetRegex = /(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/; + + // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html + // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere + var create__isoRegex = /^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/; + + function create__createDuration (input, key) { + var duration = input, + // matching against regexp is expensive, do it on demand + match = null, + sign, + ret, + diffRes; + + if (isDuration(input)) { + duration = { + ms : input._milliseconds, + d : input._days, + M : input._months + }; + } else if (typeof input === 'number') { + duration = {}; + if (key) { + duration[key] = input; + } else { + duration.milliseconds = input; + } + } else if (!!(match = aspNetRegex.exec(input))) { + sign = (match[1] === '-') ? -1 : 1; + duration = { + y : 0, + d : toInt(match[DATE]) * sign, + h : toInt(match[HOUR]) * sign, + m : toInt(match[MINUTE]) * sign, + s : toInt(match[SECOND]) * sign, + ms : toInt(match[MILLISECOND]) * sign + }; + } else if (!!(match = create__isoRegex.exec(input))) { + sign = (match[1] === '-') ? -1 : 1; + duration = { + y : parseIso(match[2], sign), + M : parseIso(match[3], sign), + d : parseIso(match[4], sign), + h : parseIso(match[5], sign), + m : parseIso(match[6], sign), + s : parseIso(match[7], sign), + w : parseIso(match[8], sign) + }; + } else if (duration == null) {// checks for null or undefined + duration = {}; + } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) { + diffRes = momentsDifference(local__createLocal(duration.from), local__createLocal(duration.to)); + + duration = {}; + duration.ms = diffRes.milliseconds; + duration.M = diffRes.months; + } + + ret = new Duration(duration); + + if (isDuration(input) && hasOwnProp(input, '_locale')) { + ret._locale = input._locale; + } + + return ret; + } + + create__createDuration.fn = Duration.prototype; + + function parseIso (inp, sign) { + // We'd normally use ~~inp for this, but unfortunately it also + // converts floats to ints. + // inp may be undefined, so careful calling replace on it. + var res = inp && parseFloat(inp.replace(',', '.')); + // apply sign while we're at it + return (isNaN(res) ? 0 : res) * sign; + } + + function positiveMomentsDifference(base, other) { + var res = {milliseconds: 0, months: 0}; + + res.months = other.month() - base.month() + + (other.year() - base.year()) * 12; + if (base.clone().add(res.months, 'M').isAfter(other)) { + --res.months; + } + + res.milliseconds = +other - +(base.clone().add(res.months, 'M')); + + return res; + } + + function momentsDifference(base, other) { + var res; + other = cloneWithOffset(other, base); + if (base.isBefore(other)) { + res = positiveMomentsDifference(base, other); + } else { + res = positiveMomentsDifference(other, base); + res.milliseconds = -res.milliseconds; + res.months = -res.months; + } + + return res; + } + + function createAdder(direction, name) { + return function (val, period) { + var dur, tmp; + //invert the arguments, but complain about it + if (period !== null && !isNaN(+period)) { + deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period).'); + tmp = val; val = period; period = tmp; + } + + val = typeof val === 'string' ? +val : val; + dur = create__createDuration(val, period); + add_subtract__addSubtract(this, dur, direction); + return this; + }; + } + + function add_subtract__addSubtract (mom, duration, isAdding, updateOffset) { + var milliseconds = duration._milliseconds, + days = duration._days, + months = duration._months; + updateOffset = updateOffset == null ? true : updateOffset; + + if (milliseconds) { + mom._d.setTime(+mom._d + milliseconds * isAdding); + } + if (days) { + get_set__set(mom, 'Date', get_set__get(mom, 'Date') + days * isAdding); + } + if (months) { + setMonth(mom, get_set__get(mom, 'Month') + months * isAdding); + } + if (updateOffset) { + utils_hooks__hooks.updateOffset(mom, days || months); + } + } + + var add_subtract__add = createAdder(1, 'add'); + var add_subtract__subtract = createAdder(-1, 'subtract'); + + function moment_calendar__calendar (time, formats) { + // We want to compare the start of today, vs this. + // Getting start-of-today depends on whether we're local/utc/offset or not. + var now = time || local__createLocal(), + sod = cloneWithOffset(now, this).startOf('day'), + diff = this.diff(sod, 'days', true), + format = diff < -6 ? 'sameElse' : + diff < -1 ? 'lastWeek' : + diff < 0 ? 'lastDay' : + diff < 1 ? 'sameDay' : + diff < 2 ? 'nextDay' : + diff < 7 ? 'nextWeek' : 'sameElse'; + return this.format(formats && formats[format] || this.localeData().calendar(format, this, local__createLocal(now))); + } + + function clone () { + return new Moment(this); + } + + function isAfter (input, units) { + var inputMs; + units = normalizeUnits(typeof units !== 'undefined' ? units : 'millisecond'); + if (units === 'millisecond') { + input = isMoment(input) ? input : local__createLocal(input); + return +this > +input; + } else { + inputMs = isMoment(input) ? +input : +local__createLocal(input); + return inputMs < +this.clone().startOf(units); + } + } + + function isBefore (input, units) { + var inputMs; + units = normalizeUnits(typeof units !== 'undefined' ? units : 'millisecond'); + if (units === 'millisecond') { + input = isMoment(input) ? input : local__createLocal(input); + return +this < +input; + } else { + inputMs = isMoment(input) ? +input : +local__createLocal(input); + return +this.clone().endOf(units) < inputMs; + } + } + + function isBetween (from, to, units) { + return this.isAfter(from, units) && this.isBefore(to, units); + } + + function isSame (input, units) { + var inputMs; + units = normalizeUnits(units || 'millisecond'); + if (units === 'millisecond') { + input = isMoment(input) ? input : local__createLocal(input); + return +this === +input; + } else { + inputMs = +local__createLocal(input); + return +(this.clone().startOf(units)) <= inputMs && inputMs <= +(this.clone().endOf(units)); + } + } + + function diff (input, units, asFloat) { + var that = cloneWithOffset(input, this), + zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4, + delta, output; + + units = normalizeUnits(units); + + if (units === 'year' || units === 'month' || units === 'quarter') { + output = monthDiff(this, that); + if (units === 'quarter') { + output = output / 3; + } else if (units === 'year') { + output = output / 12; + } + } else { + delta = this - that; + output = units === 'second' ? delta / 1e3 : // 1000 + units === 'minute' ? delta / 6e4 : // 1000 * 60 + units === 'hour' ? delta / 36e5 : // 1000 * 60 * 60 + units === 'day' ? (delta - zoneDelta) / 864e5 : // 1000 * 60 * 60 * 24, negate dst + units === 'week' ? (delta - zoneDelta) / 6048e5 : // 1000 * 60 * 60 * 24 * 7, negate dst + delta; + } + return asFloat ? output : absFloor(output); + } + + function monthDiff (a, b) { + // difference in months + var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()), + // b is in (anchor - 1 month, anchor + 1 month) + anchor = a.clone().add(wholeMonthDiff, 'months'), + anchor2, adjust; + + if (b - anchor < 0) { + anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor - anchor2); + } else { + anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor2 - anchor); + } + + return -(wholeMonthDiff + adjust); + } + + utils_hooks__hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'; + + function toString () { + return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); + } + + function moment_format__toISOString () { + var m = this.clone().utc(); + if (0 < m.year() && m.year() <= 9999) { + if ('function' === typeof Date.prototype.toISOString) { + // native implementation is ~50x faster, use it when we can + return this.toDate().toISOString(); + } else { + return formatMoment(m, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); + } + } else { + return formatMoment(m, 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); + } + } + + function format (inputString) { + var output = formatMoment(this, inputString || utils_hooks__hooks.defaultFormat); + return this.localeData().postformat(output); + } + + function from (time, withoutSuffix) { + if (!this.isValid()) { + return this.localeData().invalidDate(); + } + return create__createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix); + } + + function fromNow (withoutSuffix) { + return this.from(local__createLocal(), withoutSuffix); + } + + function to (time, withoutSuffix) { + if (!this.isValid()) { + return this.localeData().invalidDate(); + } + return create__createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix); + } + + function toNow (withoutSuffix) { + return this.to(local__createLocal(), withoutSuffix); + } + + function locale (key) { + var newLocaleData; + + if (key === undefined) { + return this._locale._abbr; + } else { + newLocaleData = locale_locales__getLocale(key); + if (newLocaleData != null) { + this._locale = newLocaleData; + } + return this; + } + } + + var lang = deprecate( + 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', + function (key) { + if (key === undefined) { + return this.localeData(); + } else { + return this.locale(key); + } + } + ); + + function localeData () { + return this._locale; + } + + function startOf (units) { + units = normalizeUnits(units); + // the following switch intentionally omits break keywords + // to utilize falling through the cases. + switch (units) { + case 'year': + this.month(0); + /* falls through */ + case 'quarter': + case 'month': + this.date(1); + /* falls through */ + case 'week': + case 'isoWeek': + case 'day': + this.hours(0); + /* falls through */ + case 'hour': + this.minutes(0); + /* falls through */ + case 'minute': + this.seconds(0); + /* falls through */ + case 'second': + this.milliseconds(0); + } + + // weeks are a special case + if (units === 'week') { + this.weekday(0); + } + if (units === 'isoWeek') { + this.isoWeekday(1); + } + + // quarters are also special + if (units === 'quarter') { + this.month(Math.floor(this.month() / 3) * 3); + } + + return this; + } + + function endOf (units) { + units = normalizeUnits(units); + if (units === undefined || units === 'millisecond') { + return this; + } + return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms'); + } + + function to_type__valueOf () { + return +this._d - ((this._offset || 0) * 60000); + } + + function unix () { + return Math.floor(+this / 1000); + } + + function toDate () { + return this._offset ? new Date(+this) : this._d; + } + + function toArray () { + var m = this; + return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()]; + } + + function toObject () { + var m = this; + return { + years: m.year(), + months: m.month(), + date: m.date(), + hours: m.hours(), + minutes: m.minutes(), + seconds: m.seconds(), + milliseconds: m.milliseconds() + }; + } + + function moment_valid__isValid () { + return valid__isValid(this); + } + + function parsingFlags () { + return extend({}, getParsingFlags(this)); + } + + function invalidAt () { + return getParsingFlags(this).overflow; + } + + addFormatToken(0, ['gg', 2], 0, function () { + return this.weekYear() % 100; + }); + + addFormatToken(0, ['GG', 2], 0, function () { + return this.isoWeekYear() % 100; + }); + + function addWeekYearFormatToken (token, getter) { + addFormatToken(0, [token, token.length], 0, getter); + } + + addWeekYearFormatToken('gggg', 'weekYear'); + addWeekYearFormatToken('ggggg', 'weekYear'); + addWeekYearFormatToken('GGGG', 'isoWeekYear'); + addWeekYearFormatToken('GGGGG', 'isoWeekYear'); + + // ALIASES + + addUnitAlias('weekYear', 'gg'); + addUnitAlias('isoWeekYear', 'GG'); + + // PARSING + + addRegexToken('G', matchSigned); + addRegexToken('g', matchSigned); + addRegexToken('GG', match1to2, match2); + addRegexToken('gg', match1to2, match2); + addRegexToken('GGGG', match1to4, match4); + addRegexToken('gggg', match1to4, match4); + addRegexToken('GGGGG', match1to6, match6); + addRegexToken('ggggg', match1to6, match6); + + addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) { + week[token.substr(0, 2)] = toInt(input); + }); + + addWeekParseToken(['gg', 'GG'], function (input, week, config, token) { + week[token] = utils_hooks__hooks.parseTwoDigitYear(input); + }); + + // HELPERS + + function weeksInYear(year, dow, doy) { + return weekOfYear(local__createLocal([year, 11, 31 + dow - doy]), dow, doy).week; + } + + // MOMENTS + + function getSetWeekYear (input) { + var year = weekOfYear(this, this.localeData()._week.dow, this.localeData()._week.doy).year; + return input == null ? year : this.add((input - year), 'y'); + } + + function getSetISOWeekYear (input) { + var year = weekOfYear(this, 1, 4).year; + return input == null ? year : this.add((input - year), 'y'); + } + + function getISOWeeksInYear () { + return weeksInYear(this.year(), 1, 4); + } + + function getWeeksInYear () { + var weekInfo = this.localeData()._week; + return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); + } + + addFormatToken('Q', 0, 0, 'quarter'); + + // ALIASES + + addUnitAlias('quarter', 'Q'); + + // PARSING + + addRegexToken('Q', match1); + addParseToken('Q', function (input, array) { + array[MONTH] = (toInt(input) - 1) * 3; + }); + + // MOMENTS + + function getSetQuarter (input) { + return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3); + } + + addFormatToken('D', ['DD', 2], 'Do', 'date'); + + // ALIASES + + addUnitAlias('date', 'D'); + + // PARSING + + addRegexToken('D', match1to2); + addRegexToken('DD', match1to2, match2); + addRegexToken('Do', function (isStrict, locale) { + return isStrict ? locale._ordinalParse : locale._ordinalParseLenient; + }); + + addParseToken(['D', 'DD'], DATE); + addParseToken('Do', function (input, array) { + array[DATE] = toInt(input.match(match1to2)[0], 10); + }); + + // MOMENTS + + var getSetDayOfMonth = makeGetSet('Date', true); + + addFormatToken('d', 0, 'do', 'day'); + + addFormatToken('dd', 0, 0, function (format) { + return this.localeData().weekdaysMin(this, format); + }); + + addFormatToken('ddd', 0, 0, function (format) { + return this.localeData().weekdaysShort(this, format); + }); + + addFormatToken('dddd', 0, 0, function (format) { + return this.localeData().weekdays(this, format); + }); + + addFormatToken('e', 0, 0, 'weekday'); + addFormatToken('E', 0, 0, 'isoWeekday'); + + // ALIASES + + addUnitAlias('day', 'd'); + addUnitAlias('weekday', 'e'); + addUnitAlias('isoWeekday', 'E'); + + // PARSING + + addRegexToken('d', match1to2); + addRegexToken('e', match1to2); + addRegexToken('E', match1to2); + addRegexToken('dd', matchWord); + addRegexToken('ddd', matchWord); + addRegexToken('dddd', matchWord); + + addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config) { + var weekday = config._locale.weekdaysParse(input); + // if we didn't get a weekday name, mark the date as invalid + if (weekday != null) { + week.d = weekday; + } else { + getParsingFlags(config).invalidWeekday = input; + } + }); + + addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) { + week[token] = toInt(input); + }); + + // HELPERS + + function parseWeekday(input, locale) { + if (typeof input !== 'string') { + return input; + } + + if (!isNaN(input)) { + return parseInt(input, 10); + } + + input = locale.weekdaysParse(input); + if (typeof input === 'number') { + return input; + } + + return null; + } + + // LOCALES + + var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'); + function localeWeekdays (m) { + return this._weekdays[m.day()]; + } + + var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'); + function localeWeekdaysShort (m) { + return this._weekdaysShort[m.day()]; + } + + var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'); + function localeWeekdaysMin (m) { + return this._weekdaysMin[m.day()]; + } + + function localeWeekdaysParse (weekdayName) { + var i, mom, regex; + + this._weekdaysParse = this._weekdaysParse || []; + + for (i = 0; i < 7; i++) { + // make the regex if we don't have it already + if (!this._weekdaysParse[i]) { + mom = local__createLocal([2000, 1]).day(i); + regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, ''); + this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if (this._weekdaysParse[i].test(weekdayName)) { + return i; + } + } + } + + // MOMENTS + + function getSetDayOfWeek (input) { + var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); + if (input != null) { + input = parseWeekday(input, this.localeData()); + return this.add(input - day, 'd'); + } else { + return day; + } + } + + function getSetLocaleDayOfWeek (input) { + var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; + return input == null ? weekday : this.add(input - weekday, 'd'); + } + + function getSetISODayOfWeek (input) { + // behaves the same as moment#day except + // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) + // as a setter, sunday should belong to the previous week. + return input == null ? this.day() || 7 : this.day(this.day() % 7 ? input : input - 7); + } + + addFormatToken('H', ['HH', 2], 0, 'hour'); + addFormatToken('h', ['hh', 2], 0, function () { + return this.hours() % 12 || 12; + }); + + function meridiem (token, lowercase) { + addFormatToken(token, 0, 0, function () { + return this.localeData().meridiem(this.hours(), this.minutes(), lowercase); + }); + } + + meridiem('a', true); + meridiem('A', false); + + // ALIASES + + addUnitAlias('hour', 'h'); + + // PARSING + + function matchMeridiem (isStrict, locale) { + return locale._meridiemParse; + } + + addRegexToken('a', matchMeridiem); + addRegexToken('A', matchMeridiem); + addRegexToken('H', match1to2); + addRegexToken('h', match1to2); + addRegexToken('HH', match1to2, match2); + addRegexToken('hh', match1to2, match2); + + addParseToken(['H', 'HH'], HOUR); + addParseToken(['a', 'A'], function (input, array, config) { + config._isPm = config._locale.isPM(input); + config._meridiem = input; + }); + addParseToken(['h', 'hh'], function (input, array, config) { + array[HOUR] = toInt(input); + getParsingFlags(config).bigHour = true; + }); + + // LOCALES + + function localeIsPM (input) { + // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays + // Using charAt should be more compatible. + return ((input + '').toLowerCase().charAt(0) === 'p'); + } + + var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i; + function localeMeridiem (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'pm' : 'PM'; + } else { + return isLower ? 'am' : 'AM'; + } + } + + + // MOMENTS + + // Setting the hour should keep the time, because the user explicitly + // specified which hour he wants. So trying to maintain the same hour (in + // a new timezone) makes sense. Adding/subtracting hours does not follow + // this rule. + var getSetHour = makeGetSet('Hours', true); + + addFormatToken('m', ['mm', 2], 0, 'minute'); + + // ALIASES + + addUnitAlias('minute', 'm'); + + // PARSING + + addRegexToken('m', match1to2); + addRegexToken('mm', match1to2, match2); + addParseToken(['m', 'mm'], MINUTE); + + // MOMENTS + + var getSetMinute = makeGetSet('Minutes', false); + + addFormatToken('s', ['ss', 2], 0, 'second'); + + // ALIASES + + addUnitAlias('second', 's'); + + // PARSING + + addRegexToken('s', match1to2); + addRegexToken('ss', match1to2, match2); + addParseToken(['s', 'ss'], SECOND); + + // MOMENTS + + var getSetSecond = makeGetSet('Seconds', false); + + addFormatToken('S', 0, 0, function () { + return ~~(this.millisecond() / 100); + }); + + addFormatToken(0, ['SS', 2], 0, function () { + return ~~(this.millisecond() / 10); + }); + + addFormatToken(0, ['SSS', 3], 0, 'millisecond'); + addFormatToken(0, ['SSSS', 4], 0, function () { + return this.millisecond() * 10; + }); + addFormatToken(0, ['SSSSS', 5], 0, function () { + return this.millisecond() * 100; + }); + addFormatToken(0, ['SSSSSS', 6], 0, function () { + return this.millisecond() * 1000; + }); + addFormatToken(0, ['SSSSSSS', 7], 0, function () { + return this.millisecond() * 10000; + }); + addFormatToken(0, ['SSSSSSSS', 8], 0, function () { + return this.millisecond() * 100000; + }); + addFormatToken(0, ['SSSSSSSSS', 9], 0, function () { + return this.millisecond() * 1000000; + }); + + + // ALIASES + + addUnitAlias('millisecond', 'ms'); + + // PARSING + + addRegexToken('S', match1to3, match1); + addRegexToken('SS', match1to3, match2); + addRegexToken('SSS', match1to3, match3); + + var token; + for (token = 'SSSS'; token.length <= 9; token += 'S') { + addRegexToken(token, matchUnsigned); + } + + function parseMs(input, array) { + array[MILLISECOND] = toInt(('0.' + input) * 1000); + } + + for (token = 'S'; token.length <= 9; token += 'S') { + addParseToken(token, parseMs); + } + // MOMENTS + + var getSetMillisecond = makeGetSet('Milliseconds', false); + + addFormatToken('z', 0, 0, 'zoneAbbr'); + addFormatToken('zz', 0, 0, 'zoneName'); + + // MOMENTS + + function getZoneAbbr () { + return this._isUTC ? 'UTC' : ''; + } + + function getZoneName () { + return this._isUTC ? 'Coordinated Universal Time' : ''; + } + + var momentPrototype__proto = Moment.prototype; + + momentPrototype__proto.add = add_subtract__add; + momentPrototype__proto.calendar = moment_calendar__calendar; + momentPrototype__proto.clone = clone; + momentPrototype__proto.diff = diff; + momentPrototype__proto.endOf = endOf; + momentPrototype__proto.format = format; + momentPrototype__proto.from = from; + momentPrototype__proto.fromNow = fromNow; + momentPrototype__proto.to = to; + momentPrototype__proto.toNow = toNow; + momentPrototype__proto.get = getSet; + momentPrototype__proto.invalidAt = invalidAt; + momentPrototype__proto.isAfter = isAfter; + momentPrototype__proto.isBefore = isBefore; + momentPrototype__proto.isBetween = isBetween; + momentPrototype__proto.isSame = isSame; + momentPrototype__proto.isValid = moment_valid__isValid; + momentPrototype__proto.lang = lang; + momentPrototype__proto.locale = locale; + momentPrototype__proto.localeData = localeData; + momentPrototype__proto.max = prototypeMax; + momentPrototype__proto.min = prototypeMin; + momentPrototype__proto.parsingFlags = parsingFlags; + momentPrototype__proto.set = getSet; + momentPrototype__proto.startOf = startOf; + momentPrototype__proto.subtract = add_subtract__subtract; + momentPrototype__proto.toArray = toArray; + momentPrototype__proto.toObject = toObject; + momentPrototype__proto.toDate = toDate; + momentPrototype__proto.toISOString = moment_format__toISOString; + momentPrototype__proto.toJSON = moment_format__toISOString; + momentPrototype__proto.toString = toString; + momentPrototype__proto.unix = unix; + momentPrototype__proto.valueOf = to_type__valueOf; + + // Year + momentPrototype__proto.year = getSetYear; + momentPrototype__proto.isLeapYear = getIsLeapYear; + + // Week Year + momentPrototype__proto.weekYear = getSetWeekYear; + momentPrototype__proto.isoWeekYear = getSetISOWeekYear; + + // Quarter + momentPrototype__proto.quarter = momentPrototype__proto.quarters = getSetQuarter; + + // Month + momentPrototype__proto.month = getSetMonth; + momentPrototype__proto.daysInMonth = getDaysInMonth; + + // Week + momentPrototype__proto.week = momentPrototype__proto.weeks = getSetWeek; + momentPrototype__proto.isoWeek = momentPrototype__proto.isoWeeks = getSetISOWeek; + momentPrototype__proto.weeksInYear = getWeeksInYear; + momentPrototype__proto.isoWeeksInYear = getISOWeeksInYear; + + // Day + momentPrototype__proto.date = getSetDayOfMonth; + momentPrototype__proto.day = momentPrototype__proto.days = getSetDayOfWeek; + momentPrototype__proto.weekday = getSetLocaleDayOfWeek; + momentPrototype__proto.isoWeekday = getSetISODayOfWeek; + momentPrototype__proto.dayOfYear = getSetDayOfYear; + + // Hour + momentPrototype__proto.hour = momentPrototype__proto.hours = getSetHour; + + // Minute + momentPrototype__proto.minute = momentPrototype__proto.minutes = getSetMinute; + + // Second + momentPrototype__proto.second = momentPrototype__proto.seconds = getSetSecond; + + // Millisecond + momentPrototype__proto.millisecond = momentPrototype__proto.milliseconds = getSetMillisecond; + + // Offset + momentPrototype__proto.utcOffset = getSetOffset; + momentPrototype__proto.utc = setOffsetToUTC; + momentPrototype__proto.local = setOffsetToLocal; + momentPrototype__proto.parseZone = setOffsetToParsedOffset; + momentPrototype__proto.hasAlignedHourOffset = hasAlignedHourOffset; + momentPrototype__proto.isDST = isDaylightSavingTime; + momentPrototype__proto.isDSTShifted = isDaylightSavingTimeShifted; + momentPrototype__proto.isLocal = isLocal; + momentPrototype__proto.isUtcOffset = isUtcOffset; + momentPrototype__proto.isUtc = isUtc; + momentPrototype__proto.isUTC = isUtc; + + // Timezone + momentPrototype__proto.zoneAbbr = getZoneAbbr; + momentPrototype__proto.zoneName = getZoneName; + + // Deprecations + momentPrototype__proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth); + momentPrototype__proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth); + momentPrototype__proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear); + momentPrototype__proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779', getSetZone); + + var momentPrototype = momentPrototype__proto; + + function moment__createUnix (input) { + return local__createLocal(input * 1000); + } + + function moment__createInZone () { + return local__createLocal.apply(null, arguments).parseZone(); + } + + var defaultCalendar = { + sameDay : '[Today at] LT', + nextDay : '[Tomorrow at] LT', + nextWeek : 'dddd [at] LT', + lastDay : '[Yesterday at] LT', + lastWeek : '[Last] dddd [at] LT', + sameElse : 'L' + }; + + function locale_calendar__calendar (key, mom, now) { + var output = this._calendar[key]; + return typeof output === 'function' ? output.call(mom, now) : output; + } + + var defaultLongDateFormat = { + LTS : 'h:mm:ss A', + LT : 'h:mm A', + L : 'MM/DD/YYYY', + LL : 'MMMM D, YYYY', + LLL : 'MMMM D, YYYY h:mm A', + LLLL : 'dddd, MMMM D, YYYY h:mm A' + }; + + function longDateFormat (key) { + var format = this._longDateFormat[key], + formatUpper = this._longDateFormat[key.toUpperCase()]; + + if (format || !formatUpper) { + return format; + } + + this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) { + return val.slice(1); + }); + + return this._longDateFormat[key]; + } + + var defaultInvalidDate = 'Invalid date'; + + function invalidDate () { + return this._invalidDate; + } + + var defaultOrdinal = '%d'; + var defaultOrdinalParse = /\d{1,2}/; + + function ordinal (number) { + return this._ordinal.replace('%d', number); + } + + function preParsePostFormat (string) { + return string; + } + + var defaultRelativeTime = { + future : 'in %s', + past : '%s ago', + s : 'a few seconds', + m : 'a minute', + mm : '%d minutes', + h : 'an hour', + hh : '%d hours', + d : 'a day', + dd : '%d days', + M : 'a month', + MM : '%d months', + y : 'a year', + yy : '%d years' + }; + + function relative__relativeTime (number, withoutSuffix, string, isFuture) { + var output = this._relativeTime[string]; + return (typeof output === 'function') ? + output(number, withoutSuffix, string, isFuture) : + output.replace(/%d/i, number); + } + + function pastFuture (diff, output) { + var format = this._relativeTime[diff > 0 ? 'future' : 'past']; + return typeof format === 'function' ? format(output) : format.replace(/%s/i, output); + } + + function locale_set__set (config) { + var prop, i; + for (i in config) { + prop = config[i]; + if (typeof prop === 'function') { + this[i] = prop; + } else { + this['_' + i] = prop; + } + } + // Lenient ordinal parsing accepts just a number in addition to + // number + (possibly) stuff coming from _ordinalParseLenient. + this._ordinalParseLenient = new RegExp(this._ordinalParse.source + '|' + (/\d{1,2}/).source); + } + + var prototype__proto = Locale.prototype; + + prototype__proto._calendar = defaultCalendar; + prototype__proto.calendar = locale_calendar__calendar; + prototype__proto._longDateFormat = defaultLongDateFormat; + prototype__proto.longDateFormat = longDateFormat; + prototype__proto._invalidDate = defaultInvalidDate; + prototype__proto.invalidDate = invalidDate; + prototype__proto._ordinal = defaultOrdinal; + prototype__proto.ordinal = ordinal; + prototype__proto._ordinalParse = defaultOrdinalParse; + prototype__proto.preparse = preParsePostFormat; + prototype__proto.postformat = preParsePostFormat; + prototype__proto._relativeTime = defaultRelativeTime; + prototype__proto.relativeTime = relative__relativeTime; + prototype__proto.pastFuture = pastFuture; + prototype__proto.set = locale_set__set; + + // Month + prototype__proto.months = localeMonths; + prototype__proto._months = defaultLocaleMonths; + prototype__proto.monthsShort = localeMonthsShort; + prototype__proto._monthsShort = defaultLocaleMonthsShort; + prototype__proto.monthsParse = localeMonthsParse; + + // Week + prototype__proto.week = localeWeek; + prototype__proto._week = defaultLocaleWeek; + prototype__proto.firstDayOfYear = localeFirstDayOfYear; + prototype__proto.firstDayOfWeek = localeFirstDayOfWeek; + + // Day of Week + prototype__proto.weekdays = localeWeekdays; + prototype__proto._weekdays = defaultLocaleWeekdays; + prototype__proto.weekdaysMin = localeWeekdaysMin; + prototype__proto._weekdaysMin = defaultLocaleWeekdaysMin; + prototype__proto.weekdaysShort = localeWeekdaysShort; + prototype__proto._weekdaysShort = defaultLocaleWeekdaysShort; + prototype__proto.weekdaysParse = localeWeekdaysParse; + + // Hours + prototype__proto.isPM = localeIsPM; + prototype__proto._meridiemParse = defaultLocaleMeridiemParse; + prototype__proto.meridiem = localeMeridiem; + + function lists__get (format, index, field, setter) { + var locale = locale_locales__getLocale(); + var utc = create_utc__createUTC().set(setter, index); + return locale[field](utc, format); + } + + function list (format, index, field, count, setter) { + if (typeof format === 'number') { + index = format; + format = undefined; + } + + format = format || ''; + + if (index != null) { + return lists__get(format, index, field, setter); + } + + var i; + var out = []; + for (i = 0; i < count; i++) { + out[i] = lists__get(format, i, field, setter); + } + return out; + } + + function lists__listMonths (format, index) { + return list(format, index, 'months', 12, 'month'); + } + + function lists__listMonthsShort (format, index) { + return list(format, index, 'monthsShort', 12, 'month'); + } + + function lists__listWeekdays (format, index) { + return list(format, index, 'weekdays', 7, 'day'); + } + + function lists__listWeekdaysShort (format, index) { + return list(format, index, 'weekdaysShort', 7, 'day'); + } + + function lists__listWeekdaysMin (format, index) { + return list(format, index, 'weekdaysMin', 7, 'day'); + } + + locale_locales__getSetGlobalLocale('en', { + ordinalParse: /\d{1,2}(th|st|nd|rd)/, + ordinal : function (number) { + var b = number % 10, + output = (toInt(number % 100 / 10) === 1) ? 'th' : + (b === 1) ? 'st' : + (b === 2) ? 'nd' : + (b === 3) ? 'rd' : 'th'; + return number + output; + } + }); + + // Side effect imports + utils_hooks__hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', locale_locales__getSetGlobalLocale); + utils_hooks__hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', locale_locales__getLocale); + + var mathAbs = Math.abs; + + function duration_abs__abs () { + var data = this._data; + + this._milliseconds = mathAbs(this._milliseconds); + this._days = mathAbs(this._days); + this._months = mathAbs(this._months); + + data.milliseconds = mathAbs(data.milliseconds); + data.seconds = mathAbs(data.seconds); + data.minutes = mathAbs(data.minutes); + data.hours = mathAbs(data.hours); + data.months = mathAbs(data.months); + data.years = mathAbs(data.years); + + return this; + } + + function duration_add_subtract__addSubtract (duration, input, value, direction) { + var other = create__createDuration(input, value); + + duration._milliseconds += direction * other._milliseconds; + duration._days += direction * other._days; + duration._months += direction * other._months; + + return duration._bubble(); + } + + // supports only 2.0-style add(1, 's') or add(duration) + function duration_add_subtract__add (input, value) { + return duration_add_subtract__addSubtract(this, input, value, 1); + } + + // supports only 2.0-style subtract(1, 's') or subtract(duration) + function duration_add_subtract__subtract (input, value) { + return duration_add_subtract__addSubtract(this, input, value, -1); + } + + function absCeil (number) { + if (number < 0) { + return Math.floor(number); + } else { + return Math.ceil(number); + } + } + + function bubble () { + var milliseconds = this._milliseconds; + var days = this._days; + var months = this._months; + var data = this._data; + var seconds, minutes, hours, years, monthsFromDays; + + // if we have a mix of positive and negative values, bubble down first + // check: https://github.com/moment/moment/issues/2166 + if (!((milliseconds >= 0 && days >= 0 && months >= 0) || + (milliseconds <= 0 && days <= 0 && months <= 0))) { + milliseconds += absCeil(monthsToDays(months) + days) * 864e5; + days = 0; + months = 0; + } + + // The following code bubbles up values, see the tests for + // examples of what that means. + data.milliseconds = milliseconds % 1000; + + seconds = absFloor(milliseconds / 1000); + data.seconds = seconds % 60; + + minutes = absFloor(seconds / 60); + data.minutes = minutes % 60; + + hours = absFloor(minutes / 60); + data.hours = hours % 24; + + days += absFloor(hours / 24); + + // convert days to months + monthsFromDays = absFloor(daysToMonths(days)); + months += monthsFromDays; + days -= absCeil(monthsToDays(monthsFromDays)); + + // 12 months -> 1 year + years = absFloor(months / 12); + months %= 12; + + data.days = days; + data.months = months; + data.years = years; + + return this; + } + + function daysToMonths (days) { + // 400 years have 146097 days (taking into account leap year rules) + // 400 years have 12 months === 4800 + return days * 4800 / 146097; + } + + function monthsToDays (months) { + // the reverse of daysToMonths + return months * 146097 / 4800; + } + + function as (units) { + var days; + var months; + var milliseconds = this._milliseconds; + + units = normalizeUnits(units); + + if (units === 'month' || units === 'year') { + days = this._days + milliseconds / 864e5; + months = this._months + daysToMonths(days); + return units === 'month' ? months : months / 12; + } else { + // handle milliseconds separately because of floating point math errors (issue #1867) + days = this._days + Math.round(monthsToDays(this._months)); + switch (units) { + case 'week' : return days / 7 + milliseconds / 6048e5; + case 'day' : return days + milliseconds / 864e5; + case 'hour' : return days * 24 + milliseconds / 36e5; + case 'minute' : return days * 1440 + milliseconds / 6e4; + case 'second' : return days * 86400 + milliseconds / 1000; + // Math.floor prevents floating point math errors here + case 'millisecond': return Math.floor(days * 864e5) + milliseconds; + default: throw new Error('Unknown unit ' + units); + } + } + } + + // TODO: Use this.as('ms')? + function duration_as__valueOf () { + return ( + this._milliseconds + + this._days * 864e5 + + (this._months % 12) * 2592e6 + + toInt(this._months / 12) * 31536e6 + ); + } + + function makeAs (alias) { + return function () { + return this.as(alias); + }; + } + + var asMilliseconds = makeAs('ms'); + var asSeconds = makeAs('s'); + var asMinutes = makeAs('m'); + var asHours = makeAs('h'); + var asDays = makeAs('d'); + var asWeeks = makeAs('w'); + var asMonths = makeAs('M'); + var asYears = makeAs('y'); + + function duration_get__get (units) { + units = normalizeUnits(units); + return this[units + 's'](); + } + + function makeGetter(name) { + return function () { + return this._data[name]; + }; + } + + var milliseconds = makeGetter('milliseconds'); + var seconds = makeGetter('seconds'); + var minutes = makeGetter('minutes'); + var hours = makeGetter('hours'); + var days = makeGetter('days'); + var months = makeGetter('months'); + var years = makeGetter('years'); + + function weeks () { + return absFloor(this.days() / 7); + } + + var round = Math.round; + var thresholds = { + s: 45, // seconds to minute + m: 45, // minutes to hour + h: 22, // hours to day + d: 26, // days to month + M: 11 // months to year + }; + + // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize + function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { + return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); + } + + function duration_humanize__relativeTime (posNegDuration, withoutSuffix, locale) { + var duration = create__createDuration(posNegDuration).abs(); + var seconds = round(duration.as('s')); + var minutes = round(duration.as('m')); + var hours = round(duration.as('h')); + var days = round(duration.as('d')); + var months = round(duration.as('M')); + var years = round(duration.as('y')); + + var a = seconds < thresholds.s && ['s', seconds] || + minutes === 1 && ['m'] || + minutes < thresholds.m && ['mm', minutes] || + hours === 1 && ['h'] || + hours < thresholds.h && ['hh', hours] || + days === 1 && ['d'] || + days < thresholds.d && ['dd', days] || + months === 1 && ['M'] || + months < thresholds.M && ['MM', months] || + years === 1 && ['y'] || ['yy', years]; + + a[2] = withoutSuffix; + a[3] = +posNegDuration > 0; + a[4] = locale; + return substituteTimeAgo.apply(null, a); + } + + // This function allows you to set a threshold for relative time strings + function duration_humanize__getSetRelativeTimeThreshold (threshold, limit) { + if (thresholds[threshold] === undefined) { + return false; + } + if (limit === undefined) { + return thresholds[threshold]; + } + thresholds[threshold] = limit; + return true; + } + + function humanize (withSuffix) { + var locale = this.localeData(); + var output = duration_humanize__relativeTime(this, !withSuffix, locale); + + if (withSuffix) { + output = locale.pastFuture(+this, output); + } + + return locale.postformat(output); + } + + var iso_string__abs = Math.abs; + + function iso_string__toISOString() { + // for ISO strings we do not use the normal bubbling rules: + // * milliseconds bubble up until they become hours + // * days do not bubble at all + // * months bubble up until they become years + // This is because there is no context-free conversion between hours and days + // (think of clock changes) + // and also not between days and months (28-31 days per month) + var seconds = iso_string__abs(this._milliseconds) / 1000; + var days = iso_string__abs(this._days); + var months = iso_string__abs(this._months); + var minutes, hours, years; + + // 3600 seconds -> 60 minutes -> 1 hour + minutes = absFloor(seconds / 60); + hours = absFloor(minutes / 60); + seconds %= 60; + minutes %= 60; + + // 12 months -> 1 year + years = absFloor(months / 12); + months %= 12; + + + // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js + var Y = years; + var M = months; + var D = days; + var h = hours; + var m = minutes; + var s = seconds; + var total = this.asSeconds(); + + if (!total) { + // this is the same as C#'s (Noda) and python (isodate)... + // but not other JS (goog.date) + return 'P0D'; + } + + return (total < 0 ? '-' : '') + + 'P' + + (Y ? Y + 'Y' : '') + + (M ? M + 'M' : '') + + (D ? D + 'D' : '') + + ((h || m || s) ? 'T' : '') + + (h ? h + 'H' : '') + + (m ? m + 'M' : '') + + (s ? s + 'S' : ''); + } + + var duration_prototype__proto = Duration.prototype; + + duration_prototype__proto.abs = duration_abs__abs; + duration_prototype__proto.add = duration_add_subtract__add; + duration_prototype__proto.subtract = duration_add_subtract__subtract; + duration_prototype__proto.as = as; + duration_prototype__proto.asMilliseconds = asMilliseconds; + duration_prototype__proto.asSeconds = asSeconds; + duration_prototype__proto.asMinutes = asMinutes; + duration_prototype__proto.asHours = asHours; + duration_prototype__proto.asDays = asDays; + duration_prototype__proto.asWeeks = asWeeks; + duration_prototype__proto.asMonths = asMonths; + duration_prototype__proto.asYears = asYears; + duration_prototype__proto.valueOf = duration_as__valueOf; + duration_prototype__proto._bubble = bubble; + duration_prototype__proto.get = duration_get__get; + duration_prototype__proto.milliseconds = milliseconds; + duration_prototype__proto.seconds = seconds; + duration_prototype__proto.minutes = minutes; + duration_prototype__proto.hours = hours; + duration_prototype__proto.days = days; + duration_prototype__proto.weeks = weeks; + duration_prototype__proto.months = months; + duration_prototype__proto.years = years; + duration_prototype__proto.humanize = humanize; + duration_prototype__proto.toISOString = iso_string__toISOString; + duration_prototype__proto.toString = iso_string__toISOString; + duration_prototype__proto.toJSON = iso_string__toISOString; + duration_prototype__proto.locale = locale; + duration_prototype__proto.localeData = localeData; + + // Deprecations + duration_prototype__proto.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', iso_string__toISOString); + duration_prototype__proto.lang = lang; + + // Side effect imports + + addFormatToken('X', 0, 0, 'unix'); + addFormatToken('x', 0, 0, 'valueOf'); + + // PARSING + + addRegexToken('x', matchSigned); + addRegexToken('X', matchTimestamp); + addParseToken('X', function (input, array, config) { + config._d = new Date(parseFloat(input, 10) * 1000); + }); + addParseToken('x', function (input, array, config) { + config._d = new Date(toInt(input)); + }); + + // Side effect imports + + + utils_hooks__hooks.version = '2.10.6'; + + setHookCallback(local__createLocal); + + utils_hooks__hooks.fn = momentPrototype; + utils_hooks__hooks.min = min; + utils_hooks__hooks.max = max; + utils_hooks__hooks.utc = create_utc__createUTC; + utils_hooks__hooks.unix = moment__createUnix; + utils_hooks__hooks.months = lists__listMonths; + utils_hooks__hooks.isDate = isDate; + utils_hooks__hooks.locale = locale_locales__getSetGlobalLocale; + utils_hooks__hooks.invalid = valid__createInvalid; + utils_hooks__hooks.duration = create__createDuration; + utils_hooks__hooks.isMoment = isMoment; + utils_hooks__hooks.weekdays = lists__listWeekdays; + utils_hooks__hooks.parseZone = moment__createInZone; + utils_hooks__hooks.localeData = locale_locales__getLocale; + utils_hooks__hooks.isDuration = isDuration; + utils_hooks__hooks.monthsShort = lists__listMonthsShort; + utils_hooks__hooks.weekdaysMin = lists__listWeekdaysMin; + utils_hooks__hooks.defineLocale = defineLocale; + utils_hooks__hooks.weekdaysShort = lists__listWeekdaysShort; + utils_hooks__hooks.normalizeUnits = normalizeUnits; + utils_hooks__hooks.relativeTimeThreshold = duration_humanize__getSetRelativeTimeThreshold; + + var _moment = utils_hooks__hooks; + + return _moment; + +})); \ No newline at end of file diff --git a/public/js/my_js.js b/public/js/my_js.js new file mode 100644 index 0000000..d0487c1 --- /dev/null +++ b/public/js/my_js.js @@ -0,0 +1,31 @@ +//function to validate empty field +function check_empty() { + if (document.getElementById('ctemail').value == "" + || document.getElementById('ctinfo').value == "" + || document.getElementById('cttitle').value == "" + || document.getElementById('ctmsg').value == "") { + alert("Please Input All Fields"); + //window.history.back(); + location.href = location.href; + return false; + } + else { + if (document.ctform.onsubmit && !document.ctform.onsubmit()) { + return false; + } + document.ctform.submit(); + document.getElementById('close').click(); + return true; + } +} + +//function to display Popup +function div_show() { + document.getElementById('ctabc').style.display = "block"; +} + +//function to hide Popup +function div_hide() { + document.getElementById('ctabc').style.display = "none"; +} + diff --git a/public/js/npm.js b/public/js/npm.js new file mode 100644 index 0000000..bf6aa80 --- /dev/null +++ b/public/js/npm.js @@ -0,0 +1,13 @@ +// This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment. +require('../../js/transition.js') +require('../../js/alert.js') +require('../../js/button.js') +require('../../js/carousel.js') +require('../../js/collapse.js') +require('../../js/dropdown.js') +require('../../js/modal.js') +require('../../js/tooltip.js') +require('../../js/popover.js') +require('../../js/scrollspy.js') +require('../../js/tab.js') +require('../../js/affix.js') \ No newline at end of file diff --git a/public/js/photoshare-authors.js b/public/js/photoshare-authors.js new file mode 100644 index 0000000..2ed4cca --- /dev/null +++ b/public/js/photoshare-authors.js @@ -0,0 +1,8 @@ +/** + * Created by ZE on 2015/11/12. + */ + +//ReactDOM.render( +//
    Authors:
    , +// document.getElementById('authors') +//); \ No newline at end of file diff --git a/public/js/photoshare-comments.js b/public/js/photoshare-comments.js new file mode 100644 index 0000000..ae5395c --- /dev/null +++ b/public/js/photoshare-comments.js @@ -0,0 +1,48 @@ +/** + * Created by ZE on 2015/11/11. + */ + +//add comments +$("#commentButton").click(function () { + sendComment(); +}); +function sendComment() { + + var event_id = getEventId(); + + $.post("/events/add-comment/" + event_id, { + "body": $("#commentBody").val(), + }) + .always(function(data){ + getComments(event_id); + $("#commentBody").val('').focus(); + }); + //.success(function (data) { + // + // getComments(event_id); + // $("#commentBody").val('').focus(); + // + //}); + +} + + +function getComments(event_id) { + + event_id = event_id || getEventId(); + + $.post("/events/get-comments/" + event_id) + .success(function (data) { + $("#commentList").empty().append(data.commentsHtml); + }); +} + + +function commentDelete(comment_id) { + //console.log(comment_id); + $.post('/comments/delete/' + comment_id) + .always(function (data) { + //console.log(data); + getComments(); + }); +} diff --git a/public/js/photoshare-control.js b/public/js/photoshare-control.js new file mode 100644 index 0000000..48e5b41 --- /dev/null +++ b/public/js/photoshare-control.js @@ -0,0 +1,119 @@ +/** + * Created by ZE on 2015/11/10. + */ +/** + * jQuery.browser.mobile (http://detectmobilebrowser.com/) + * + * jQuery.browser.mobile will be true if the browser is a mobile device + * + **/ +// (function (a) { +// (jQuery.browser = jQuery.browser || {}).mobile = /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0, 4)) +// })(navigator.userAgent || navigator.vendor || window.opera); + +$.ajaxSetup({ + headers: { + 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') + } +}); +function getEventId() { + return $('meta[name=event_id]').attr('content'); +} +function setEventId(event_id) { + $('meta[name=event_id]').attr('content', event_id); +} + +function deletePhoto() { + + //console.log(gallery); + var photo_id = photos.ids[getPhotoIndex()]; + if (photo_id) { + if (photos.can_be_deleted.true.indexOf(photo_id) >= 0) { + //console.log(photo_id + 'can be deleted'); + var is_delete = confirm("削除してもよろしいですか?"); + if (is_delete == true) { + $.post('/photos/delete/' + photo_id) + .always(function (data) { + gallery.close(); + //setTimeout(function () { + // getPhotos(); + //}, 1000); + + }); + + } else { + + } + + } else { + + } + } + +} +function downloadPhoto() { + var photo_id = photos.ids[getPhotoIndex()]; + if (photo_id) { + location.href = '/photos/download/' + photo_id; + } +} + + +function event_delete($event_id) { + var is_delete = confirm("イベント削除すると参加者全員はアルバムのデータを見えなくなります。\n削除してもよろしいですか?"); + if (is_delete == true) { + $.post('/events/delete/' + $event_id) + .success(function () { + location.href = '/event'; + }); + } else { + + } + +} + +$("#commentBody").val(""); + +function event_leave() { + var is_ok = confirm("退室してもよろしいですか?"); + if (is_ok) { + $.post('/events/leave/' + getEventId()) + .success(function (data) { + console.log(data); + location.href = '/event'; + }).fail(function () { + location.href = "/" + }); + } else { + + } +} + +function blueimp_gallery_controls_toggle() { + $.post('/user/control-toggle') + .success(function (data) { + location.href = '/event/' + getEventId() + '/photo'; + }).fail(function () { + location.href = "/" + }); +} + +//events search +//$('#searchBox').ajaxComboBox('/events/search'); +$('#searchAlbum').on('shown.bs.modal', function () { + + $(this).find('input:text:visible:first').focus(); + +}); +$("#searchBox").keyup(function () { + var val = $(this).val(); + if (val.length > 0) { + $.post('/events/search', + {'event_name': val} + ) + .success(function (data) { + $("#searchResultTable").html(data); + }) + } + //alert("The text has been changed."); +}); \ No newline at end of file diff --git a/public/js/photoshare-photoLinks.js b/public/js/photoshare-photoLinks.js new file mode 100644 index 0000000..eb1bbdc --- /dev/null +++ b/public/js/photoshare-photoLinks.js @@ -0,0 +1,162 @@ +/** + * Created by ZE on 2015/11/11. + */ + +getPhotos(); + +var getPhotosData; +var gallery; +function getPhotos(event_id, group_by) { + + event_id = event_id || getEventId(); + + var group_by_params = group_by ? "?group_by=" + group_by : ""; + $.post('/events/photos/' + event_id + group_by_params) + .success(function (data) {//return html + + getPhotosData = data; + photos = data.photos; + //global_event = data.event; + + //$('#photos_links').html(data.html.photos_links).append(data.blueimp_gallery); + $('#photos_links').html(data.photoHTML.links).append(data.blueimp_gallery); + setupBlueImp(data.photoHTML.ids); + + + $('#buttons').html(data.html.buttons); + + //console.log(data.html.other_albums); + $('#other_albums').html(data.html.other_albums); + $('#members').html('Members: ' + data.event.members); + + var menuButtonHtml = + "" + data.event.or_time + '' + + " " + data.event.event_name + ' ' + + ''; + $("#eventsDropDownMenu").html(menuButtonHtml); + + document.title = data.event.event_name; + focusSelfOrSharedButton(data.event.pivot.admin); + + //initBlueimp(); + + + setEventId(data.event.id); + getComments(data.event.id); + + $("html,body").animate({scrollTop: 0}); + }) + .fail(function () { + location.href = "/" + }); +} + +function getPhotoIndex() { + return $('meta[name=photo_index]').attr('content'); +} +function setPhotoIndex($newIndex) { + return $('meta[name=photo_index]').attr('content', $newIndex); +} + +moment.locale('ja'); + +function setupBlueImp(ids) { + + ids = ids || getPhotosData.photoHTML.ids; + + for (var i = 0; i < ids.length; i++) { + initBlueimp(ids[i]); + } +} +function initBlueimp(id) { + + document.getElementById(id /*'links'*/).onclick = function (event) { + event = event || window.event; + + var can_be_delete_trues = photos.can_be_deleted.true, + photo; + + var target = event.target || event.srcElement, + link = target.src ? target.parentNode : target, + options = { + index: link, + event: event, + toggleControlsOnReturn: false, + continuous: false, + carousel: false, + onslide: function (index, slide) { + $('[name="photo_description"]').fadeTo('fast', 0); + + }, + onslideend: function (index, slide) { + + photo = photos.all[index]; + //$('[name="photo_title"]').text(data.event.event_name); + $('[name="photo_description"]').html( + "
    " + + photo.title + + "
    by " + photo.user.name + + " | " + moment(photo.created_at).fromNow() + + "
    " + ).fadeTo('fast', 1); + + + if (can_be_delete_trues.indexOf(photos.ids[index]) >= 0) { + //delete button show + //console.log('can be deleted'); + $('[name="photo_delete_button"]').attr('disabled', false); + } else { + //hide photo delete button + //console.log('can not be deleted'); + $('[name="photo_delete_button"]').attr('disabled', true); + } + + setPhotoIndex(index); + }, + onclosed: function () { + + //if (typeof window.albumPhotosChanged !== 'undefined' && window.albumPhotosChanged) { + // getPhotos(); + // window.albumPhotosChanged = false; + //} + } + + }, + + links = this.getElementsByTagName('a'); + + //console.log(link); + gallery = blueimp.Gallery(links, options); + }; + +} + + +function getLastSelfEvent() { + $.post('/events/last-self-event') + .success(function (data) { + getPhotos(data.event.id); + }) + .fail(function () { + location.href = "/" + }); +} +function getLastSharedEvent() { + $.post('/events/last-shared-event') + .success(function (data) { + getPhotos(data.event.id); + }) + .fail(function () { + location.href = "/" + }); +} + +function focusSelfOrSharedButton(byself) { + var focus = {on: {'background-color': 'rgb(178,64,48)'}, off: {'background-color': 'white'}}; + $('#self_events_button').css(byself ? focus.on : focus.off); + $('#shared_events_button').css(byself ? focus.off : focus.on); +} + +function ChangeGroupBy($group_by) { + getPhotos(null, $group_by); +} \ No newline at end of file diff --git a/public/js/photoshare-share-ways.js b/public/js/photoshare-share-ways.js new file mode 100644 index 0000000..e61c6bf --- /dev/null +++ b/public/js/photoshare-share-ways.js @@ -0,0 +1,22 @@ +/** + * Created by ZE on 2015/11/11. + */ + +$('#newAlbum').on('shown.bs.modal', function () { + + $(this).find('input:text:visible:first').focus(); + + switch ($('#or_time').prop('type')) { + case 'date': + document.getElementById('or_time').valueAsDate = new Date(); + break; + default : + $('#or_time').val(new Date().toISOString().slice(0, 10).replace('T', ' ')); + } + +}); +$('#share_via_mail').on('shown.bs.modal', function () { + + $(this).find('input:text:visible:first').focus(); + +}); diff --git a/public/js/photoshare-socketio.js b/public/js/photoshare-socketio.js new file mode 100644 index 0000000..a110a58 --- /dev/null +++ b/public/js/photoshare-socketio.js @@ -0,0 +1,51 @@ +/** + * Created by ZE on 2015/11/11. + */ + +var socket = io('https://photoshare.space:6001', {secure: true}); +socket.on('has_new_comment', function (data) { + if (data.event.id == getEventId()) { + try { + gallery.close(); + } catch (e) { + + } + getComments(getEventId()); + } +}); +socket.on('CommentDeleted', function (data) { + + if (data.event.id == getEventId()) { + try { + gallery.close(); + } catch (e) { + + } + getComments(getEventId()); + } +}); + +socket.on('PhotoAdded', function (data) { + + if (data.event.id == getEventId()) { + + try { + window.gallery.close(); + }catch(e){ + + } + getPhotos(); + + } +}); +socket.on('PhotoDeleted', function (data) { + + if (data.event.id == getEventId()) { + try { + window.gallery.close(); + }catch(e){ + + } + getPhotos(); + } +}); diff --git a/public/js/react-dom.min.js b/public/js/react-dom.min.js new file mode 100644 index 0000000..f31584a --- /dev/null +++ b/public/js/react-dom.min.js @@ -0,0 +1,12 @@ +/** + * ReactDOM v0.14.2 + * + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + */ +!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e(require("react"));else if("function"==typeof define&&define.amd)define(["react"],e);else{var f;f="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,f.ReactDOM=e(f.React)}}(function(e){return e.__SECRET_DOM_DO_NOT_USE_OR_YOU_WILL_BE_FIRED}); \ No newline at end of file diff --git a/public/js/react.min.js b/public/js/react.min.js new file mode 100644 index 0000000..9c2ce82 --- /dev/null +++ b/public/js/react.min.js @@ -0,0 +1,16 @@ +/** + * React v0.14.2 + * + * Copyright 2013-2015, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + */ +!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.React=e()}}(function(){return function e(t,n,r){function o(i,u){if(!n[i]){if(!t[i]){var s="function"==typeof require&&require;if(!u&&s)return s(i,!0);if(a)return a(i,!0);var l=new Error("Cannot find module '"+i+"'");throw l.code="MODULE_NOT_FOUND",l}var c=n[i]={exports:{}};t[i][0].call(c.exports,function(e){var n=t[i][1][e];return o(n?n:e)},c,c.exports,e,t,n,r)}return n[i].exports}for(var a="function"==typeof require&&require,i=0;i8&&11>=x),N=32,P=String.fromCharCode(N),w=f.topLevelTypes,R={beforeInput:{phasedRegistrationNames:{bubbled:C({onBeforeInput:null}),captured:C({onBeforeInputCapture:null})},dependencies:[w.topCompositionEnd,w.topKeyPress,w.topTextInput,w.topPaste]},compositionEnd:{phasedRegistrationNames:{bubbled:C({onCompositionEnd:null}),captured:C({onCompositionEndCapture:null})},dependencies:[w.topBlur,w.topCompositionEnd,w.topKeyDown,w.topKeyPress,w.topKeyUp,w.topMouseDown]},compositionStart:{phasedRegistrationNames:{bubbled:C({onCompositionStart:null}),captured:C({onCompositionStartCapture:null})},dependencies:[w.topBlur,w.topCompositionStart,w.topKeyDown,w.topKeyPress,w.topKeyUp,w.topMouseDown]},compositionUpdate:{phasedRegistrationNames:{bubbled:C({onCompositionUpdate:null}),captured:C({onCompositionUpdateCapture:null})},dependencies:[w.topBlur,w.topCompositionUpdate,w.topKeyDown,w.topKeyPress,w.topKeyUp,w.topMouseDown]}},I=!1,S=null,T={eventTypes:R,extractEvents:function(e,t,n,r,o){return[l(e,t,n,r,o),d(e,t,n,r,o)]}};t.exports=T},{128:128,146:146,15:15,19:19,20:20,88:88,92:92}],4:[function(e,t,n){"use strict";function r(e,t){return e+t.charAt(0).toUpperCase()+t.substring(1)}var o={animationIterationCount:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,stopOpacity:!0,strokeDashoffset:!0,strokeOpacity:!0,strokeWidth:!0},a=["Webkit","ms","Moz","O"];Object.keys(o).forEach(function(e){a.forEach(function(t){o[r(t,e)]=o[e]})});var i={background:{backgroundAttachment:!0,backgroundColor:!0,backgroundImage:!0,backgroundPositionX:!0,backgroundPositionY:!0,backgroundRepeat:!0},backgroundPosition:{backgroundPositionX:!0,backgroundPositionY:!0},border:{borderWidth:!0,borderStyle:!0,borderColor:!0},borderBottom:{borderBottomWidth:!0,borderBottomStyle:!0,borderBottomColor:!0},borderLeft:{borderLeftWidth:!0,borderLeftStyle:!0,borderLeftColor:!0},borderRight:{borderRightWidth:!0,borderRightStyle:!0,borderRightColor:!0},borderTop:{borderTopWidth:!0,borderTopStyle:!0,borderTopColor:!0},font:{fontStyle:!0,fontVariant:!0,fontWeight:!0,fontSize:!0,lineHeight:!0,fontFamily:!0},outline:{outlineWidth:!0,outlineStyle:!0,outlineColor:!0}},u={isUnitlessNumber:o,shorthandPropertyExpansions:i};t.exports=u},{}],5:[function(e,t,n){"use strict";var r=e(4),o=e(128),a=e(69),i=(e(130),e(103)),u=e(141),s=e(148),l=(e(151),s(function(e){return u(e)})),c=!1,p="cssFloat";if(o.canUseDOM){var d=document.createElement("div").style;try{d.font=""}catch(f){c=!0}void 0===document.documentElement.style.cssFloat&&(p="styleFloat")}var h={createMarkupForStyles:function(e){var t="";for(var n in e)if(e.hasOwnProperty(n)){var r=e[n];null!=r&&(t+=l(n)+":",t+=i(n,r)+";")}return t||null},setValueForStyles:function(e,t){var n=e.style;for(var o in t)if(t.hasOwnProperty(o)){var a=i(o,t[o]);if("float"===o&&(o=p),a)n[o]=a;else{var u=c&&r.shorthandPropertyExpansions[o];if(u)for(var s in u)n[s]="";else n[o]=""}}}};a.measureMethods(h,"CSSPropertyOperations",{setValueForStyles:"setValueForStyles"}),t.exports=h},{103:103,128:128,130:130,141:141,148:148,151:151,4:4,69:69}],6:[function(e,t,n){"use strict";function r(){this._callbacks=null,this._contexts=null}var o=e(24),a=e(23),i=e(142);a(r.prototype,{enqueue:function(e,t){this._callbacks=this._callbacks||[],this._contexts=this._contexts||[],this._callbacks.push(e),this._contexts.push(t)},notifyAll:function(){var e=this._callbacks,t=this._contexts;if(e){e.length!==t.length?i(!1):void 0,this._callbacks=null,this._contexts=null;for(var n=0;n8));var A=!1;_.canUseDOM&&(A=M("input")&&(!("documentMode"in document)||document.documentMode>9));var L={get:function(){return k.get.call(this)},set:function(e){T=""+e,k.set.call(this,e)}},U={eventTypes:R,extractEvents:function(e,t,n,o,a){var i,u;if(r(t)?O?i=s:u=l:N(t)?A?i=f:(i=v,u=h):m(t)&&(i=g),i){var c=i(e,t,n);if(c){var p=x.getPooled(R.change,c,o,a);return p.type="change",b.accumulateTwoPhaseDispatches(p),p}}u&&u(e,t,n)}};t.exports=U},{112:112,117:117,118:118,128:128,146:146,15:15,16:16,19:19,81:81,90:90}],8:[function(e,t,n){"use strict";var r=0,o={createReactRootIndex:function(){return r++}};t.exports=o},{}],9:[function(e,t,n){"use strict";function r(e,t,n){var r=n>=e.childNodes.length?null:e.childNodes.item(n);e.insertBefore(t,r)}var o=e(12),a=e(65),i=e(69),u=e(122),s=e(123),l=e(142),c={dangerouslyReplaceNodeWithMarkup:o.dangerouslyReplaceNodeWithMarkup,updateTextContent:s,processUpdates:function(e,t){for(var n,i=null,c=null,p=0;pt||e.hasOverloadedBooleanValue&&t===!1}var a=e(10),i=e(69),u=e(120),s=(e(151),/^[a-zA-Z_][\w\.\-]*$/),l={},c={},p={createMarkupForID:function(e){return a.ID_ATTRIBUTE_NAME+"="+u(e)},setAttributeForID:function(e,t){e.setAttribute(a.ID_ATTRIBUTE_NAME,t)},createMarkupForProperty:function(e,t){var n=a.properties.hasOwnProperty(e)?a.properties[e]:null;if(n){if(o(n,t))return"";var r=n.attributeName;return n.hasBooleanValue||n.hasOverloadedBooleanValue&&t===!0?r+'=""':r+"="+u(t)}return a.isCustomAttribute(e)?null==t?"":e+"="+u(t):null},createMarkupForCustomAttribute:function(e,t){return r(e)&&null!=t?e+"="+u(t):""},setValueForProperty:function(e,t,n){var r=a.properties.hasOwnProperty(t)?a.properties[t]:null;if(r){var i=r.mutationMethod;if(i)i(e,n);else if(o(r,n))this.deleteValueForProperty(e,t);else if(r.mustUseAttribute){var u=r.attributeName,s=r.attributeNamespace;s?e.setAttributeNS(s,u,""+n):r.hasBooleanValue||r.hasOverloadedBooleanValue&&n===!0?e.setAttribute(u,""):e.setAttribute(u,""+n)}else{var l=r.propertyName;r.hasSideEffects&&""+e[l]==""+n||(e[l]=n)}}else a.isCustomAttribute(t)&&p.setValueForAttribute(e,t,n)},setValueForAttribute:function(e,t,n){r(t)&&(null==n?e.removeAttribute(t):e.setAttribute(t,""+n))},deleteValueForProperty:function(e,t){var n=a.properties.hasOwnProperty(t)?a.properties[t]:null;if(n){var r=n.mutationMethod;if(r)r(e,void 0);else if(n.mustUseAttribute)e.removeAttribute(n.attributeName);else{var o=n.propertyName,i=a.getDefaultValueForProperty(e.nodeName,o);n.hasSideEffects&&""+e[o]===i||(e[o]=i)}}else a.isCustomAttribute(t)&&e.removeAttribute(t)}};i.measureMethods(p,"DOMPropertyOperations",{setValueForProperty:"setValueForProperty",setValueForAttribute:"setValueForAttribute",deleteValueForProperty:"deleteValueForProperty"}),t.exports=p},{10:10,120:120,151:151,69:69}],12:[function(e,t,n){"use strict";function r(e){return e.substring(1,e.indexOf(" "))}var o=e(128),a=e(133),i=e(134),u=e(138),s=e(142),l=/^(<[^ \/>]+)/,c="data-danger-index",p={dangerouslyRenderMarkup:function(e){o.canUseDOM?void 0:s(!1);for(var t,n={},p=0;p-1?void 0:i(!1),!l.plugins[n]){t.extractEvents?void 0:i(!1),l.plugins[n]=t;var r=t.eventTypes;for(var a in r)o(r[a],t,a)?void 0:i(!1)}}}function o(e,t,n){l.eventNameDispatchConfigs.hasOwnProperty(n)?i(!1):void 0,l.eventNameDispatchConfigs[n]=e;var r=e.phasedRegistrationNames;if(r){for(var o in r)if(r.hasOwnProperty(o)){var u=r[o];a(u,t,n)}return!0}return e.registrationName?(a(e.registrationName,t,n),!0):!1}function a(e,t,n){l.registrationNameModules[e]?i(!1):void 0,l.registrationNameModules[e]=t,l.registrationNameDependencies[e]=t.eventTypes[n].dependencies}var i=e(142),u=null,s={},l={plugins:[],eventNameDispatchConfigs:{},registrationNameModules:{},registrationNameDependencies:{},injectEventPluginOrder:function(e){u?i(!1):void 0,u=Array.prototype.slice.call(e),r()},injectEventPluginsByName:function(e){var t=!1;for(var n in e)if(e.hasOwnProperty(n)){var o=e[n];s.hasOwnProperty(n)&&s[n]===o||(s[n]?i(!1):void 0,s[n]=o,t=!0)}t&&r()},getPluginModuleForEvent:function(e){var t=e.dispatchConfig;if(t.registrationName)return l.registrationNameModules[t.registrationName]||null;for(var n in t.phasedRegistrationNames)if(t.phasedRegistrationNames.hasOwnProperty(n)){var r=l.registrationNameModules[t.phasedRegistrationNames[n]];if(r)return r}return null},_resetEventPlugins:function(){u=null;for(var e in s)s.hasOwnProperty(e)&&delete s[e];l.plugins.length=0;var t=l.eventNameDispatchConfigs;for(var n in t)t.hasOwnProperty(n)&&delete t[n];var r=l.registrationNameModules;for(var o in r)r.hasOwnProperty(o)&&delete r[o]}};t.exports=l},{142:142}],18:[function(e,t,n){"use strict";function r(e){return e===m.topMouseUp||e===m.topTouchEnd||e===m.topTouchCancel}function o(e){return e===m.topMouseMove||e===m.topTouchMove}function a(e){return e===m.topMouseDown||e===m.topTouchStart}function i(e,t,n,r){var o=e.type||"unknown-event";e.currentTarget=v.Mount.getNode(r),t?f.invokeGuardedCallbackWithCatch(o,n,e,r):f.invokeGuardedCallback(o,n,e,r),e.currentTarget=null}function u(e,t){var n=e._dispatchListeners,r=e._dispatchIDs;if(Array.isArray(n))for(var o=0;oe&&n[e]===o[e];e++);var i=r-e;for(t=1;i>=t&&n[r-t]===o[a-t];t++);var u=t>1?1-t:void 0;return this._fallbackText=o.slice(e,u),this._fallbackText}}),o.addPoolingTo(r),t.exports=r},{115:115,23:23,24:24}],21:[function(e,t,n){"use strict";var r,o=e(10),a=e(128),i=o.injection.MUST_USE_ATTRIBUTE,u=o.injection.MUST_USE_PROPERTY,s=o.injection.HAS_BOOLEAN_VALUE,l=o.injection.HAS_SIDE_EFFECTS,c=o.injection.HAS_NUMERIC_VALUE,p=o.injection.HAS_POSITIVE_NUMERIC_VALUE,d=o.injection.HAS_OVERLOADED_BOOLEAN_VALUE;if(a.canUseDOM){var f=document.implementation;r=f&&f.hasFeature&&f.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")}var h={isCustomAttribute:RegExp.prototype.test.bind(/^(data|aria)-[a-z_][a-z\d_.\-]*$/),Properties:{accept:null,acceptCharset:null,accessKey:null,action:null,allowFullScreen:i|s,allowTransparency:i,alt:null,async:s,autoComplete:null,autoPlay:s,capture:i|s,cellPadding:null,cellSpacing:null,charSet:i,challenge:i,checked:u|s,classID:i,className:r?i:u,cols:i|p,colSpan:null,content:null,contentEditable:null,contextMenu:i,controls:u|s,coords:null,crossOrigin:null,data:null,dateTime:i,"default":s,defer:s,dir:null,disabled:i|s,download:d,draggable:null,encType:null,form:i,formAction:i,formEncType:i,formMethod:i,formNoValidate:s,formTarget:i,frameBorder:i,headers:null,height:i,hidden:i|s,high:null,href:null,hrefLang:null,htmlFor:null,httpEquiv:null,icon:null,id:u,inputMode:i,integrity:null,is:i,keyParams:i,keyType:i,kind:null,label:null,lang:null,list:i,loop:u|s,low:null,manifest:i,marginHeight:null,marginWidth:null,max:null,maxLength:i,media:i,mediaGroup:null,method:null,min:null,minLength:i,multiple:u|s,muted:u|s,name:null,noValidate:s,open:s,optimum:null,pattern:null,placeholder:null,poster:null,preload:null,radioGroup:null,readOnly:u|s,rel:null,required:s,role:i,rows:i|p,rowSpan:null,sandbox:null,scope:null,scoped:s,scrolling:null,seamless:i|s,selected:u|s,shape:null,size:i|p,sizes:i,span:p,spellCheck:null,src:null,srcDoc:u,srcLang:null,srcSet:i,start:c,step:null,style:null,summary:null,tabIndex:null,target:null,title:null,type:null,useMap:null,value:u|l,width:i,wmode:i,wrap:null,about:i,datatype:i,inlist:i,prefix:i,property:i,resource:i,"typeof":i,vocab:i,autoCapitalize:null,autoCorrect:null,autoSave:null,color:null,itemProp:i,itemScope:i|s,itemType:i,itemID:i,itemRef:i,results:null,security:i,unselectable:i},DOMAttributeNames:{acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv"},DOMPropertyNames:{autoCapitalize:"autocapitalize",autoComplete:"autocomplete",autoCorrect:"autocorrect",autoFocus:"autofocus",autoPlay:"autoplay",autoSave:"autosave",encType:"encoding",hrefLang:"hreflang",radioGroup:"radiogroup",spellCheck:"spellcheck",srcDoc:"srcdoc",srcSet:"srcset"}};t.exports=h},{10:10,128:128}],22:[function(e,t,n){"use strict";function r(e){null!=e.checkedLink&&null!=e.valueLink?l(!1):void 0}function o(e){r(e),null!=e.value||null!=e.onChange?l(!1):void 0}function a(e){r(e),null!=e.checked||null!=e.onChange?l(!1):void 0}function i(e){if(e){var t=e.getName();if(t)return" Check the render method of `"+t+"`."}return""}var u=e(72),s=e(71),l=e(142),c=(e(151),{button:!0,checkbox:!0,image:!0,hidden:!0,radio:!0,reset:!0,submit:!0}),p={value:function(e,t,n){return!e[t]||c[e.type]||e.onChange||e.readOnly||e.disabled?null:new Error("You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`.")},checked:function(e,t,n){return!e[t]||e.onChange||e.readOnly||e.disabled?null:new Error("You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`.")},onChange:u.func},d={},f={checkPropTypes:function(e,t,n){for(var r in p){if(p.hasOwnProperty(r))var o=p[r](t,r,e,s.prop);o instanceof Error&&!(o.message in d)&&(d[o.message]=!0,i(n))}},getValue:function(e){return e.valueLink?(o(e),e.valueLink.value):e.value},getChecked:function(e){return e.checkedLink?(a(e),e.checkedLink.value):e.checked},executeOnChange:function(e,t){return e.valueLink?(o(e),e.valueLink.requestChange(t.target.value)):e.checkedLink?(a(e),e.checkedLink.requestChange(t.target.checked)):e.onChange?e.onChange.call(void 0,t):void 0}};t.exports=f},{142:142,151:151,71:71,72:72}],23:[function(e,t,n){"use strict";function r(e,t){if(null==e)throw new TypeError("Object.assign target cannot be null or undefined");for(var n=Object(e),r=Object.prototype.hasOwnProperty,o=1;o=0||null!=t.is}function m(e){h(e),this._tag=e.toLowerCase(),this._renderedChildren=null,this._previousStyle=null,this._previousStyleCopy=null,this._rootNodeID=null,this._wrapperState=null,this._topLevelWrapper=null,this._nodeWithLegacyProperties=null}var g=e(2),y=e(5),C=e(10),b=e(11),_=e(15),E=e(26),x=e(31),D=e(36),M=e(41),N=e(42),P=e(43),w=e(47),R=e(63),I=e(64),S=e(69),T=e(80),k=e(23),O=e(102),A=e(105),L=e(142),U=(e(117),e(146)),F=e(122),B=e(123),V=(e(149),e(126),e(151),E.deleteListener),j=E.listenTo,W=E.registrationNameModules,K={string:!0,number:!0},H=U({children:null}),q=U({style:null}),Y=U({__html:null}),z=1,G={topAbort:"abort",topCanPlay:"canplay",topCanPlayThrough:"canplaythrough",topDurationChange:"durationchange",topEmptied:"emptied",topEncrypted:"encrypted",topEnded:"ended",topError:"error",topLoadedData:"loadeddata",topLoadedMetadata:"loadedmetadata",topLoadStart:"loadstart",topPause:"pause",topPlay:"play",topPlaying:"playing",topProgress:"progress",topRateChange:"ratechange",topSeeked:"seeked",topSeeking:"seeking",topStalled:"stalled",topSuspend:"suspend",topTimeUpdate:"timeupdate",topVolumeChange:"volumechange",topWaiting:"waiting"},X={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},Q={listing:!0,pre:!0,textarea:!0},$=(k({menuitem:!0},X),/^[a-zA-Z][a-zA-Z:_\.\-\d]*$/),Z={},J={}.hasOwnProperty;m.displayName="ReactDOMComponent",m.Mixin={construct:function(e){this._currentElement=e},mountComponent:function(e,t,n){this._rootNodeID=e;var r=this._currentElement.props;switch(this._tag){case"iframe":case"img":case"form":case"video":case"audio":this._wrapperState={listeners:null},t.getReactMountReady().enqueue(p,this);break;case"button":r=D.getNativeProps(this,r,n);break;case"input":M.mountWrapper(this,r,n),r=M.getNativeProps(this,r,n);break;case"option":N.mountWrapper(this,r,n),r=N.getNativeProps(this,r,n);break;case"select":P.mountWrapper(this,r,n),r=P.getNativeProps(this,r,n),n=P.processChildContext(this,r,n);break;case"textarea":w.mountWrapper(this,r,n),r=w.getNativeProps(this,r,n)}s(this,r);var o;if(t.useCreateElement){var a=n[R.ownerDocumentContextKey],i=a.createElement(this._currentElement.type);b.setAttributeForID(i,this._rootNodeID),R.getID(i),this._updateDOMProperties({},r,t,i),this._createInitialChildren(t,r,n,i),o=i}else{var u=this._createOpenTagMarkupAndPutListeners(t,r),l=this._createContentMarkup(t,r,n);o=!l&&X[this._tag]?u+"/>":u+">"+l+""}switch(this._tag){case"input":t.getReactMountReady().enqueue(d,this);case"button":case"select":case"textarea":r.autoFocus&&t.getReactMountReady().enqueue(g.focusDOMComponent,this)}return o},_createOpenTagMarkupAndPutListeners:function(e,t){var n="<"+this._currentElement.type;for(var r in t)if(t.hasOwnProperty(r)){var o=t[r];if(null!=o)if(W.hasOwnProperty(r))o&&l(this._rootNodeID,r,o,e);else{r===q&&(o&&(o=this._previousStyleCopy=k({},t.style)),o=y.createMarkupForStyles(o));var a=null;null!=this._tag&&v(this._tag,t)?r!==H&&(a=b.createMarkupForCustomAttribute(r,o)):a=b.createMarkupForProperty(r,o),a&&(n+=" "+a)}}if(e.renderToStaticMarkup)return n;var i=b.createMarkupForID(this._rootNodeID);return n+" "+i},_createContentMarkup:function(e,t,n){var r="",o=t.dangerouslySetInnerHTML;if(null!=o)null!=o.__html&&(r=o.__html);else{var a=K[typeof t.children]?t.children:null,i=null!=a?null:t.children;if(null!=a)r=A(a);else if(null!=i){var u=this.mountChildren(i,e,n);r=u.join("")}}return Q[this._tag]&&"\n"===r.charAt(0)?"\n"+r:r},_createInitialChildren:function(e,t,n,r){var o=t.dangerouslySetInnerHTML;if(null!=o)null!=o.__html&&F(r,o.__html);else{var a=K[typeof t.children]?t.children:null,i=null!=a?null:t.children;if(null!=a)B(r,a);else if(null!=i)for(var u=this.mountChildren(i,e,n),s=0;st.end?(n=t.end,r=t.start):(n=t.start,r=t.end),o.moveToElementText(e),o.moveStart("character",n),o.setEndPoint("EndToStart",o),o.moveEnd("character",r-n),o.select()}function u(e,t){if(window.getSelection){var n=window.getSelection(),r=e[c()].length,o=Math.min(t.start,r),a="undefined"==typeof t.end?o:Math.min(t.end,r);if(!n.extend&&o>a){var i=a;a=o,o=i}var u=l(e,o),s=l(e,a);if(u&&s){var p=document.createRange();p.setStart(u.node,u.offset),n.removeAllRanges(),o>a?(n.addRange(p),n.extend(s.node,s.offset)):(p.setEnd(s.node,s.offset),n.addRange(p))}}}var s=e(128),l=e(114),c=e(115),p=s.canUseDOM&&"selection"in document&&!("getSelection"in window),d={getOffsets:p?o:a,setOffsets:p?i:u};t.exports=d},{114:114,115:115,128:128}],45:[function(e,t,n){"use strict";var r=e(49),o=e(78),a=e(82);r.inject();var i={renderToString:o.renderToString,renderToStaticMarkup:o.renderToStaticMarkup,version:a};t.exports=i},{49:49,78:78,82:82}],46:[function(e,t,n){"use strict";var r=e(9),o=e(11),a=e(31),i=e(63),u=e(23),s=e(105),l=e(123),c=(e(126),function(e){});u(c.prototype,{construct:function(e){this._currentElement=e,this._stringText=""+e,this._rootNodeID=null,this._mountIndex=0},mountComponent:function(e,t,n){if(this._rootNodeID=e,t.useCreateElement){var r=n[i.ownerDocumentContextKey],a=r.createElement("span");return o.setAttributeForID(a,e),i.getID(a),l(a,this._stringText),a}var u=s(this._stringText);return t.renderToStaticMarkup?u:""+u+""},receiveComponent:function(e,t){if(e!==this._currentElement){this._currentElement=e;var n=""+e;if(n!==this._stringText){this._stringText=n;var o=i.getNode(this._rootNodeID);r.updateTextContent(o,n)}}},unmountComponent:function(){a.unmountIDFromEnvironment(this._rootNodeID)}}),t.exports=c},{105:105,11:11,123:123,126:126,23:23,31:31,63:63,9:9}],47:[function(e,t,n){"use strict";function r(){this._rootNodeID&&c.updateWrapper(this)}function o(e){var t=this._currentElement.props,n=a.executeOnChange(t,e);return u.asap(r,this),n}var a=e(22),i=e(40),u=e(81),s=e(23),l=e(142),c=(e(151),{getNativeProps:function(e,t,n){null!=t.dangerouslySetInnerHTML?l(!1):void 0;var r=s({},t,{defaultValue:void 0,value:void 0,children:e._wrapperState.initialValue,onChange:e._wrapperState.onChange});return r},mountWrapper:function(e,t){var n=t.defaultValue,r=t.children;null!=r&&(null!=n?l(!1):void 0,Array.isArray(r)&&(r.length<=1?void 0:l(!1),r=r[0]),n=""+r),null==n&&(n="");var i=a.getValue(t);e._wrapperState={initialValue:""+(null!=i?i:n),onChange:o.bind(e)}},updateWrapper:function(e){var t=e._currentElement.props,n=a.getValue(t);null!=n&&i.updatePropertyByID(e._rootNodeID,"value",""+n)}});t.exports=c},{142:142,151:151,22:22,23:23,40:40,81:81}],48:[function(e,t,n){"use strict";function r(){this.reinitializeTransaction()}var o=e(81),a=e(98),i=e(23),u=e(134),s={initialize:u,close:function(){d.isBatchingUpdates=!1}},l={initialize:u,close:o.flushBatchedUpdates.bind(o)},c=[l,s];i(r.prototype,a.Mixin,{getTransactionWrappers:function(){return c}});var p=new r,d={isBatchingUpdates:!1,batchedUpdates:function(e,t,n,r,o,a){var i=d.isBatchingUpdates;d.isBatchingUpdates=!0,i?e(t,n,r,o,a):p.perform(e,null,t,n,r,o,a)}};t.exports=d},{134:134,23:23,81:81,98:98}],49:[function(e,t,n){"use strict";function r(){M||(M=!0,g.EventEmitter.injectReactEventListener(m),g.EventPluginHub.injectEventPluginOrder(u),g.EventPluginHub.injectInstanceHandle(y),g.EventPluginHub.injectMount(C),g.EventPluginHub.injectEventPluginsByName({SimpleEventPlugin:x,EnterLeaveEventPlugin:s,ChangeEventPlugin:a,SelectEventPlugin:_,BeforeInputEventPlugin:o}),g.NativeComponent.injectGenericComponentClass(h),g.NativeComponent.injectTextComponentClass(v),g.Class.injectMixin(p),g.DOMProperty.injectDOMPropertyConfig(c),g.DOMProperty.injectDOMPropertyConfig(D),g.EmptyComponent.injectEmptyComponent("noscript"),g.Updates.injectReconcileTransaction(b),g.Updates.injectBatchingStrategy(f),g.RootIndex.injectCreateReactRootIndex(l.canUseDOM?i.createReactRootIndex:E.createReactRootIndex),g.Component.injectEnvironment(d))}var o=e(3),a=e(7),i=e(8),u=e(13),s=e(14),l=e(128),c=e(21),p=e(25),d=e(31),f=e(48),h=e(37),v=e(46),m=e(56),g=e(57),y=e(59),C=e(63),b=e(73),_=e(84),E=e(85),x=e(86),D=e(83),M=!1;t.exports={inject:r}},{128:128,13:13,14:14,21:21,25:25,3:3,31:31,37:37,46:46,48:48,56:56,57:57,59:59,63:63,7:7,73:73,8:8,83:83,84:84,85:85,86:86}],50:[function(e,t,n){"use strict";var r=e(34),o=e(23),a=(e(102),"function"==typeof Symbol&&Symbol["for"]&&Symbol["for"]("react.element")||60103),i={key:!0,ref:!0,__self:!0,__source:!0},u=function(e,t,n,r,o,i,u){var s={$$typeof:a,type:e,key:t,ref:n,props:u,_owner:i};return s};u.createElement=function(e,t,n){var o,a={},s=null,l=null,c=null,p=null;if(null!=t){l=void 0===t.ref?null:t.ref,s=void 0===t.key?null:""+t.key,c=void 0===t.__self?null:t.__self,p=void 0===t.__source?null:t.__source;for(o in t)t.hasOwnProperty(o)&&!i.hasOwnProperty(o)&&(a[o]=t[o])}var d=arguments.length-2;if(1===d)a.children=n;else if(d>1){for(var f=Array(d),h=0;d>h;h++)f[h]=arguments[h+2];a.children=f}if(e&&e.defaultProps){var v=e.defaultProps;for(o in v)"undefined"==typeof a[o]&&(a[o]=v[o])}return u(e,s,l,c,p,r.current,a)},u.createFactory=function(e){var t=u.createElement.bind(null,e);return t.type=e,t},u.cloneAndReplaceKey=function(e,t){var n=u(e.type,t,e.ref,e._self,e._source,e._owner,e.props);return n},u.cloneAndReplaceProps=function(e,t){var n=u(e.type,e.key,e.ref,e._self,e._source,e._owner,t);return n},u.cloneElement=function(e,t,n){var a,s=o({},e.props),l=e.key,c=e.ref,p=e._self,d=e._source,f=e._owner;if(null!=t){void 0!==t.ref&&(c=t.ref,f=r.current),void 0!==t.key&&(l=""+t.key);for(a in t)t.hasOwnProperty(a)&&!i.hasOwnProperty(a)&&(s[a]=t[a])}var h=arguments.length-2;if(1===h)s.children=n;else if(h>1){for(var v=Array(h),m=0;h>m;m++)v[m]=arguments[m+2];s.children=v}return u(e.type,l,c,p,d,f,s)},u.isValidElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===a},t.exports=u},{102:102,23:23,34:34}],51:[function(e,t,n){"use strict";function r(){if(p.current){var e=p.current.getName();if(e)return" Check the render method of `"+e+"`."}return""}function o(e,t){e._store&&!e._store.validated&&null==e.key&&(e._store.validated=!0,a("uniqueKey",e,t))}function a(e,t,n){var o=r();if(!o){var a="string"==typeof n?n:n.displayName||n.name;a&&(o=" Check the top-level render call using <"+a+">.")}var i=h[e]||(h[e]={});if(i[o])return null;i[o]=!0;var u={parentOrOwner:o,url:" See https://fb.me/react-warning-keys for more information.",childOwner:null};return t&&t._owner&&t._owner!==p.current&&(u.childOwner=" It was passed a child from "+t._owner.getName()+"."),u}function i(e,t){if("object"==typeof e)if(Array.isArray(e))for(var n=0;n=i;i++)if(o(e,i)&&o(t,i))r=i;else if(e.charAt(i)!==t.charAt(i))break;var u=e.substr(0,r);return a(u)?void 0:d(!1),u}function c(e,t,n,r,o,a){e=e||"",t=t||"",e===t?d(!1):void 0;var l=i(t,e);l||i(e,t)?void 0:d(!1);for(var c=0,p=l?u:s,f=e;;f=p(f,t)){var h;if(o&&f===e||a&&f===t||(h=n(f,l,r)),h===!1||f===t)break;c++1){var t=e.indexOf(f,1);return t>-1?e.substr(0,t):e}return null},traverseEnterLeave:function(e,t,n,r,o){var a=l(e,t);a!==e&&c(e,a,n,r,!1,!0),a!==t&&c(a,t,n,o,!0,!1)},traverseTwoPhase:function(e,t,n){e&&(c("",e,t,n,!0,!1),c(e,"",t,n,!1,!0))},traverseTwoPhaseSkipTarget:function(e,t,n){e&&(c("",e,t,n,!0,!0),c(e,"",t,n,!0,!0))},traverseAncestors:function(e,t,n){c("",e,t,n,!0,!1)},getFirstCommonAncestorID:l,_getNextDescendantID:s,isAncestorIDOf:i,SEPARATOR:f};t.exports=m},{142:142,76:76}],60:[function(e,t,n){"use strict";var r={remove:function(e){e._reactInternalInstance=void 0},get:function(e){return e._reactInternalInstance},has:function(e){return void 0!==e._reactInternalInstance},set:function(e,t){e._reactInternalInstance=t}};t.exports=r},{}],61:[function(e,t,n){"use strict";var r=e(28),o=e(30),a=e(29),i=e(38),u=e(50),s=(e(51),e(72)),l=e(82),c=e(23),p=e(119),d=u.createElement,f=u.createFactory,h=u.cloneElement,v={Children:{map:r.map,forEach:r.forEach,count:r.count,toArray:r.toArray,only:p},Component:o,createElement:d,cloneElement:h,isValidElement:u.isValidElement,PropTypes:s,createClass:a.createClass,createFactory:f,createMixin:function(e){return e},DOM:i,version:l,__spread:c};t.exports=v},{119:119,23:23,28:28,29:29,30:30,38:38,50:50,51:51,72:72,82:82}],62:[function(e,t,n){"use strict";var r=e(101),o=/\/?>/,a={CHECKSUM_ATTR_NAME:"data-react-checksum",addChecksumToMarkup:function(e){var t=r(e);return e.replace(o," "+a.CHECKSUM_ATTR_NAME+'="'+t+'"$&')},canReuseMarkup:function(e,t){var n=t.getAttribute(a.CHECKSUM_ATTR_NAME);n=n&&parseInt(n,10);var o=r(e);return o===n}};t.exports=a},{101:101}],63:[function(e,t,n){"use strict";function r(e,t){for(var n=Math.min(e.length,t.length),r=0;n>r;r++)if(e.charAt(r)!==t.charAt(r))return r;return e.length===t.length?-1:n}function o(e){return e?e.nodeType===W?e.documentElement:e.firstChild:null}function a(e){var t=o(e);return t&&Q.getID(t)}function i(e){var t=u(e);if(t)if(V.hasOwnProperty(t)){var n=V[t];n!==e&&(p(n,t)?L(!1):void 0,V[t]=e)}else V[t]=e;return t}function u(e){return e&&e.getAttribute&&e.getAttribute(B)||""}function s(e,t){var n=u(e);n!==t&&delete V[n],e.setAttribute(B,t),V[t]=e}function l(e){return V.hasOwnProperty(e)&&p(V[e],e)||(V[e]=Q.findReactNodeByID(e)),V[e]}function c(e){var t=N.get(e)._rootNodeID;return D.isNullComponentID(t)?null:(V.hasOwnProperty(t)&&p(V[t],t)||(V[t]=Q.findReactNodeByID(t)),V[t])}function p(e,t){if(e){u(e)!==t?L(!1):void 0;var n=Q.findReactContainerForID(t);if(n&&O(n,e))return!0}return!1}function d(e){delete V[e]}function f(e){var t=V[e];return t&&p(t,e)?void(G=t):!1}function h(e){G=null,M.traverseAncestors(e,f);var t=G;return G=null,t}function v(e,t,n,r,o,a){E.useCreateElement&&(a=T({},a),n.nodeType===W?a[H]=n:a[H]=n.ownerDocument);var i=R.mountComponent(e,t,r,a);e._renderedComponent._topLevelWrapper=e,Q._mountImageIntoNode(i,n,o,r)}function m(e,t,n,r,o){var a=S.ReactReconcileTransaction.getPooled(r);a.perform(v,null,e,t,n,a,r,o),S.ReactReconcileTransaction.release(a)}function g(e,t){for(R.unmountComponent(e),t.nodeType===W&&(t=t.documentElement);t.lastChild;)t.removeChild(t.lastChild)}function y(e){var t=a(e);return t?t!==M.getReactRootIDFromNodeID(t):!1}function C(e){for(;e&&e.parentNode!==e;e=e.parentNode)if(1===e.nodeType){var t=u(e);if(t){var n,r=M.getReactRootIDFromNodeID(t),o=e;do if(n=u(o),o=o.parentNode,null==o)return null;while(n!==r);if(o===Y[r])return e}}return null}var b=e(10),_=e(26),E=(e(34),e(39)),x=e(50),D=e(53),M=e(59),N=e(60),P=e(62),w=e(69),R=e(74),I=e(80),S=e(81),T=e(23),k=e(135),O=e(131),A=e(116),L=e(142),U=e(122),F=e(124),B=(e(126),e(151),b.ID_ATTRIBUTE_NAME),V={},j=1,W=9,K=11,H="__ReactMount_ownerDocument$"+Math.random().toString(36).slice(2),q={},Y={},z=[],G=null,X=function(){};X.prototype.isReactComponent={},X.prototype.render=function(){return this.props};var Q={TopLevelWrapper:X,_instancesByReactRootID:q,scrollMonitor:function(e,t){t()},_updateRootComponent:function(e,t,n,r){return Q.scrollMonitor(n,function(){I.enqueueElementInternal(e,t),r&&I.enqueueCallbackInternal(e,r)}),e},_registerComponent:function(e,t){!t||t.nodeType!==j&&t.nodeType!==W&&t.nodeType!==K?L(!1):void 0,_.ensureScrollValueMonitoring();var n=Q.registerContainer(t);return q[n]=e,n},_renderNewRootComponent:function(e,t,n,r){var o=A(e,null),a=Q._registerComponent(o,t);return S.batchedUpdates(m,o,a,t,n,r),o},renderSubtreeIntoContainer:function(e,t,n,r){return null==e||null==e._reactInternalInstance?L(!1):void 0,Q._renderSubtreeIntoContainer(e,t,n,r)},_renderSubtreeIntoContainer:function(e,t,n,r){x.isValidElement(t)?void 0:L(!1);var i=new x(X,null,null,null,null,null,t),s=q[a(n)];if(s){var l=s._currentElement,c=l.props;if(F(c,t)){var p=s._renderedComponent.getPublicInstance(),d=r&&function(){r.call(p)};return Q._updateRootComponent(s,i,n,d),p}Q.unmountComponentAtNode(n)}var f=o(n),h=f&&!!u(f),v=y(n),m=h&&!s&&!v,g=Q._renderNewRootComponent(i,n,m,null!=e?e._reactInternalInstance._processChildContext(e._reactInternalInstance._context):k)._renderedComponent.getPublicInstance();return r&&r.call(g),g},render:function(e,t,n){return Q._renderSubtreeIntoContainer(null,e,t,n)},registerContainer:function(e){var t=a(e);return t&&(t=M.getReactRootIDFromNodeID(t)),t||(t=M.createReactRootID()),Y[t]=e,t},unmountComponentAtNode:function(e){!e||e.nodeType!==j&&e.nodeType!==W&&e.nodeType!==K?L(!1):void 0;var t=a(e),n=q[t];if(!n){var r=(y(e),u(e));return r&&r===M.getReactRootIDFromNodeID(r),!1}return S.batchedUpdates(g,n,e),delete q[t],delete Y[t],!0},findReactContainerForID:function(e){var t=M.getReactRootIDFromNodeID(e),n=Y[t];return n},findReactNodeByID:function(e){var t=Q.findReactContainerForID(e);return Q.findComponentRoot(t,e)},getFirstReactDOM:function(e){return C(e)},findComponentRoot:function(e,t){var n=z,r=0,o=h(t)||e;for(n[0]=o.firstChild,n.length=1;r>"}var y=e(50),C=e(70),b=e(134),_=e(113),E="<>",x={array:o("array"),bool:o("boolean"),func:o("function"),number:o("number"),object:o("object"),string:o("string"),any:a(),arrayOf:i,element:u(),instanceOf:s,node:d(),objectOf:c,oneOf:l,oneOfType:p,shape:f};t.exports=x},{113:113,134:134,50:50,70:70}],73:[function(e,t,n){"use strict";function r(e){this.reinitializeTransaction(),this.renderToStaticMarkup=!1,this.reactMountReady=o.getPooled(null),this.useCreateElement=!e&&u.useCreateElement}var o=e(6),a=e(24),i=e(26),u=e(39),s=e(58),l=e(98),c=e(23),p={initialize:s.getSelectionInformation,close:s.restoreSelection},d={initialize:function(){var e=i.isEnabled();return i.setEnabled(!1),e},close:function(e){i.setEnabled(e)}},f={initialize:function(){this.reactMountReady.reset()},close:function(){this.reactMountReady.notifyAll()}},h=[p,d,f],v={getTransactionWrappers:function(){return h},getReactMountReady:function(){return this.reactMountReady},destructor:function(){o.release(this.reactMountReady),this.reactMountReady=null}};c(r.prototype,l.Mixin,v),a.addPoolingTo(r),t.exports=r},{23:23,24:24,26:26,39:39,58:58,6:6,98:98}],74:[function(e,t,n){"use strict";function r(){o.attachRefs(this,this._currentElement)}var o=e(75),a={mountComponent:function(e,t,n,o){var a=e.mountComponent(t,n,o);return e._currentElement&&null!=e._currentElement.ref&&n.getReactMountReady().enqueue(r,e),a},unmountComponent:function(e){o.detachRefs(e,e._currentElement),e.unmountComponent()},receiveComponent:function(e,t,n,a){var i=e._currentElement;if(t!==i||a!==e._context){var u=o.shouldUpdateRefs(i,t);u&&o.detachRefs(e,i),e.receiveComponent(t,n,a),u&&e._currentElement&&null!=e._currentElement.ref&&n.getReactMountReady().enqueue(r,e); +}},performUpdateIfNecessary:function(e,t){e.performUpdateIfNecessary(t)}};t.exports=a},{75:75}],75:[function(e,t,n){"use strict";function r(e,t,n){"function"==typeof e?e(t.getPublicInstance()):a.addComponentAsRefTo(t,e,n)}function o(e,t,n){"function"==typeof e?e(null):a.removeComponentAsRefFrom(t,e,n)}var a=e(68),i={};i.attachRefs=function(e,t){if(null!==t&&t!==!1){var n=t.ref;null!=n&&r(n,e,t._owner)}},i.shouldUpdateRefs=function(e,t){var n=null===e||e===!1,r=null===t||t===!1;return n||r||t._owner!==e._owner||t.ref!==e.ref},i.detachRefs=function(e,t){if(null!==t&&t!==!1){var n=t.ref;null!=n&&o(n,e,t._owner)}},t.exports=i},{68:68}],76:[function(e,t,n){"use strict";var r={injectCreateReactRootIndex:function(e){o.createReactRootIndex=e}},o={createReactRootIndex:null,injection:r};t.exports=o},{}],77:[function(e,t,n){"use strict";var r={isBatchingUpdates:!1,batchedUpdates:function(e){}};t.exports=r},{}],78:[function(e,t,n){"use strict";function r(e){i.isValidElement(e)?void 0:h(!1);var t;try{p.injection.injectBatchingStrategy(l);var n=u.createReactRootID();return t=c.getPooled(!1),t.perform(function(){var r=f(e,null),o=r.mountComponent(n,t,d);return s.addChecksumToMarkup(o)},null)}finally{c.release(t),p.injection.injectBatchingStrategy(a)}}function o(e){i.isValidElement(e)?void 0:h(!1);var t;try{p.injection.injectBatchingStrategy(l);var n=u.createReactRootID();return t=c.getPooled(!0),t.perform(function(){var r=f(e,null);return r.mountComponent(n,t,d)},null)}finally{c.release(t),p.injection.injectBatchingStrategy(a)}}var a=e(48),i=e(50),u=e(59),s=e(62),l=e(77),c=e(79),p=e(81),d=e(135),f=e(116),h=e(142);t.exports={renderToString:r,renderToStaticMarkup:o}},{116:116,135:135,142:142,48:48,50:50,59:59,62:62,77:77,79:79,81:81}],79:[function(e,t,n){"use strict";function r(e){this.reinitializeTransaction(),this.renderToStaticMarkup=e,this.reactMountReady=a.getPooled(null),this.useCreateElement=!1}var o=e(24),a=e(6),i=e(98),u=e(23),s=e(134),l={initialize:function(){this.reactMountReady.reset()},close:s},c=[l],p={getTransactionWrappers:function(){return c},getReactMountReady:function(){return this.reactMountReady},destructor:function(){a.release(this.reactMountReady),this.reactMountReady=null}};u(r.prototype,i.Mixin,p),o.addPoolingTo(r),t.exports=r},{134:134,23:23,24:24,6:6,98:98}],80:[function(e,t,n){"use strict";function r(e){u.enqueueUpdate(e)}function o(e,t){var n=i.get(e);return n?n:null}var a=(e(34),e(50)),i=e(60),u=e(81),s=e(23),l=e(142),c=(e(151),{isMounted:function(e){var t=i.get(e);return t?!!t._renderedComponent:!1},enqueueCallback:function(e,t){"function"!=typeof t?l(!1):void 0;var n=o(e);return n?(n._pendingCallbacks?n._pendingCallbacks.push(t):n._pendingCallbacks=[t],void r(n)):null},enqueueCallbackInternal:function(e,t){"function"!=typeof t?l(!1):void 0,e._pendingCallbacks?e._pendingCallbacks.push(t):e._pendingCallbacks=[t],r(e)},enqueueForceUpdate:function(e){var t=o(e,"forceUpdate");t&&(t._pendingForceUpdate=!0,r(t))},enqueueReplaceState:function(e,t){var n=o(e,"replaceState");n&&(n._pendingStateQueue=[t],n._pendingReplaceState=!0,r(n))},enqueueSetState:function(e,t){var n=o(e,"setState");if(n){var a=n._pendingStateQueue||(n._pendingStateQueue=[]);a.push(t),r(n)}},enqueueSetProps:function(e,t){var n=o(e,"setProps");n&&c.enqueueSetPropsInternal(n,t)},enqueueSetPropsInternal:function(e,t){var n=e._topLevelWrapper;n?void 0:l(!1);var o=n._pendingElement||n._currentElement,i=o.props,u=s({},i.props,t);n._pendingElement=a.cloneAndReplaceProps(o,a.cloneAndReplaceProps(i,u)),r(n)},enqueueReplaceProps:function(e,t){var n=o(e,"replaceProps");n&&c.enqueueReplacePropsInternal(n,t)},enqueueReplacePropsInternal:function(e,t){var n=e._topLevelWrapper;n?void 0:l(!1);var o=n._pendingElement||n._currentElement,i=o.props;n._pendingElement=a.cloneAndReplaceProps(o,a.cloneAndReplaceProps(i,t)),r(n)},enqueueElementInternal:function(e,t){e._pendingElement=t,r(e)}});t.exports=c},{142:142,151:151,23:23,34:34,50:50,60:60,81:81}],81:[function(e,t,n){"use strict";function r(){N.ReactReconcileTransaction&&b?void 0:m(!1)}function o(){this.reinitializeTransaction(),this.dirtyComponentsLength=null,this.callbackQueue=c.getPooled(),this.reconcileTransaction=N.ReactReconcileTransaction.getPooled(!1)}function a(e,t,n,o,a,i){r(),b.batchedUpdates(e,t,n,o,a,i)}function i(e,t){return e._mountOrder-t._mountOrder}function u(e){var t=e.dirtyComponentsLength;t!==g.length?m(!1):void 0,g.sort(i);for(var n=0;t>n;n++){var r=g[n],o=r._pendingCallbacks;if(r._pendingCallbacks=null,f.performUpdateIfNecessary(r,e.reconcileTransaction),o)for(var a=0;ar;){for(;rr;r++)n+=t+=e.charCodeAt(r);return t%=o,n%=o,t|n<<16}var o=65521;t.exports=r},{}],102:[function(e,t,n){"use strict";var r=!1;t.exports=r},{}],103:[function(e,t,n){"use strict";function r(e,t){var n=null==t||"boolean"==typeof t||""===t;if(n)return"";var r=isNaN(t);return r||0===t||a.hasOwnProperty(e)&&a[e]?""+t:("string"==typeof t&&(t=t.trim()),t+"px")}var o=e(4),a=o.isUnitlessNumber;t.exports=r},{4:4}],104:[function(e,t,n){"use strict";function r(e,t,n,r,o){return o}e(23),e(151);t.exports=r},{151:151,23:23}],105:[function(e,t,n){"use strict";function r(e){return a[e]}function o(e){return(""+e).replace(i,r)}var a={"&":"&",">":">","<":"<",'"':""","'":"'"},i=/[&><"']/g;t.exports=o},{}],106:[function(e,t,n){"use strict";function r(e){return null==e?null:1===e.nodeType?e:o.has(e)?a.getNodeFromInstance(e):(null!=e.render&&"function"==typeof e.render?i(!1):void 0,void i(!1))}var o=(e(34),e(60)),a=e(63),i=e(142);e(151);t.exports=r},{142:142,151:151,34:34,60:60,63:63}],107:[function(e,t,n){"use strict";function r(e,t,n){var r=e,o=void 0===r[n];o&&null!=t&&(r[n]=t)}function o(e){if(null==e)return e;var t={};return a(e,r,t),t}var a=e(125);e(151);t.exports=o},{125:125,151:151}],108:[function(e,t,n){"use strict";var r=function(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)};t.exports=r},{}],109:[function(e,t,n){"use strict";function r(e){var t,n=e.keyCode;return"charCode"in e?(t=e.charCode,0===t&&13===n&&(t=13)):t=n,t>=32||13===t?t:0}t.exports=r},{}],110:[function(e,t,n){"use strict";function r(e){if(e.key){var t=a[e.key]||e.key;if("Unidentified"!==t)return t}if("keypress"===e.type){var n=o(e);return 13===n?"Enter":String.fromCharCode(n)}return"keydown"===e.type||"keyup"===e.type?i[e.keyCode]||"Unidentified":""}var o=e(109),a={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},i={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"};t.exports=r},{109:109}],111:[function(e,t,n){"use strict";function r(e){var t=this,n=t.nativeEvent;if(n.getModifierState)return n.getModifierState(e);var r=a[e];return r?!!n[r]:!1}function o(e){return r}var a={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};t.exports=o},{}],112:[function(e,t,n){"use strict";function r(e){var t=e.target||e.srcElement||window;return 3===t.nodeType?t.parentNode:t}t.exports=r},{}],113:[function(e,t,n){"use strict";function r(e){var t=e&&(o&&e[o]||e[a]);return"function"==typeof t?t:void 0}var o="function"==typeof Symbol&&Symbol.iterator,a="@@iterator";t.exports=r},{}],114:[function(e,t,n){"use strict";function r(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function o(e){for(;e;){if(e.nextSibling)return e.nextSibling;e=e.parentNode}}function a(e,t){for(var n=r(e),a=0,i=0;n;){if(3===n.nodeType){if(i=a+n.textContent.length,t>=a&&i>=t)return{node:n,offset:t-a};a=i}n=r(o(n))}}t.exports=a},{}],115:[function(e,t,n){"use strict";function r(){return!a&&o.canUseDOM&&(a="textContent"in document.documentElement?"textContent":"innerText"),a}var o=e(128),a=null;t.exports=r},{128:128}],116:[function(e,t,n){"use strict";function r(e){return"function"==typeof e&&"undefined"!=typeof e.prototype&&"function"==typeof e.prototype.mountComponent&&"function"==typeof e.prototype.receiveComponent}function o(e){var t;if(null===e||e===!1)t=new i(o);else if("object"==typeof e){var n=e;!n||"function"!=typeof n.type&&"string"!=typeof n.type?l(!1):void 0,t="string"==typeof n.type?u.createInternalComponent(n):r(n.type)?new n.type(n):new c}else"string"==typeof e||"number"==typeof e?t=u.createInstanceForText(e):l(!1);return t.construct(e),t._mountIndex=0,t._mountImage=null,t}var a=e(33),i=e(52),u=e(66),s=e(23),l=e(142),c=(e(151),function(){});s(c.prototype,a.Mixin,{_instantiateReactComponent:o}),t.exports=o},{142:142,151:151,23:23,33:33,52:52,66:66}],117:[function(e,t,n){"use strict";function r(e,t){if(!a.canUseDOM||t&&!("addEventListener"in document))return!1;var n="on"+e,r=n in document;if(!r){var i=document.createElement("div");i.setAttribute(n,"return;"),r="function"==typeof i[n]}return!r&&o&&"wheel"===e&&(r=document.implementation.hasFeature("Events.wheel","3.0")),r}var o,a=e(128);a.canUseDOM&&(o=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0),t.exports=r},{128:128}],118:[function(e,t,n){"use strict";function r(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&o[e.type]||"textarea"===t)}var o={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};t.exports=r},{}],119:[function(e,t,n){"use strict";function r(e){return o.isValidElement(e)?void 0:a(!1),e}var o=e(50),a=e(142);t.exports=r},{142:142,50:50}],120:[function(e,t,n){"use strict";function r(e){return'"'+o(e)+'"'}var o=e(105);t.exports=r},{105:105}],121:[function(e,t,n){"use strict";var r=e(63);t.exports=r.renderSubtreeIntoContainer},{63:63}],122:[function(e,t,n){"use strict";var r=e(128),o=/^[ \r\n\t\f]/,a=/<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/,i=function(e,t){e.innerHTML=t};if("undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction&&(i=function(e,t){MSApp.execUnsafeLocalFunction(function(){e.innerHTML=t})}),r.canUseDOM){var u=document.createElement("div");u.innerHTML=" ",""===u.innerHTML&&(i=function(e,t){if(e.parentNode&&e.parentNode.replaceChild(e,e),o.test(t)||"<"===t[0]&&a.test(t)){e.innerHTML=String.fromCharCode(65279)+t;var n=e.firstChild;1===n.data.length?e.removeChild(n):n.deleteData(0,1)}else e.innerHTML=t})}t.exports=i},{128:128}],123:[function(e,t,n){"use strict";var r=e(128),o=e(105),a=e(122),i=function(e,t){e.textContent=t};r.canUseDOM&&("textContent"in document.documentElement||(i=function(e,t){a(e,o(t))})),t.exports=i},{105:105,122:122,128:128}],124:[function(e,t,n){"use strict";function r(e,t){var n=null===e||e===!1,r=null===t||t===!1;if(n||r)return n===r;var o=typeof e,a=typeof t;return"string"===o||"number"===o?"string"===a||"number"===a:"object"===a&&e.type===t.type&&e.key===t.key}t.exports=r},{}],125:[function(e,t,n){"use strict";function r(e){return v[e]}function o(e,t){return e&&null!=e.key?i(e.key):t.toString(36)}function a(e){return(""+e).replace(m,r)}function i(e){return"$"+a(e)}function u(e,t,n,r){var a=typeof e;if(("undefined"===a||"boolean"===a)&&(e=null),null===e||"string"===a||"number"===a||l.isValidElement(e))return n(r,e,""===t?f+o(e,0):t),1;var s,c,v=0,m=""===t?f:t+h;if(Array.isArray(e))for(var g=0;g":i.innerHTML="<"+e+">",u[e]=!i.firstChild),u[e]?d[e]:null}var o=e(128),a=e(142),i=o.canUseDOM?document.createElement("div"):null,u={},s=[1,'"],l=[1,"","
    "],c=[3,"","
    "],p=[1,'',""],d={"*":[1,"?
    ","
    "],area:[1,"",""],col:[2,"","
    "],legend:[1,"
    ","
    "],param:[1,"",""],tr:[2,"","
    "],optgroup:s,option:s,caption:l,colgroup:l,tbody:l,tfoot:l,thead:l,td:c,th:c},f=["circle","clipPath","defs","ellipse","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","text","tspan"];f.forEach(function(e){d[e]=p,u[e]=!0}),t.exports=r},{128:128,142:142}],139:[function(e,t,n){"use strict";function r(e){return e===window?{x:window.pageXOffset||document.documentElement.scrollLeft,y:window.pageYOffset||document.documentElement.scrollTop}:{x:e.scrollLeft,y:e.scrollTop}}t.exports=r},{}],140:[function(e,t,n){"use strict";function r(e){return e.replace(o,"-$1").toLowerCase()}var o=/([A-Z])/g;t.exports=r},{}],141:[function(e,t,n){"use strict";function r(e){return o(e).replace(a,"-ms-")}var o=e(140),a=/^ms-/;t.exports=r},{140:140}],142:[function(e,t,n){"use strict";var r=function(e,t,n,r,o,a,i,u){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,r,o,a,i,u],c=0;s=new Error("Invariant Violation: "+t.replace(/%s/g,function(){return l[c++]}))}throw s.framesToPop=1,s}};t.exports=r},{}],143:[function(e,t,n){"use strict";function r(e){return!(!e||!("function"==typeof Node?e instanceof Node:"object"==typeof e&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName))}t.exports=r},{}],144:[function(e,t,n){"use strict";function r(e){return o(e)&&3==e.nodeType}var o=e(143);t.exports=r},{143:143}],145:[function(e,t,n){"use strict";var r=e(142),o=function(e){var t,n={};e instanceof Object&&!Array.isArray(e)?void 0:r(!1);for(t in e)e.hasOwnProperty(t)&&(n[t]=t);return n};t.exports=o},{142:142}],146:[function(e,t,n){"use strict";var r=function(e){var t;for(t in e)if(e.hasOwnProperty(t))return t;return null};t.exports=r},{}],147:[function(e,t,n){"use strict";function r(e,t,n){if(!e)return null;var r={};for(var a in e)o.call(e,a)&&(r[a]=t.call(n,e[a],a,e));return r}var o=Object.prototype.hasOwnProperty;t.exports=r},{}],148:[function(e,t,n){"use strict";function r(e){var t={};return function(n){return t.hasOwnProperty(n)||(t[n]=e.call(this,n)),t[n]}}t.exports=r},{}],149:[function(e,t,n){"use strict";function r(e,t){if(e===t)return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(var a=o.bind(t),i=0;ia;a++)r[a]=e[a];return r}var o=e(142);t.exports=r},{142:142}],151:[function(e,t,n){"use strict";var r=e(134),o=r;t.exports=o},{134:134}]},{},[1])(1)}); \ No newline at end of file diff --git a/public/js/snowstorm.js b/public/js/snowstorm.js new file mode 100644 index 0000000..477dd6e --- /dev/null +++ b/public/js/snowstorm.js @@ -0,0 +1,666 @@ +/** @license + * DHTML Snowstorm! JavaScript-based snow for web pages + * Making it snow on the internets since 2003. You're welcome. + * ----------------------------------------------------------- + * Version 1.44.20131208 (Previous rev: 1.44.20131125) + * Copyright (c) 2007, Scott Schiller. All rights reserved. + * Code provided under the BSD License + * http://schillmania.com/projects/snowstorm/license.txt + */ + +/*jslint nomen: true, plusplus: true, sloppy: true, vars: true, white: true */ +/*global window, document, navigator, clearInterval, setInterval */ + +var snowStorm = (function(window, document) { + + // --- common properties --- + + this.autoStart = true; // Whether the snow should start automatically or not. + this.excludeMobile = true; // Snow is likely to be bad news for mobile phones' CPUs (and batteries.) Enable at your own risk. + this.flakesMax = 128; // Limit total amount of snow made (falling + sticking) + this.flakesMaxActive = 64; // Limit amount of snow falling at once (less = lower CPU use) + this.animationInterval = 33; // Theoretical "miliseconds per frame" measurement. 20 = fast + smooth, but high CPU use. 50 = more conservative, but slower + this.useGPU = true; // Enable transform-based hardware acceleration, reduce CPU load. + this.className = null; // CSS class name for further customization on snow elements + this.excludeMobile = true; // Snow is likely to be bad news for mobile phones' CPUs (and batteries.) By default, be nice. + this.flakeBottom = null; // Integer for Y axis snow limit, 0 or null for "full-screen" snow effect + this.followMouse = true; // Snow movement can respond to the user's mouse + this.snowColor = '#fff'; // Don't eat (or use?) yellow snow. + this.snowCharacter = '•'; // • = bullet, · is square on some systems etc. + this.snowStick = true; // Whether or not snow should "stick" at the bottom. When off, will never collect. + this.targetElement = null; // element which snow will be appended to (null = document.body) - can be an element ID eg. 'myDiv', or a DOM node reference + this.useMeltEffect = true; // When recycling fallen snow (or rarely, when falling), have it "melt" and fade out if browser supports it + this.useTwinkleEffect = false; // Allow snow to randomly "flicker" in and out of view while falling + this.usePositionFixed = false; // true = snow does not shift vertically when scrolling. May increase CPU load, disabled by default - if enabled, used only where supported + this.usePixelPosition = false; // Whether to use pixel values for snow top/left vs. percentages. Auto-enabled if body is position:relative or targetElement is specified. + + // --- less-used bits --- + + this.freezeOnBlur = true; // Only snow when the window is in focus (foreground.) Saves CPU. + this.flakeLeftOffset = 0; // Left margin/gutter space on edge of container (eg. browser window.) Bump up these values if seeing horizontal scrollbars. + this.flakeRightOffset = 0; // Right margin/gutter space on edge of container + this.flakeWidth = 8; // Max pixel width reserved for snow element + this.flakeHeight = 8; // Max pixel height reserved for snow element + this.vMaxX = 5; // Maximum X velocity range for snow + this.vMaxY = 4; // Maximum Y velocity range for snow + this.zIndex = 0; // CSS stacking order applied to each snowflake + + // --- "No user-serviceable parts inside" past this point, yadda yadda --- + + var storm = this, + features, + // UA sniffing and backCompat rendering mode checks for fixed position, etc. + isIE = navigator.userAgent.match(/msie/i), + isIE6 = navigator.userAgent.match(/msie 6/i), + isMobile = navigator.userAgent.match(/mobile|opera m(ob|in)/i), + isBackCompatIE = (isIE && document.compatMode === 'BackCompat'), + noFixed = (isBackCompatIE || isIE6), + screenX = null, screenX2 = null, screenY = null, scrollY = null, docHeight = null, vRndX = null, vRndY = null, + windOffset = 1, + windMultiplier = 2, + flakeTypes = 6, + fixedForEverything = false, + targetElementIsRelative = false, + opacitySupported = (function(){ + try { + document.createElement('div').style.opacity = '0.5'; + } catch(e) { + return false; + } + return true; + }()), + didInit = false, + docFrag = document.createDocumentFragment(); + + features = (function() { + + var getAnimationFrame; + + /** + * hat tip: paul irish + * http://paulirish.com/2011/requestanimationframe-for-smart-animating/ + * https://gist.github.com/838785 + */ + + function timeoutShim(callback) { + window.setTimeout(callback, 1000/(storm.animationInterval || 20)); + } + + var _animationFrame = (window.requestAnimationFrame || + window.webkitRequestAnimationFrame || + window.mozRequestAnimationFrame || + window.oRequestAnimationFrame || + window.msRequestAnimationFrame || + timeoutShim); + + // apply to window, avoid "illegal invocation" errors in Chrome + getAnimationFrame = _animationFrame ? function() { + return _animationFrame.apply(window, arguments); + } : null; + + var testDiv; + + testDiv = document.createElement('div'); + + function has(prop) { + + // test for feature support + var result = testDiv.style[prop]; + return (result !== undefined ? prop : null); + + } + + // note local scope. + var localFeatures = { + + transform: { + ie: has('-ms-transform'), + moz: has('MozTransform'), + opera: has('OTransform'), + webkit: has('webkitTransform'), + w3: has('transform'), + prop: null // the normalized property value + }, + + getAnimationFrame: getAnimationFrame + + }; + + localFeatures.transform.prop = ( + localFeatures.transform.w3 || + localFeatures.transform.moz || + localFeatures.transform.webkit || + localFeatures.transform.ie || + localFeatures.transform.opera + ); + + testDiv = null; + + return localFeatures; + + }()); + + this.timer = null; + this.flakes = []; + this.disabled = false; + this.active = false; + this.meltFrameCount = 20; + this.meltFrames = []; + + this.setXY = function(o, x, y) { + + if (!o) { + return false; + } + + if (storm.usePixelPosition || targetElementIsRelative) { + + o.style.left = (x - storm.flakeWidth) + 'px'; + o.style.top = (y - storm.flakeHeight) + 'px'; + + } else if (noFixed) { + + o.style.right = (100-(x/screenX*100)) + '%'; + // avoid creating vertical scrollbars + o.style.top = (Math.min(y, docHeight-storm.flakeHeight)) + 'px'; + + } else { + + if (!storm.flakeBottom) { + + // if not using a fixed bottom coordinate... + o.style.right = (100-(x/screenX*100)) + '%'; + o.style.bottom = (100-(y/screenY*100)) + '%'; + + } else { + + // absolute top. + o.style.right = (100-(x/screenX*100)) + '%'; + o.style.top = (Math.min(y, docHeight-storm.flakeHeight)) + 'px'; + + } + + } + + }; + + this.events = (function() { + + var old = (!window.addEventListener && window.attachEvent), slice = Array.prototype.slice, + evt = { + add: (old?'attachEvent':'addEventListener'), + remove: (old?'detachEvent':'removeEventListener') + }; + + function getArgs(oArgs) { + var args = slice.call(oArgs), len = args.length; + if (old) { + args[1] = 'on' + args[1]; // prefix + if (len > 3) { + args.pop(); // no capture + } + } else if (len === 3) { + args.push(false); + } + return args; + } + + function apply(args, sType) { + var element = args.shift(), + method = [evt[sType]]; + if (old) { + element[method](args[0], args[1]); + } else { + element[method].apply(element, args); + } + } + + function addEvent() { + apply(getArgs(arguments), 'add'); + } + + function removeEvent() { + apply(getArgs(arguments), 'remove'); + } + + return { + add: addEvent, + remove: removeEvent + }; + + }()); + + function rnd(n,min) { + if (isNaN(min)) { + min = 0; + } + return (Math.random()*n)+min; + } + + function plusMinus(n) { + return (parseInt(rnd(2),10)===1?n*-1:n); + } + + this.randomizeWind = function() { + var i; + vRndX = plusMinus(rnd(storm.vMaxX,0.2)); + vRndY = rnd(storm.vMaxY,0.2); + if (this.flakes) { + for (i=0; i=0 && s.vX<0.2) { + s.vX = 0.2; + } else if (s.vX<0 && s.vX>-0.2) { + s.vX = -0.2; + } + if (s.vY>=0 && s.vY<0.2) { + s.vY = 0.2; + } + }; + + this.move = function() { + var vX = s.vX*windOffset, yDiff; + s.x += vX; + s.y += (s.vY*s.vAmp); + if (s.x >= screenX || screenX-s.x < storm.flakeWidth) { // X-axis scroll check + s.x = 0; + } else if (vX < 0 && s.x-storm.flakeLeftOffset < -storm.flakeWidth) { + s.x = screenX-storm.flakeWidth-1; // flakeWidth; + } + s.refresh(); + yDiff = screenY+scrollY-s.y+storm.flakeHeight; + if (yDiff0.998) { + // ~1/1000 chance of melting mid-air, with each frame + s.melting = true; + s.melt(); + // only incrementally melt one frame + // s.melting = false; + } + if (storm.useTwinkleEffect) { + if (s.twinkleFrame < 0) { + if (Math.random() > 0.97) { + s.twinkleFrame = parseInt(Math.random() * 8, 10); + } + } else { + s.twinkleFrame--; + if (!opacitySupported) { + s.o.style.visibility = (s.twinkleFrame && s.twinkleFrame % 2 === 0 ? 'hidden' : 'visible'); + } else { + s.o.style.opacity = (s.twinkleFrame && s.twinkleFrame % 2 === 0 ? 0 : 1); + } + } + } + } + }; + + this.animate = function() { + // main animation loop + // move, check status, die etc. + s.move(); + }; + + this.setVelocities = function() { + s.vX = vRndX+rnd(storm.vMaxX*0.12,0.1); + s.vY = vRndY+rnd(storm.vMaxY*0.12,0.1); + }; + + this.setOpacity = function(o,opacity) { + if (!opacitySupported) { + return false; + } + o.style.opacity = opacity; + }; + + this.melt = function() { + if (!storm.useMeltEffect || !s.melting) { + s.recycle(); + } else { + if (s.meltFrame < s.meltFrameCount) { + s.setOpacity(s.o,s.meltFrames[s.meltFrame]); + s.o.style.fontSize = s.fontSize-(s.fontSize*(s.meltFrame/s.meltFrameCount))+'px'; + s.o.style.lineHeight = storm.flakeHeight+2+(storm.flakeHeight*0.75*(s.meltFrame/s.meltFrameCount))+'px'; + s.meltFrame++; + } else { + s.recycle(); + } + } + }; + + this.recycle = function() { + s.o.style.display = 'none'; + s.o.style.position = (fixedForEverything?'fixed':'absolute'); + s.o.style.bottom = 'auto'; + s.setVelocities(); + s.vCheck(); + s.meltFrame = 0; + s.melting = false; + s.setOpacity(s.o,1); + s.o.style.padding = '0px'; + s.o.style.margin = '0px'; + s.o.style.fontSize = s.fontSize+'px'; + s.o.style.lineHeight = (storm.flakeHeight+2)+'px'; + s.o.style.textAlign = 'center'; + s.o.style.verticalAlign = 'baseline'; + s.x = parseInt(rnd(screenX-storm.flakeWidth-20),10); + s.y = parseInt(rnd(screenY)*-1,10)-storm.flakeHeight; + s.refresh(); + s.o.style.display = 'block'; + s.active = 1; + }; + + this.recycle(); // set up x/y coords etc. + this.refresh(); + + }; + + this.snow = function() { + var active = 0, flake = null, i, j; + for (i=0, j=storm.flakes.length; istorm.flakesMaxActive) { + storm.flakes[storm.flakes.length-1].active = -1; + } + } + storm.targetElement.appendChild(docFrag); + }; + + this.timerInit = function() { + storm.timer = true; + storm.snow(); + }; + + this.init = function() { + var i; + for (i=0; iopera.version()?new Audio(null):new Audio).canPlayType!==k}catch(ib){Ia=!1}this.hasHTML5=Ia;this.setup=function(b){var e=!c.url;b!==k&&p&&u&&c.ok();oa(b); +b&&(e&&(N&&b.url!==k)&&c.beginDelayedInit(),!N&&(b.url!==k&&"complete"===n.readyState)&&setTimeout(G,1));return c};this.supported=this.ok=function(){return u?p&&!y:c.useHTML5Audio&&c.hasHTML5};this.getMovie=function(b){return W(b)||n[b]||g[b]};this.createSound=function(b,e){function d(){a=aa(a);c.sounds[a.id]=new Ja(a);c.soundIDs.push(a.id);return c.sounds[a.id]}var a,f=null;if(!p||!c.ok())return!1;e!==k&&(b={id:b,url:e});a=w(b);a.url=da(a.url);void 0===a.id&&(a.id=c.setupOptions.idPrefix+Ya++);if(r(a.id, +!0))return c.sounds[a.id];if(ea(a))f=d(),f._setup_html5(a);else{if(c.html5Only||c.html5.usingFlash&&a.url&&a.url.match(/data\:/i))return d();8a.instanceCount?(n(),f=a._setup_html5(),a.setPosition(a._iO.position),f.play()):(h=new Audio(a._iO.url),g=function(){t.remove(h,"ended",g);a._onfinish(a);fa(h);h=null},J=function(){t.remove(h,"canplay",J);try{h.currentTime=a._iO.position/1E3}catch(b){}h.play()},t.add(h,"ended",g),void 0!==a._iO.volume&&(h.volume=Math.max(0,Math.min(1,a._iO.volume/100))),a.muted&&(h.muted=!0),a._iO.position? +t.add(h,"canplay",J):h.play()):(f=l._start(a.id,a._iO.loops||1,9===m?a.position:a.position/1E3,a._iO.multiShot||!1),9===m&&!f&&a._iO.onplayerror&&a._iO.onplayerror.apply(a))}return a};this.stop=function(b){var c=a._iO;1===a.playState&&(a._onbufferchange(0),a._resetOnPosition(0),a.paused=!1,a.isHTML5||(a.playState=0),x(),c.to&&a.clearOnPosition(c.to),a.isHTML5?a._a&&(b=a.position,a.setPosition(0),a.position=b,a._a.pause(),a.playState=0,a._onTimer(),g()):(l._stop(a.id,b),c.serverURL&&a.unload()),a.instanceCount= +0,a._iO={},c.onstop&&c.onstop.apply(a));return a};this.setAutoPlay=function(b){a._iO.autoPlay=b;a.isHTML5||(l._setAutoPlay(a.id,b),b&&!a.instanceCount&&1===a.readyState&&a.instanceCount++)};this.getAutoPlay=function(){return a._iO.autoPlay};this.setPosition=function(b){b===k&&(b=0);var c=a.isHTML5?Math.max(b,0):Math.min(a.duration||a._iO.duration,Math.max(b,0));a.position=c;b=a.position/1E3;a._resetOnPosition(a.position);a._iO.position=c;if(a.isHTML5){if(a._a){if(a._html5_canplay){if(a._a.currentTime!== +b)try{a._a.currentTime=b,(0===a.playState||a.paused)&&a._a.pause()}catch(e){}}else if(b)return a;a.paused&&a._onTimer(!0)}}else b=9===m?a.position:b,a.readyState&&2!==a.readyState&&l._setPosition(a.id,b,a.paused||!a.playState,a._iO.multiShot);return a};this.pause=function(b){if(a.paused||0===a.playState&&1!==a.readyState)return a;a.paused=!0;a.isHTML5?(a._setup_html5().pause(),g()):(b||b===k)&&l._pause(a.id,a._iO.multiShot);a._iO.onpause&&a._iO.onpause.apply(a);return a};this.resume=function(){var b= +a._iO;if(!a.paused)return a;a.paused=!1;a.playState=1;a.isHTML5?(a._setup_html5().play(),n()):(b.isMovieStar&&!b.serverURL&&a.setPosition(a.position),l._pause(a.id,b.multiShot));!s&&b.onplay?(b.onplay.apply(a),s=!0):b.onresume&&b.onresume.apply(a);return a};this.togglePause=function(){if(0===a.playState)return a.play({position:9===m&&!a.isHTML5?a.position:a.position/1E3}),a;a.paused?a.resume():a.pause();return a};this.setPan=function(b,c){b===k&&(b=0);c===k&&(c=!1);a.isHTML5||l._setPan(a.id,b);a._iO.pan= +b;c||(a.pan=b,a.options.pan=b);return a};this.setVolume=function(b,e){b===k&&(b=100);e===k&&(e=!1);a.isHTML5?a._a&&(c.muted&&!a.muted&&(a.muted=!0,a._a.muted=!0),a._a.volume=Math.max(0,Math.min(1,b/100))):l._setVolume(a.id,c.muted&&!a.muted||a.muted?0:b);a._iO.volume=b;e||(a.volume=b,a.options.volume=b);return a};this.mute=function(){a.muted=!0;a.isHTML5?a._a&&(a._a.muted=!0):l._setVolume(a.id,0);return a};this.unmute=function(){a.muted=!1;var b=a._iO.volume!==k;a.isHTML5?a._a&&(a._a.muted=!1):l._setVolume(a.id, +b?a._iO.volume:a.options.volume);return a};this.toggleMute=function(){return a.muted?a.unmute():a.mute()};this.onposition=this.onPosition=function(b,c,e){p.push({position:parseInt(b,10),method:c,scope:e!==k?e:a,fired:!1});return a};this.clearOnPosition=function(a,b){var c;a=parseInt(a,10);if(isNaN(a))return!1;for(c=0;c=b)return!1;for(b-= +1;0<=b;b--)c=p[b],!c.fired&&a.position>=c.position&&(c.fired=!0,u++,c.method.apply(c.scope,[c.position]));return!0};this._resetOnPosition=function(a){var b,c;b=p.length;if(!b)return!1;for(b-=1;0<=b;b--)c=p[b],c.fired&&a<=c.position&&(c.fired=!1,u--);return!0};y=function(){var b=a._iO,c=b.from,e=b.to,d,f;f=function(){a.clearOnPosition(e,f);a.stop()};d=function(){if(null!==e&&!isNaN(e))a.onPosition(e,f)};null!==c&&!isNaN(c)&&(b.position=c,b.multiShot=!1,d());return b};q=function(){var b,c=a._iO.onposition; +if(c)for(b in c)if(c.hasOwnProperty(b))a.onPosition(parseInt(b,10),c[b])};x=function(){var b,c=a._iO.onposition;if(c)for(b in c)c.hasOwnProperty(b)&&a.clearOnPosition(parseInt(b,10))};n=function(){a.isHTML5&&Ra(a)};g=function(){a.isHTML5&&Sa(a)};f=function(b){b||(p=[],u=0);s=!1;a._hasTimer=null;a._a=null;a._html5_canplay=!1;a.bytesLoaded=null;a.bytesTotal=null;a.duration=a._iO&&a._iO.duration?a._iO.duration:null;a.durationEstimate=null;a.buffered=[];a.eqData=[];a.eqData.left=[];a.eqData.right=[]; +a.failures=0;a.isBuffering=!1;a.instanceOptions={};a.instanceCount=0;a.loaded=!1;a.metadata={};a.readyState=0;a.muted=!1;a.paused=!1;a.peakData={left:0,right:0};a.waveformData={left:[],right:[]};a.playState=0;a.position=null;a.id3={}};f();this._onTimer=function(b){var c,f=!1,h={};if(a._hasTimer||b){if(a._a&&(b||(0opera.version()?new Audio(null):new Audio,c=a._a,c._called_load=!1,A&&(Ka=c);a.isHTML5=!0;a._a=c;c._s=a;h();a._apply_loop(c,b.loops);b.autoLoad||b.autoPlay?a.load():(c.autobuffer=!1,c.preload="auto");return c};h=function(){if(a._a._added_events)return!1;var b;a._a._added_events=!0;for(b in B)B.hasOwnProperty(b)&&a._a&&a._a.addEventListener(b,B[b],!1);return!0};J=function(){var b;a._a._added_events= +!1;for(b in B)B.hasOwnProperty(b)&&a._a&&a._a.removeEventListener(b,B[b],!1)};this._onload=function(b){var c=!!b||!a.isHTML5&&8===m&&a.duration;a.loaded=c;a.readyState=c?3:2;a._onbufferchange(0);a._iO.onload&&ga(a,function(){a._iO.onload.apply(a,[c])});return!0};this._onbufferchange=function(b){if(0===a.playState||b&&a.isBuffering||!b&&!a.isBuffering)return!1;a.isBuffering=1===b;a._iO.onbufferchange&&a._iO.onbufferchange.apply(a);return!0};this._onsuspend=function(){a._iO.onsuspend&&a._iO.onsuspend.apply(a); +return!0};this._onfailure=function(b,c,e){a.failures++;if(a._iO.onfailure&&1===a.failures)a._iO.onfailure(a,b,c,e)};this._onfinish=function(){var b=a._iO.onfinish;a._onbufferchange(0);a._resetOnPosition(0);a.instanceCount&&(a.instanceCount--,a.instanceCount||(x(),a.playState=0,a.paused=!1,a.instanceCount=0,a.instanceOptions={},a._iO={},g(),a.isHTML5&&(a.position=0)),(!a.instanceCount||a._iO.multiShotEvents)&&b&&ga(a,function(){b.apply(a)}))};this._whileloading=function(b,c,e,d){var f=a._iO;a.bytesLoaded= +b;a.bytesTotal=c;a.duration=Math.floor(e);a.bufferLength=d;a.durationEstimate=!a.isHTML5&&!f.isMovieStar?f.duration?a.duration>f.duration?a.duration:f.duration:parseInt(a.bytesTotal/a.bytesLoaded*a.duration,10):a.duration;a.isHTML5||(a.buffered=[{start:0,end:a.duration}]);(3!==a.readyState||a.isHTML5)&&f.whileloading&&f.whileloading.apply(a)};this._whileplaying=function(b,c,e,d,f){var h=a._iO;if(isNaN(b)||null===b)return!1;a.position=Math.max(0,b);a._processOnPosition();!a.isHTML5&&8opera.version()?new Audio(null):new Audio:null,d,a,f={},h,g;h=c.audioFormats;for(d in h)if(h.hasOwnProperty(d)&&(a="audio/"+d,f[d]=b(h[d].type),f[a]=f[d],d.match(bb)?(c.flash[d]=!0,c.flash[a]=!0):(c.flash[d]=!1,c.flash[a]=!1),h[d]&&h[d].related))for(g=h[d].related.length-1;0<=g;g--)f["audio/"+h[d].related[g]]=f[d],c.html5[h[d].related[g]]=f[d],c.flash[h[d].related[g]]=f[d];f.canPlayType=e?b:null;c.html5=w(c.html5,f);c.html5.usingFlash= +Va();u=c.html5.usingFlash;return!0};sa={};P=function(){};aa=function(b){8===m&&(1m)&&(c.flashVersion=m=9);c.version=c.versionNumber+(c.html5Only?" (HTML5-only mode)":9===m?" (AS3/Flash 9)": +" (AS2/Flash 8)");8b&&(e=!0));setTimeout(function(){b=c.getMoviePercent();if(e)return Q=!1,g.setTimeout(F,1),!1;!p&&ab&&(null===b?c.useFlashBlock||0===c.flashLoadTimeout?c.useFlashBlock&&za():!c.useFlashBlock&&S?qa():D({type:"ontimeout",ignoreInit:!0,error:{type:"INIT_FLASHBLOCK"}}):0!==c.flashLoadTimeout&&(!c.useFlashBlock&&S?qa():xa(!0)))},c.flashLoadTimeout)};Y=function(){if(Ga||!ja)return t.remove(g,"focus", +Y),!0;Ga=ab=!0;Q=!1;F();t.remove(g,"focus",Y);return!0};M=function(b){if(p)return!1;if(c.html5Only)return p=!0,E(),!0;var e=!0,d;if(!c.useFlashBlock||!c.flashLoadTimeout||c.getMoviePercent())p=!0;d={type:!v&&u?"NO_FLASH":"INIT_TIMEOUT"};if(y||b)c.useFlashBlock&&c.oMC&&(c.oMC.className=I()+" "+(null===c.getMoviePercent()?"swf_timedout":"swf_error")),D({type:"ontimeout",error:d,ignoreInit:!0}),H(d),e=!1;y||(c.waitForWindowLoad&&!na?t.add(g,"load",E):E());return e};Ma=function(){var b,e=c.setupOptions; +for(b in e)e.hasOwnProperty(b)&&(c[b]===k?c[b]=e[b]:c[b]!==e[b]&&(c.setupOptions[b]=c[b]))};ma=function(){if(p)return!1;if(c.html5Only)return p||(t.remove(g,"load",c.beginDelayedInit),c.enabled=!0,M()),!0;Z();try{l._externalInterfaceTest(!1),Oa(!0,c.flashPollingInterval||(c.useHighPerformance?10:50)),c.debugMode||l._disableDebug(),c.enabled=!0,c.html5Only||t.add(g,"unload",la)}catch(b){return H({type:"JS_TO_FLASH_EXCEPTION",fatal:!0}),xa(!0),M(),!1}M();t.remove(g,"load",c.beginDelayedInit);return!0}; +G=function(){if(N)return!1;N=!0;Ma();wa();!v&&c.hasHTML5&&c.setup({useHTML5Audio:!0,preferFlash:!1});Wa();!v&&u&&(Ua.push(sa.needFlash),c.setup({flashLoadTimeout:1}));n.removeEventListener&&n.removeEventListener("DOMContentLoaded",G,!1);Z();return!0};Ba=function(){"complete"===n.readyState&&(G(),n.detachEvent("onreadystatechange",Ba));return!0};ua=function(){na=!0;t.remove(g,"load",ua)};ta=function(){if(Fa&&(c.setupOptions.useHTML5Audio=!0,c.setupOptions.preferFlash=!1,ha||Za&&!s.match(/android\s2\.3/i)))ha&& +(c.ignoreFlash=!0),A=!0};ta();Da();t.add(g,"focus",Y);t.add(g,"load",F);t.add(g,"load",ua);n.addEventListener?n.addEventListener("DOMContentLoaded",G,!1):n.attachEvent?n.attachEvent("onreadystatechange",Ba):H({type:"NO_DOM2_EVENTS",fatal:!0})}var ka=null;if(void 0===g.SM2_DEFER||!SM2_DEFER)ka=new U;g.SoundManager=U;g.soundManager=ka})(window); \ No newline at end of file diff --git a/public/js/vendor/jquery.ui.widget.js b/public/js/vendor/jquery.ui.widget.js new file mode 100755 index 0000000..e08df3f --- /dev/null +++ b/public/js/vendor/jquery.ui.widget.js @@ -0,0 +1,572 @@ +/*! jQuery UI - v1.11.4+CommonJS - 2015-08-28 +* http://jqueryui.com +* Includes: widget.js +* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */ + +(function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define([ "jquery" ], factory ); + + } else if ( typeof exports === "object" ) { + + // Node/CommonJS + factory( require( "jquery" ) ); + + } else { + + // Browser globals + factory( jQuery ); + } +}(function( $ ) { +/*! + * jQuery UI Widget 1.11.4 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + * http://api.jqueryui.com/jQuery.widget/ + */ + + +var widget_uuid = 0, + widget_slice = Array.prototype.slice; + +$.cleanData = (function( orig ) { + return function( elems ) { + var events, elem, i; + for ( i = 0; (elem = elems[i]) != null; i++ ) { + try { + + // Only trigger remove when necessary to save time + events = $._data( elem, "events" ); + if ( events && events.remove ) { + $( elem ).triggerHandler( "remove" ); + } + + // http://bugs.jquery.com/ticket/8235 + } catch ( e ) {} + } + orig( elems ); + }; +})( $.cleanData ); + +$.widget = function( name, base, prototype ) { + var fullName, existingConstructor, constructor, basePrototype, + // proxiedPrototype allows the provided prototype to remain unmodified + // so that it can be used as a mixin for multiple widgets (#8876) + proxiedPrototype = {}, + namespace = name.split( "." )[ 0 ]; + + name = name.split( "." )[ 1 ]; + fullName = namespace + "-" + name; + + if ( !prototype ) { + prototype = base; + base = $.Widget; + } + + // create selector for plugin + $.expr[ ":" ][ fullName.toLowerCase() ] = function( elem ) { + return !!$.data( elem, fullName ); + }; + + $[ namespace ] = $[ namespace ] || {}; + existingConstructor = $[ namespace ][ name ]; + constructor = $[ namespace ][ name ] = function( options, element ) { + // allow instantiation without "new" keyword + if ( !this._createWidget ) { + return new constructor( options, element ); + } + + // allow instantiation without initializing for simple inheritance + // must use "new" keyword (the code above always passes args) + if ( arguments.length ) { + this._createWidget( options, element ); + } + }; + // extend with the existing constructor to carry over any static properties + $.extend( constructor, existingConstructor, { + version: prototype.version, + // copy the object used to create the prototype in case we need to + // redefine the widget later + _proto: $.extend( {}, prototype ), + // track widgets that inherit from this widget in case this widget is + // redefined after a widget inherits from it + _childConstructors: [] + }); + + basePrototype = new base(); + // we need to make the options hash a property directly on the new instance + // otherwise we'll modify the options hash on the prototype that we're + // inheriting from + basePrototype.options = $.widget.extend( {}, basePrototype.options ); + $.each( prototype, function( prop, value ) { + if ( !$.isFunction( value ) ) { + proxiedPrototype[ prop ] = value; + return; + } + proxiedPrototype[ prop ] = (function() { + var _super = function() { + return base.prototype[ prop ].apply( this, arguments ); + }, + _superApply = function( args ) { + return base.prototype[ prop ].apply( this, args ); + }; + return function() { + var __super = this._super, + __superApply = this._superApply, + returnValue; + + this._super = _super; + this._superApply = _superApply; + + returnValue = value.apply( this, arguments ); + + this._super = __super; + this._superApply = __superApply; + + return returnValue; + }; + })(); + }); + constructor.prototype = $.widget.extend( basePrototype, { + // TODO: remove support for widgetEventPrefix + // always use the name + a colon as the prefix, e.g., draggable:start + // don't prefix for widgets that aren't DOM-based + widgetEventPrefix: existingConstructor ? (basePrototype.widgetEventPrefix || name) : name + }, proxiedPrototype, { + constructor: constructor, + namespace: namespace, + widgetName: name, + widgetFullName: fullName + }); + + // If this widget is being redefined then we need to find all widgets that + // are inheriting from it and redefine all of them so that they inherit from + // the new version of this widget. We're essentially trying to replace one + // level in the prototype chain. + if ( existingConstructor ) { + $.each( existingConstructor._childConstructors, function( i, child ) { + var childPrototype = child.prototype; + + // redefine the child widget using the same prototype that was + // originally used, but inherit from the new version of the base + $.widget( childPrototype.namespace + "." + childPrototype.widgetName, constructor, child._proto ); + }); + // remove the list of existing child constructors from the old constructor + // so the old child constructors can be garbage collected + delete existingConstructor._childConstructors; + } else { + base._childConstructors.push( constructor ); + } + + $.widget.bridge( name, constructor ); + + return constructor; +}; + +$.widget.extend = function( target ) { + var input = widget_slice.call( arguments, 1 ), + inputIndex = 0, + inputLength = input.length, + key, + value; + for ( ; inputIndex < inputLength; inputIndex++ ) { + for ( key in input[ inputIndex ] ) { + value = input[ inputIndex ][ key ]; + if ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) { + // Clone objects + if ( $.isPlainObject( value ) ) { + target[ key ] = $.isPlainObject( target[ key ] ) ? + $.widget.extend( {}, target[ key ], value ) : + // Don't extend strings, arrays, etc. with objects + $.widget.extend( {}, value ); + // Copy everything else by reference + } else { + target[ key ] = value; + } + } + } + } + return target; +}; + +$.widget.bridge = function( name, object ) { + var fullName = object.prototype.widgetFullName || name; + $.fn[ name ] = function( options ) { + var isMethodCall = typeof options === "string", + args = widget_slice.call( arguments, 1 ), + returnValue = this; + + if ( isMethodCall ) { + this.each(function() { + var methodValue, + instance = $.data( this, fullName ); + if ( options === "instance" ) { + returnValue = instance; + return false; + } + if ( !instance ) { + return $.error( "cannot call methods on " + name + " prior to initialization; " + + "attempted to call method '" + options + "'" ); + } + if ( !$.isFunction( instance[options] ) || options.charAt( 0 ) === "_" ) { + return $.error( "no such method '" + options + "' for " + name + " widget instance" ); + } + methodValue = instance[ options ].apply( instance, args ); + if ( methodValue !== instance && methodValue !== undefined ) { + returnValue = methodValue && methodValue.jquery ? + returnValue.pushStack( methodValue.get() ) : + methodValue; + return false; + } + }); + } else { + + // Allow multiple hashes to be passed on init + if ( args.length ) { + options = $.widget.extend.apply( null, [ options ].concat(args) ); + } + + this.each(function() { + var instance = $.data( this, fullName ); + if ( instance ) { + instance.option( options || {} ); + if ( instance._init ) { + instance._init(); + } + } else { + $.data( this, fullName, new object( options, this ) ); + } + }); + } + + return returnValue; + }; +}; + +$.Widget = function( /* options, element */ ) {}; +$.Widget._childConstructors = []; + +$.Widget.prototype = { + widgetName: "widget", + widgetEventPrefix: "", + defaultElement: "
    ", + options: { + disabled: false, + + // callbacks + create: null + }, + _createWidget: function( options, element ) { + element = $( element || this.defaultElement || this )[ 0 ]; + this.element = $( element ); + this.uuid = widget_uuid++; + this.eventNamespace = "." + this.widgetName + this.uuid; + + this.bindings = $(); + this.hoverable = $(); + this.focusable = $(); + + if ( element !== this ) { + $.data( element, this.widgetFullName, this ); + this._on( true, this.element, { + remove: function( event ) { + if ( event.target === element ) { + this.destroy(); + } + } + }); + this.document = $( element.style ? + // element within the document + element.ownerDocument : + // element is window or document + element.document || element ); + this.window = $( this.document[0].defaultView || this.document[0].parentWindow ); + } + + this.options = $.widget.extend( {}, + this.options, + this._getCreateOptions(), + options ); + + this._create(); + this._trigger( "create", null, this._getCreateEventData() ); + this._init(); + }, + _getCreateOptions: $.noop, + _getCreateEventData: $.noop, + _create: $.noop, + _init: $.noop, + + destroy: function() { + this._destroy(); + // we can probably remove the unbind calls in 2.0 + // all event bindings should go through this._on() + this.element + .unbind( this.eventNamespace ) + .removeData( this.widgetFullName ) + // support: jquery <1.6.3 + // http://bugs.jquery.com/ticket/9413 + .removeData( $.camelCase( this.widgetFullName ) ); + this.widget() + .unbind( this.eventNamespace ) + .removeAttr( "aria-disabled" ) + .removeClass( + this.widgetFullName + "-disabled " + + "ui-state-disabled" ); + + // clean up events and states + this.bindings.unbind( this.eventNamespace ); + this.hoverable.removeClass( "ui-state-hover" ); + this.focusable.removeClass( "ui-state-focus" ); + }, + _destroy: $.noop, + + widget: function() { + return this.element; + }, + + option: function( key, value ) { + var options = key, + parts, + curOption, + i; + + if ( arguments.length === 0 ) { + // don't return a reference to the internal hash + return $.widget.extend( {}, this.options ); + } + + if ( typeof key === "string" ) { + // handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } } + options = {}; + parts = key.split( "." ); + key = parts.shift(); + if ( parts.length ) { + curOption = options[ key ] = $.widget.extend( {}, this.options[ key ] ); + for ( i = 0; i < parts.length - 1; i++ ) { + curOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {}; + curOption = curOption[ parts[ i ] ]; + } + key = parts.pop(); + if ( arguments.length === 1 ) { + return curOption[ key ] === undefined ? null : curOption[ key ]; + } + curOption[ key ] = value; + } else { + if ( arguments.length === 1 ) { + return this.options[ key ] === undefined ? null : this.options[ key ]; + } + options[ key ] = value; + } + } + + this._setOptions( options ); + + return this; + }, + _setOptions: function( options ) { + var key; + + for ( key in options ) { + this._setOption( key, options[ key ] ); + } + + return this; + }, + _setOption: function( key, value ) { + this.options[ key ] = value; + + if ( key === "disabled" ) { + this.widget() + .toggleClass( this.widgetFullName + "-disabled", !!value ); + + // If the widget is becoming disabled, then nothing is interactive + if ( value ) { + this.hoverable.removeClass( "ui-state-hover" ); + this.focusable.removeClass( "ui-state-focus" ); + } + } + + return this; + }, + + enable: function() { + return this._setOptions({ disabled: false }); + }, + disable: function() { + return this._setOptions({ disabled: true }); + }, + + _on: function( suppressDisabledCheck, element, handlers ) { + var delegateElement, + instance = this; + + // no suppressDisabledCheck flag, shuffle arguments + if ( typeof suppressDisabledCheck !== "boolean" ) { + handlers = element; + element = suppressDisabledCheck; + suppressDisabledCheck = false; + } + + // no element argument, shuffle and use this.element + if ( !handlers ) { + handlers = element; + element = this.element; + delegateElement = this.widget(); + } else { + element = delegateElement = $( element ); + this.bindings = this.bindings.add( element ); + } + + $.each( handlers, function( event, handler ) { + function handlerProxy() { + // allow widgets to customize the disabled handling + // - disabled as an array instead of boolean + // - disabled class as method for disabling individual parts + if ( !suppressDisabledCheck && + ( instance.options.disabled === true || + $( this ).hasClass( "ui-state-disabled" ) ) ) { + return; + } + return ( typeof handler === "string" ? instance[ handler ] : handler ) + .apply( instance, arguments ); + } + + // copy the guid so direct unbinding works + if ( typeof handler !== "string" ) { + handlerProxy.guid = handler.guid = + handler.guid || handlerProxy.guid || $.guid++; + } + + var match = event.match( /^([\w:-]*)\s*(.*)$/ ), + eventName = match[1] + instance.eventNamespace, + selector = match[2]; + if ( selector ) { + delegateElement.delegate( selector, eventName, handlerProxy ); + } else { + element.bind( eventName, handlerProxy ); + } + }); + }, + + _off: function( element, eventName ) { + eventName = (eventName || "").split( " " ).join( this.eventNamespace + " " ) + + this.eventNamespace; + element.unbind( eventName ).undelegate( eventName ); + + // Clear the stack to avoid memory leaks (#10056) + this.bindings = $( this.bindings.not( element ).get() ); + this.focusable = $( this.focusable.not( element ).get() ); + this.hoverable = $( this.hoverable.not( element ).get() ); + }, + + _delay: function( handler, delay ) { + function handlerProxy() { + return ( typeof handler === "string" ? instance[ handler ] : handler ) + .apply( instance, arguments ); + } + var instance = this; + return setTimeout( handlerProxy, delay || 0 ); + }, + + _hoverable: function( element ) { + this.hoverable = this.hoverable.add( element ); + this._on( element, { + mouseenter: function( event ) { + $( event.currentTarget ).addClass( "ui-state-hover" ); + }, + mouseleave: function( event ) { + $( event.currentTarget ).removeClass( "ui-state-hover" ); + } + }); + }, + + _focusable: function( element ) { + this.focusable = this.focusable.add( element ); + this._on( element, { + focusin: function( event ) { + $( event.currentTarget ).addClass( "ui-state-focus" ); + }, + focusout: function( event ) { + $( event.currentTarget ).removeClass( "ui-state-focus" ); + } + }); + }, + + _trigger: function( type, event, data ) { + var prop, orig, + callback = this.options[ type ]; + + data = data || {}; + event = $.Event( event ); + event.type = ( type === this.widgetEventPrefix ? + type : + this.widgetEventPrefix + type ).toLowerCase(); + // the original event may come from any element + // so we need to reset the target on the new event + event.target = this.element[ 0 ]; + + // copy original event properties over to the new event + orig = event.originalEvent; + if ( orig ) { + for ( prop in orig ) { + if ( !( prop in event ) ) { + event[ prop ] = orig[ prop ]; + } + } + } + + this.element.trigger( event, data ); + return !( $.isFunction( callback ) && + callback.apply( this.element[0], [ event ].concat( data ) ) === false || + event.isDefaultPrevented() ); + } +}; + +$.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) { + $.Widget.prototype[ "_" + method ] = function( element, options, callback ) { + if ( typeof options === "string" ) { + options = { effect: options }; + } + var hasOptions, + effectName = !options ? + method : + options === true || typeof options === "number" ? + defaultEffect : + options.effect || defaultEffect; + options = options || {}; + if ( typeof options === "number" ) { + options = { duration: options }; + } + hasOptions = !$.isEmptyObject( options ); + options.complete = callback; + if ( options.delay ) { + element.delay( options.delay ); + } + if ( hasOptions && $.effects && $.effects.effect[ effectName ] ) { + element[ method ]( options ); + } else if ( effectName !== method && element[ effectName ] ) { + element[ effectName ]( options.duration, options.easing, callback ); + } else { + element.queue(function( next ) { + $( this )[ method ](); + if ( callback ) { + callback.call( element[ 0 ] ); + } + next(); + }); + } + }; +}); + +var widget = $.widget; + + + +})); diff --git a/public/js/vue/1.js b/public/js/vue/1.js new file mode 100644 index 0000000..15b50b0 --- /dev/null +++ b/public/js/vue/1.js @@ -0,0 +1,76 @@ +/** + * Created by ZE on 2015/10/22. + */ + +new Vue({ + el: '#form', + data: { + msg: 'hi!', + checked: true, + picked: 'one', + selected: 'two', + multiSelect: ['one', 'three'] + } +}); + +var demo = new Vue({ + el: '#demo', + data: { + title: 'todos', + posts: [ + { + title: 'welcome', + pub_at: 23 + }, + { + title: 'こんんばんは', + pub_at: 25 + }, + { + title: '京都市', + pub_at: 19 + } + ], + users: [ + { + name: 'thanh', + phone: '090 3702 5644' + }, + { + name: 'thanh akita', + phone: '080 ' + }, + { + name: 'レーバンタン', + phone: '090 3777 928' + }, + { + name: ' bui trung kien' + } + ], + todos: [ + { + done: true, + content: 'Learn JavaScript' + }, + { + done: false, + content: 'Learn Vue.js' + }, + { + done: false, + content: 'Learn Angular.js' + } + ], + message: 'this is message', + date: new Date().getDate() + }, + methods: { + changemsg: function () { + this.$data.message = 'changed'; + }, + upname: function (user) { + user.name = user.name.toUpperCase(); + } + } +}); \ No newline at end of file