From: Kilian Saffran Date: Mon, 26 Oct 2020 06:34:15 +0000 (+0100) Subject: v20201026 X-Git-Url: http://cloud.dks.lu/git/?a=commitdiff_plain;h=0ed69f227030c9e841105c1a9bf483b62a315c19;p=oldbell_lu.git v20201026 --- 0ed69f227030c9e841105c1a9bf483b62a315c19 diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..65841a6 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,16 @@ +{ +"es6-css-minify.minifyOnSave": "no", +"git.ignoreLimitWarning": true, +"tidyHtml.formatOnSave": false, +"tidyHtml.optionsTidy": { + "indent-attributes": falss, + "tab-size":2, + "indent":true, + "show-body-only":false, + "fix-uri": false, + "newline":"LF", + "drop-empty-elements": false, + "hide-comments": false, +} + +} \ No newline at end of file diff --git a/oldwebsite/.htaccess b/oldwebsite/.htaccess new file mode 100644 index 0000000..2215589 --- /dev/null +++ b/oldwebsite/.htaccess @@ -0,0 +1,10 @@ +SetEnv PHP_VER 5 +Options +FollowSymLinks +# ErrorDocument 404 https://www.oldbell.lu/ +RewriteEngine on +#RewriteBase / +#RewriteCond %{HTTPS} !=on +#RewriteCond %{ENV:HTTPS} !=on +#RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L] +RewriteCond %{SERVER_PORT} 80 +RewriteRule ^(.*)$ https://www.oldbell.lu/$1 [R,L] diff --git a/oldwebsite/about.php b/oldwebsite/about.php new file mode 100644 index 0000000..9f30019 --- /dev/null +++ b/oldwebsite/about.php @@ -0,0 +1,275 @@ + + + + + + + + À propos - Old Bell By Marc Den Barbir + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ Logo +

À propos Old Bell by Marc Den Barbir

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

About Marc den Barbir

+ + query($abfrage); + $count = 0; + + $infoservice = $result->fetch_assoc(); + + echo $infoservice['content_fr']; + + ?> + +
+
+
+
+ +
+ + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/oldwebsite/assets/css/responsive.css b/oldwebsite/assets/css/responsive.css new file mode 100644 index 0000000..992c511 --- /dev/null +++ b/oldwebsite/assets/css/responsive.css @@ -0,0 +1,95 @@ +/* 05 responsive styles */ +@media screen and (max-width: 991px) and (min-width: 768px) { + .pad120 { + padding: 40px 0; + } + + .pad-t120 { + padding-top: 40px; + } + + .sm-pad-b { + padding-bottom: 40px; + } + + .mt60, + .mt65 { + margin-top: 30px; + } + + .sm-mb40 { + margin-bottom: 40px; + } +} +@media screen and (max-width: 767px) { + .pad120 { + padding: 30px 0; + } + + .pad-t90 { + padding-top: 30px; + } + + .pad-t120 { + padding-top: 30px; + } + + .mt60 { + margin-top: 10px; + } + + .mt65 { + margin-top: 15px; + } + + .xs-mb30 { + margin-bottom: 30px; + } + + .mass-head-pad { + padding: 120px 0 60px; + } + + .booking-form select { + margin-bottom: 15px; + } + + .counter-box { + text-align: center; + margin-bottom: 30px; + } + .counter-box .counter-icon { + margin-bottom: 5px; + } + .counter-box .counter-icon i:before { + font-size: 30px; + color: #bc9355; + } + .counter-box .counter-content .counter { + color: #fff; + font-size: 30px; + margin-bottom: 10px; + } + .counter-box .counter-content h4 { + color: #fff; + letter-spacing: 1px; + } + + .mass-head-content h2.page-title { + line-height: 40px; + margin-top: 10px; + } + + .footer-contact.text-right, .footer-contact.text-left { + text-align: center; + } + + .footer-icon i:before { + color: #bc9355; + font-size: 30px; + line-height: 40px; + } +} +/* 05 responsive styles */ + +/*# sourceMappingURL=responsive.css.map */ diff --git a/oldwebsite/assets/css/responsive.css.map b/oldwebsite/assets/css/responsive.css.map new file mode 100644 index 0000000..1395348 --- /dev/null +++ b/oldwebsite/assets/css/responsive.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": ";AAGA,2DAA4D;IAC3D,OAAQ;IACP,OAAO,EAAE,MAAM;;;IAEhB,SAAU;IACT,WAAW,EAAE,IAAI;;;IAElB,SAAU;IACT,cAAc,EAAE,IAAI;;;IAErB;SACM;IACL,UAAU,EAAE,IAAI;;;IAEjB,QAAS;IACR,aAAa,EAAE,IAAI;;;AAIrB,oCAAqC;IACpC,OAAQ;IACP,OAAO,EAAE,MAAM;;;IAEhB,QAAS;IACR,WAAW,EAAE,IAAI;;;IAElB,SAAU;IACT,WAAW,EAAE,IAAI;;;IAElB,KAAM;IACL,UAAU,EAAE,IAAI;;;IAEjB,KAAM;IACL,UAAU,EAAE,IAAI;;;IAEjB,QAAS;IACR,aAAa,EAAE,IAAI;;;IAEpB,cAAe;IACd,OAAO,EAAE,YAAY;;;IAGrB,oBAAO;IACN,aAAa,EAAE,IAAI;;;IAGrB,YAAa;IACZ,UAAU,EAAE,MAAM;IAClB,aAAa,EAAE,IAAI;;IACnB,0BAAc;IACb,aAAa,EAAE,GAAG;;IAEjB,mCAAS;IACR,SAAS,EAAE,IAAI;IACf,KAAK,ECvBY,OAAc;;ID4BjC,sCAAS;IACR,KAAK,ECnCgB,IAAM;IDoC3B,SAAS,EAAE,IAAI;IACf,aAAa,EAAE,IAAI;;IAEpB,gCAAG;IACF,KAAK,ECxCgB,IAAM;IDyC3B,cAAc,EAAE,GAAG;;;IAItB,gCAAiC;IAChC,WAAW,EAAE,IAAI;IACjB,UAAU,EAAE,IAAI;;;IAGhB,qDACY;IACX,UAAU,EAAE,MAAM;;;IAKlB,qBAAS;IACR,KAAK,ECpDa,OAAc;IDqDhC,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,IAAI", +"sources": ["../scss/responsive.scss","../scss/_variable.scss"], +"names": [], +"file": "responsive.css" +} diff --git a/oldwebsite/assets/css/style.css b/oldwebsite/assets/css/style.css new file mode 100644 index 0000000..72cbb91 --- /dev/null +++ b/oldwebsite/assets/css/style.css @@ -0,0 +1,1335 @@ +/* Theme Name: Men'z Saloon - HTML 5 Template +Author: iThemesLab +Author URI: http://ithemeslab.com +Author Email: ithemeslab@gmail.com */ +/* +----------Table of Content------------ +====================================== +01 Global Styles + 1.1 global & override + 1.2 typography + 1.3 margins & paddings + 1.4 backgrounds +02 Navbar Styles + 2.1 navbar global + 2.2 navbar on lg screen + 2.3 navbar on sm & xs screen +03 Element Styles + 3.1 service-box + 3.2 service-col + 3.3 team-box + 3.4 animated counter + 3.5 feedback + 3.6 forms + 3.7 dropcap + 3.8 pricing box + 3.9 call to action +04 Footer +05 Responsive +====================================== +*/ +/* 1.1 global & override */ +body { + font-family: "Open Sans", sans-serif; + color: #b2b2b2; + font-size: 14px; + line-height: 1.6em; + -webkit-backface-visibility: hidden; +} + +::-moz-selection { + background: #1bbde8; + color: #fff; + text-shadow: none; + outline: none; +} + +::selection { + background: #1bbde8; + color: #fff; + text-shadow: none; + outline: none; +} + +.header { + background: rgba(0, 0, 0, 0.5); +} + +.alert { + border-radius: 0; +} + +.main-container { + overflow: hidden; +} + +.btn { + -webkit-border-radius: 0; + border-radius: 0; + -webkit-transition: all 0.3s; + transition: all 0.3s; +} + +.btn-primary { + background: #bc9355; + color: #fff; +} + +.btn-primary:hover { + background: #cc0000; + color: #fff; +} + +.panel { + border: 0; + box-shadow: none; +} + +.panel-heading { + padding: 0; +} + +.panel-title a, +.panel-title a:focus { + background-color: #f6d014; + color: #fff; + border: 0; +} + +.panel-title a.collapsed, +.panel-title a.collapsed:focus { + background-color: #232323; + color: #fff; + border: 1px solid #ddd; +} + +.panel-title a, +.panel-title a:focus { + font-size: 13px; + position: relative; + display: block; + padding: 14px 60px 14px 22px; + border: 1px solid #bc9355; + background-color: #bc9355; + color: #fff; + text-decoration: none; + -webkit-transition: all 0.3s; + transition: all 0.3s; +} + +.panel-title a[aria-expanded="true"]:before { + content: '\f107'; + font-family: fontawesome; +} + +.panel-title a:before { + content: '\f105'; + font-family: fontawesome; + margin-right: 6px; + -webkit-transition: all 0.3s; + -o-transition: all 0.3s; + transition: all 0.3s; +} + +.panel-body { + line-height: 19px; + background: #000; +} + +.collapse { + padding: 0; +} + +.panel-group .panel-heading + .panel-collapse > .list-group, +.panel-group .panel-heading + .panel-collapse > .panel-body { + border: 0; +} + +.nav-tabs { + border-bottom: 1px solid #585858; +} +.nav-tabs > li > a { + color: #fff; + background: #585858; + border-radius: 0; + border: 0; + margin-right: 1px; + font-family: "Playfair Display", serif; +} +.nav-tabs > li > a:hover, .nav-tabs > li > a:focus { + background: #bc9355; + color: #fff; + border: 0; +} +.nav-tabs > li.active > a { + background: #bc9355; + color: #fff; + border: 0; +} +.nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus { + background: #bc9355; + color: #fff; + border: 0; +} +.nav-tabs.nav > li > a { + padding: 14px 24px; +} + +.tab-content { + background: #292929; + padding: 20px; + border: 1px solid #585858; + border-top: 0; +} + +[class^="flaticon-"]:before, +[class*=" flaticon-"]:before, +[class^="flaticon-"]:after, +[class*=" flaticon-"]:after { + margin-left: 0; +} + +.fa-ul li { + padding: 5px 0; +} +.fa-ul li .fa-li { + margin-top: 8px; + color: #bc9355; +} + +.flex-control-thumbs { + margin: 20px 0 0; + position: static; + overflow: visible; +} +.flex-control-thumbs li { + float: none; + width: 60px; + height: 60px; + overflow: hidden; + transform: rotate(-45deg); + margin: 0 8px; +} +.flex-control-thumbs img { + border: 2px solid #545454; + opacity: 0.4; + -webkit-transition: all 0.3s; + transition: all 0.3s; + position: relative; + z-index: 0; +} +.flex-control-thumbs img.flex-active { + border: 2px solid #bc9355; + z-index: 1; +} +.flex-control-thumbs img:hover { + border: 2px solid #bc9355; + z-index: 1; +} + +.hvr-in { + display: inline-block; + vertical-align: middle; + -webkit-transform: perspective(1px) translateZ(0); + transform: perspective(1px) translateZ(0); + box-shadow: 0 0 1px transparent; + position: relative; + background: #cc0000; + -webkit-transition-property: color; + transition-property: color; + -webkit-transition-duration: 0.3s; + transition-duration: 0.3s; +} +.hvr-in:before { + content: ""; + position: absolute; + z-index: -1; + top: 0; + bottom: 0; + left: 0; + right: 0; + background: #cc0000; + -webkit-transform: scaleX(1); + transform: scaleX(1); + -webkit-transform-origin: 50%; + transform-origin: 50%; + -webkit-transition-property: transform; + transition-property: transform; + -webkit-transition-duration: 0.3s; + transition-duration: 0.3s; + -webkit-transition-timing-function: ease-out; + transition-timing-function: ease-out; +} +.hvr-in:hover, .hvr-in:focus, .hvr-in:active { + color: white; +} +.hvr-in:hover:before, .hvr-in:hover:before, .hvr-in:hover:before, .hvr-in:focus:before, .hvr-in:focus:before, .hvr-in:focus:before, .hvr-in:active:before, .hvr-in:active:before, .hvr-in:active:before { + -webkit-transform: scaleX(0); + transform: scaleX(0); +} + +.hvr-out { + display: inline-block; + vertical-align: middle; + -webkit-transform: perspective(1px) translateZ(0); + transform: perspective(1px) translateZ(0); + box-shadow: 0 0 1px transparent; + position: relative; + background: #cc0000; + -webkit-transition-property: color; + transition-property: color; + -webkit-transition-duration: 0.3s; + transition-duration: 0.3s; +} +.hvr-out:before { + content: ""; + position: absolute; + z-index: -1; + top: 0; + bottom: 0; + left: 0; + right: 0; + background: #000; + -webkit-transform: scaleX(0); + transform: scaleX(0); + -webkit-transform-origin: 50%; + transform-origin: 50%; + -webkit-transition-property: transform; + transition-property: transform; + -webkit-transition-duration: 0.3s; + transition-duration: 0.3s; + -webkit-transition-timing-function: ease-out; + transition-timing-function: ease-out; +} +.hvr-out:hover, .hvr-out:focus, .hvr-out:active { + color: white; +} +.hvr-out:hover:before, .hvr-out:hover:before, .hvr-out:hover:before, .hvr-out:focus:before, .hvr-out:focus:before, .hvr-out:focus:before, .hvr-out:active:before, .hvr-out:active:before, .hvr-out:active:before { + -webkit-transform: scaleX(1); + transform: scaleX(1); +} + +.sbtn-hvr-out { + display: inline-block; + vertical-align: middle; + -webkit-transform: perspective(1px) translateZ(0); + transform: perspective(1px) translateZ(0); + box-shadow: 0 0 1px transparent; + position: relative; + background: #585858; + -webkit-transition-property: color; + transition-property: color; + -webkit-transition-duration: 0.3s; + transition-duration: 0.3s; +} +.sbtn-hvr-out:before { + content: ""; + position: absolute; + z-index: -1; + top: 0; + bottom: 0; + left: 0; + right: 0; + background: #bc9355; + -webkit-transform: scaleX(0); + transform: scaleX(0); + -webkit-transform-origin: 50%; + transform-origin: 50%; + -webkit-transition-property: transform; + transition-property: transform; + -webkit-transition-duration: 0.3s; + transition-duration: 0.3s; + -webkit-transition-timing-function: ease-out; + transition-timing-function: ease-out; +} +.sbtn-hvr-out:hover, .sbtn-hvr-out:focus, .sbtn-hvr-out:active { + color: white; +} +.sbtn-hvr-out:hover:before, .sbtn-hvr-out:hover:before, .sbtn-hvr-out:hover:before, .sbtn-hvr-out:focus:before, .sbtn-hvr-out:focus:before, .sbtn-hvr-out:focus:before, .sbtn-hvr-out:active:before, .sbtn-hvr-out:active:before, .sbtn-hvr-out:active:before { + -webkit-transform: scaleX(1); + transform: scaleX(1); +} + +#map { + height: 600px; + width: 100%; +} + +#map-side { + height: 300px; + width: 100%; +} + +/* 1.2 Typography */ +h1, h2, h3, h4, h5, h6 { + font-family: "Playfair Display", serif; + font-weight: 400; + margin: 0; +} + +.text-left { + text-align: left; +} + +.text-center { + text-align: center; +} + +.img-center { + margin-left: auto; + margin-right: auto; +} + +.text-right { + text-align: right; +} + +.ttu { + text-transform: uppercase; +} + +a { + color:#fff; + -webkit-transition: all 0.3s; + transition: all 0.3s; + text-decoration: none; +} +a:hover { + text-decoration: none; +} +a:focus { + text-decoration: none; + color: #b2b2b2; + outline: 0; +} + +.section-title { + margin-bottom: 40px; +} +.section-title h3 { + font-size: 33px; + line-height: 33px; + margin-top: 10px; + margin-bottom: 20px; + text-transform: uppercase; + color: #f3f3f3; +} +.section-title.white h3 { + color: #fff; +} +.section-title span i:before { + font-size: 40px; + color: #bc9355; +} + +.section-title-left { + margin-bottom: 40px; +} +.section-title-left h3 { + font-size: 33px; + line-height: 44px; + margin-top: 0; + margin-bottom: 20px; + text-transform: uppercase; + color: #f3f3f3; +} +.section-title-left.white h3 { + color: #fff; +} +.section-title-left span i:before { + font-size: 40px; + color: #bc9355; +} + +.white-text { + color: #fff; +} + +/* 1.3 Margins & Paddings */ +.mt15 { + margin-top: 15px; +} + +.mt60 { + margin-top: 60px; +} + +.mt65 { + margin-top: 65px; +} + +.mb15 { + margin-bottom: 15px; +} + +.mb30 { + margin-bottom: 30px; +} + +.mb60 { + margin-bottom: 60px; +} + +.pad80 { + padding: 80px 0; +} + +.pad120 { + padding: 120px 0; +} + +.pad-t90 { + padding-top: 90px; +} + +.pad-t120 { + padding-top: 120px; +} + +.mass-head-pad { + padding: 210px 0 100px; +} + +.rotate-45deg { + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); +} + +/* 1.4 Backgrounds */ +.bg-color-1 { + background: #1f2125; +} + +.bg-color-2 { + background: #111010; +} + +.bg-drk-trns { + background: rgba(0, 0, 0, 0.8); +} + +.parallax { + background-repeat: no-repeat; + background-attachment: fixed; + background-position: 50% 0; + background-size: cover; +} + +.mass-head-bg-1 { + background-image: url("../images/others/mass-head-bg-1.jpg"); +} + +.mass-head-bg-2 { + background-image: url("../images/others/mass-head-bg-2.jpg"); +} + +.mass-head-bg-3 { + background-image: url("../images/others/mass-head-bg-3.jpg"); +} + +.mass-head-bg-tattoo { + background-image: url("../images/others/tattoo.jpg"); +} + +.bg-1 { + background-image: url("../images/background/bg-1.jpg"); +} + +.bg-3 { + background-image: url("../images/background/bg-3.jpg"); +} + +.bg-4 { + background-image: url("../images/background/bg-4.jpg"); +} + +.bg-5 { + background-image: url("../images/background/bg-5.jpg"); +} + +/* 2.1 navbar global */ +.navbar { + margin-bottom: 0; +} +.navbar.navbar-default { + border: 0; + background-color: transparent; +} +.navbar.navbar-default .navbar-nav { + padding-right: 20px; +} +.navbar.navbar-default .navbar-nav > li > a { + padding-top: 0; + padding-bottom: 0; + color: #fff; + line-height: 100px; + text-transform: uppercase; + font-size: 13px; + font-weight: 400; +} +.navbar.navbar-default .navbar-nav > li > a:hover { + color: #fff; + background: transparent; +} +.navbar.navbar-default .navbar-nav > li:after { + content: ''; + display: block; + width: 0; + -webkit-transition: all 0.7s; + transition: all 0.7s; +} +.navbar.navbar-default .navbar-nav > li:hover:after { + width: 100%; + background: #bc9355; +} +.navbar.navbar-default .navbar-nav .active > a { + color: #fff; + background: transparent; +} +.navbar.navbar-default .navbar-nav .active:after { + content: ''; + display: block; + width: 100%; + background: #bc9355; +} +.navbar.navbar-default .navbar-nav > .open > a { + color: #fff; + background: transparent; +} +.navbar.navbar-default .navbar-nav .dropdown > a:after { + content: '\f107'; + font-family: "FontAwesome"; + display: inline-block; + margin-left: 5px; + line-height: 20px; +} +.navbar.navbar-default .navbar-nav .dropdown .dropdown-menu { + border: 0; + background: #000; + padding: 0; +} +.navbar.navbar-default .navbar-nav .dropdown .dropdown-menu > li > a { + color: #fff; + font-size: 13px; + padding: 8px 20px; + text-transform: uppercase; +} +.navbar.navbar-default .navbar-nav .dropdown .dropdown-menu > li > a:hover { + color: #fff; + background: #bc9355; +} +.navbar.navbar-default .navbar-nav .dropdown .dropdown-menu > li.active > a { + color: #fff; + background: #bc9355; +} +.navbar.navbar-default .navbar-toggle { + background: #bc9355; + border: 0; +} +.navbar.navbar-default .navbar-toggle .icon-bar { + background: #000; +} + +.top-right-contact { + font-size: 13px; + color: #fff; + line-height: 100px; + font: 600px; +} +.top-right-contact i { + padding-right: 5px; +} + +/* 2.2 navbar on lg screen */ +@media screen and (min-width: 768px) { + .navbar.navbar-default .navbar-nav { + float: right; + } + .navbar.navbar-default .navbar-nav > li:after { + height: 2px; + } + .navbar.navbar-default .navbar-nav .active:after { + height: 2px; + } +} +/* 2.3 navbar on sm & xs screen */ +@media screen and (max-width: 767px) { + + .header {background: #000;} + + .navbar { + margin-bottom: 0; + width:100%; + height:100px; + } + .navbar.navbar-default { + background-color: #000; + width:100%; + height:100px; + } + .navbar.navbar-default .navbar-brand > img { + width: 100px; + height:auto; + } + .navbar.navbar-default .navbar-collapse { + border: 0; + box-shadow: none; + background: #000; + } + .navbar.navbar-default .navbar-collapse.collapse { + padding-left: 0; + margin-left: 0; + } + .navbar.navbar-default .navbar-nav { + padding-right: 0; + } + .navbar.navbar-default .navbar-nav > li > a { + line-height: 30px; + margin-left: 20px; + } + .navbar.navbar-default .navbar-nav > li:after { + height: 0px; + } + .navbar.navbar-default .navbar-nav > li .active:after { + height: 0; + } + .navbar.navbar-default .navbar-nav .active > a { + color: #fff; + background: #bc9355; + } + .navbar.navbar-default .navbar-nav .dropdown > a:after { + content: '\f105'; + font-family: "FontAwesome"; + display: inline-block; + margin-left: 5px; + } + .navbar.navbar-default .navbar-nav .dropdown > a:focus:after { + content: '\f107'; + } + .navbar.navbar-default .navbar-nav .dropdown .dropdown-menu > li > a { + padding: 5px 30px; + } +} +/* 3.1 service-box start */ +.service-box.center-style .service-icon i { + color: #bc9355; +} +.service-box.center-style .service-icon i:before { + border: 2px solid #bc9355; + font-size: 60px; + width: 100px; + height: 100px; + padding: 35px 20px; + margin-bottom: 30px; + display: inline-block; + vertical-align: middle; +} +.service-box.center-style .service-img { + border: 2px solid #bc9355; + width: 100px; + height: 100px; + margin: 0 auto 30px; + padding-top: 14px; +} +.service-box.center-style .service-content h4 { + font-size: 24px; + font-family: "Playfair Display", serif; + line-height: 24px; + color: #f3f3f3; + text-transform: uppercase; + margin-bottom: 20px; +} +.service-box.center-style .service-content p { + font-size: 13px; + line-height: 1.4em; + margin-bottom: 30px; +} + +/* 3.1 service-box end */ +/* 3.2 service-col start */ +.service-col { + border: 1px solid #585858; + -webkit-transition: all 0.3s; + transition: all 0.3s; +} +.service-col .service-content { + padding: 20px; +} +.service-col .service-content h2 { + color: #fff; + margin-bottom: 10px; + float: left; +} +.service-col .service-content .time { + font-size: 14px; + margin-top: 5px; + float: right; +} +.service-col .service-content p { + display: inline-block; + text-align: center; +} +.service-col .service-content .service-btn { + margin-top: 10px; +} +.service-col .service-content .service-btn .btn-primary { + background: #585858; + border: 1px solid #585858; + padding: 12px 20px; +} +.service-col .service-content .service-btn .btn-primary:focus { + outline: none; +} +.service-col.alt h2 { + color: #fff; + margin-bottom: 10px; + float: left; + font-size: 18px; +} +.service-col.alt .time { + font-size: 14px; + margin-top: 0; + float: right; +} +.service-col:hover { + border: 1px solid #bc9355; +} + +/* 3.2 service-col end */ +/* 3.3 team-box start */ +.team-box { + border: 1px solid #444; + -webkit-transition: all 0.3s; + transition: all 0.3s; +} +.team-box .team-img { + position: relative; + border-bottom: 1px solid #444; +} +.team-box .team-img .overley { + opacity: 0; + -webkit-transition: all 0.6s; + transition: all 0.6s; +} +.team-box .team-img .overley:before { + content: ''; + display: block; + width: 0; + height: 0; + border-style: solid; + border-width: 0 0 200px 200px; + border-color: transparent transparent rgba(0, 0, 0, 0.8) transparent; + position: absolute; + bottom: 15px; + right: 15px; +} +.team-box .team-img .overley .team-social { + position: absolute; + bottom: 20px; + right: 24px; + margin-top: -20px; +} +.team-box .team-img .overley .team-social a i { + color: #b2b2b2; + border: 2px solid #b2b2b2; + border-radius: 100%; + width: 40px; + height: 40px; + line-height: 36px; + vertical-align: middle; + display: block; + text-align: center; + margin-bottom: 8px; + -webkit-transition: all 0.3s; + transition: all 0.3s; +} +.team-box .team-img .overley .team-social a:hover i { + color: #bc9355; + border: 2px solid #bc9355; + -webkit-transform: rotateZ(360deg); + transform: rotateZ(360deg); +} +.team-box .team-img:hover .overley { + opacity: 1; +} +.team-box .team-content h4 { + color: #f3f3f3; + font-family: "Playfair Display", serif; + font-size: 24px; + padding-top: 20px; +} +.team-box .team-content p { + padding-bottom: 20px; +} +.team-box:hover { + border-color: #bc9355; +} +.team-box:hover .team-img { + border-color: #bc9355; +} + +/* 3.3 team-box end */ +/* 3.4 animated counter start */ +.counter-box .counter-icon { + margin-bottom: 15px; +} +.counter-box .counter-icon i:before { + font-size: 60px; + color: #bc9355; +} +.counter-box .counter-content .counter { + color: #fff; + font-size: 60px; + margin-bottom: 30px; +} +.counter-box .counter-content h4 { + color: #fff; + letter-spacing: 1px; +} + +/* 3.4 animated counter end */ +/* 3.5 feedback start */ +.feedback-carousel h4 { + color: #fff; + font-size: 24px; + line-height: 50px; +} + +.thumb { + display: block; + width: 80px; + height: 80px; + -webkit-transform: rotate(45deg); + transform: rotate(45deg); +} +.thumb img { + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); + display: block; +} + +/* 3.5 feedback end */ +/* 3.6 forms start */ +.booking-form input[type="text"], +.booking-form input[type="email"] { + background: transparent; + box-shadow: none; + border-radius: 0; + padding: 20px 10px; + color: #b2b2b2; +} +.booking-form select { + color: #b2b2b2; + background: #1f2125; + border: 1px solid #bc9355; + box-shadow: none; + border-radius: 0; + height: 42px; + border: 1px solid #545454; +} +.booking-form input[type="text"]:focus, +.booking-form input[type="email"]:focus, +.booking-form select:focus { + box-shadow: none; + border: 1px solid #bc9355; +} +.booking-form .btn-primary { + width: 100%; + background: #bc9355; + border: 1px solid #bc9355; + padding-top: 12px; + padding-bottom: 12px; + text-transform: uppercase; +} +.booking-form .btn-primary:hover { + color: #fff; + background: #bc9355; +} +.booking-form .btn-primary:focus { + outline: none; + background: #bc9355; +} +.booking-form .btn-primary.disabled:hover, .booking-form .btn-primary.disabled:focus { + background: #bc9355; + border: 1px solid #bc9355; +} +.booking-form .form-control { + border-color: #585858; +} +.booking-form .form-control:focus { + box-shadow: none; +} +.booking-form .has-error .form-control { + border-color: #a94442; +} + +.contact-address h3 { + border-bottom: 1px solid #585858; + margin-bottom: 20px; + padding-bottom: 20px; +} + +.career-form label, +.contact-form label { + font-weight: 400; +} +.career-form input[type=text], +.career-form input[type=email], +.career-form textarea, +.contact-form input[type=text], +.contact-form input[type=email], +.contact-form textarea { + background: transparent; + box-shadow: none; + border-radius: 0; +} +.career-form input[type=text]:hover, .career-form input[type=text]:focus, +.career-form input[type=email]:hover, +.career-form input[type=email]:focus, +.career-form textarea:hover, +.career-form textarea:focus, +.contact-form input[type=text]:hover, +.contact-form input[type=text]:focus, +.contact-form input[type=email]:hover, +.contact-form input[type=email]:focus, +.contact-form textarea:hover, +.contact-form textarea:focus { + background: transparent; + border: 1px solid #bc9355; +} +.career-form input[type=text], +.career-form input[type=email], +.contact-form input[type=text], +.contact-form input[type=email] { + height: 50px; +} +.career-form .btn-primary, +.contact-form .btn-primary { + width: 100%; + color: #b2b2b2; + background: #bc9355; + border: 1px solid #bc9355; + padding-top: 12px; + padding-bottom: 12px; + text-transform: uppercase; +} +.career-form .btn-primary:hover, +.contact-form .btn-primary:hover { + color: #fff; + background: #bc9355; +} +.career-form .btn-primary:focus, +.contact-form .btn-primary:focus { + outline: none; + background: #bc9355; +} +.career-form .btn-primary.disabled:hover, .career-form .btn-primary.disabled:focus, +.contact-form .btn-primary.disabled:hover, +.contact-form .btn-primary.disabled:focus { + background: #bc9355; + border: 1px solid #bc9355; +} +.career-form .form-control, +.contact-form .form-control { + border-color: #585858; +} +.career-form .form-control:focus, +.contact-form .form-control:focus { + box-shadow: none; +} +.career-form .has-error .form-control, +.contact-form .has-error .form-control { + border-color: #a94442; +} + +/* 3.6 forms end */ +/* 3.7 dropCap start */ +.dropcap { + float: left; + width: 55px; + height: 55px; + margin: 7px 10px 0 0; + padding: 6px 10px 0 16px; + font-size: 40px; + font-weight: 400; + line-height: 40px; +} +.dropcap.square { + background: #bc9355; + color: #fff; +} +.dropcap.circle { + background: #bc9355; + color: #fff; + border-radius: 100%; +} +.dropcap.rounded { + background: #bc9355; + color: #fff; + border-radius: 4px; +} + +/* 3.7 dropCap end */ +/* 3.8 pricing box start */ +.pricing-box { + border: 1px solid #585858; + padding-bottom: 20px; + -webkit-transition: all 0.3s; + transition: all 0.3s; +} +.pricing-box .price-title { + font-size: 20px; + padding: 30px 0; +} +.pricing-box .price-tag { + background: #585858; + padding: 10px 0 20px; + -webkit-transition: all 0.3s; + transition: all 0.3s; +} +.pricing-box .price-tag h5 { + font-size: 40px; + color: #fff; +} +.pricing-box .price-tag h5 span { + font-size: 24px; +} +.pricing-box .price-description { + padding: 20px; +} +.pricing-box .btn-primary { + padding: 10px 30px; + border: 0; +} +.pricing-box .btn-primary:hover { + background: #bc9355; +} +.pricing-box:hover { + border: 1px solid #bc9355; +} +.pricing-box:hover .price-tag { + background: #bc9355; +} + +.price-carousel.style-1 .price-item { + margin: 10px; + border: 2px solid #b2b2b2; +} +.price-carousel.style-1 .price-item .title { + padding: 25px 0; +} +.price-carousel.style-1 .price-item .title h4 { + font-size: 18px; +} +.price-carousel.style-1 .price-item .price { + background: #b2b2b2; + padding: 25px 0 35px; +} +.price-carousel.style-1 .price-item .price h5 { + color: #1f2125; + font-size: 34px; + font-weight: 700; +} +.price-carousel.style-1 .price-item .price h5 span { + font-size: 18px; + line-height: 20px; +} +.price-carousel.style-1 .price-item .time { + padding: 25px 0; +} +.price-carousel.style-1 .price-item .time p { + margin: 0; +} +.price-carousel.style-2 .price-item { + margin: 10px; + border: 2px solid #272b31; +} +.price-carousel.style-2 .price-item .title { + padding: 25px 0; +} +.price-carousel.style-2 .price-item .title h4 { + font-size: 18px; +} +.price-carousel.style-2 .price-item .price { + background: #272b31; + padding: 25px 0 35px; +} +.price-carousel.style-2 .price-item .price h5 { + color: #fff; + font-size: 34px; + font-weight: 700; +} +.price-carousel.style-2 .price-item .price h5 span { + font-size: 18px; + line-height: 20px; +} +.price-carousel.style-2 .price-item .time { + padding: 25px 0; +} +.price-carousel.style-2 .price-item .time p { + margin: 0; +} + +/* 3.8 pricing box end */ +/* 3.9 call to action start */ +.c2a { + padding-left: 80px; +} +.c2a h3 { + font-size: 32px; + font-weight: 400; + margin-bottom: 40px; +} +.c2a p { + margin-bottom: 40px; +} +.c2a .btn-primary { + color: #b2b2b2; + background: #bc9355; + border: 1px solid #fff; + padding: 12px 30px; + text-transform: uppercase; +} +.c2a .btn-primary:hover { + color: #fff; +} +.c2a .btn-primary:focus { + outline: none; +} +.c2a .c2a-img { + position: relative; + height: 365px; +} +.c2a .c2a-img img { + width: 200px; + border: 2px solid #bc9355; +} +.c2a .c2a-img .img-1 { + position: absolute; + left: 0; + top: 0; +} +.c2a .c2a-img .img-2 { + position: absolute; + right: 0; + bottom: 0; +} + +/* 3.9 call to action end */ +/* 3.10 others start */ +.store-timing h4 { + font-family: "Playfair Display", serif; + color: #f3f3f3; + font-size: 24px; + margin-bottom: 15px; + text-transform: uppercase; +} + +.mass-head { + position: relative; +} +.mass-head .mass-head-icon { + width: 45px; + height: 45px; + background: #bc9355; + position: absolute; + bottom: -23px; + left: 50%; + margin-left: -23px; + -webkit-transform: rotate(135deg); + transform: rotate(135deg); + z-index: 999; +} +.mass-head .mass-head-icon i:before { + color: #000; + font-size: 26px; + position: absolute; + bottom: 9px; + left: 9px; +} + +.mass-head-content img { + margin-left: auto; + margin-right: auto; +} +.mass-head-content h2.page-title { + color: #bc9355; + font-size: 36px; + line-height: 68px; + text-transform: uppercase; +} + +.gallery-item img { + border: 2px solid #bc9355; +} + +/* 3.10 others end */ +/* 04 footer start */ +.footer-icon i:before { + color: #bc9355; + font-size: 60px; + line-height: 50px; +} + +.footer-contact p { + margin-bottom: 0; +} + +.footer-social ul { + margin: 0; + padding: 0; +} +.footer-social ul li { + margin: 0; + padding: 0; + display: inline-block; + list-style: none; +} +.footer-social ul li a i { + width: 40px; + height: 40px; + color: #000; + background: #c5c5c5; + font-size: 24px; + line-height: 38px; + -webkit-transition: all 0.3s; + transition: all 0.3s; +} +.footer-social ul li a:hover i { + color: #fff; + background: #bc9355; + -webkit-transform: rotateZ(360deg); + transform: rotateZ(360deg); +} + +#back-to-top { + opacity: 0; + -webkit-transition: all 0.3s; + transition: all 0.3s; +} +#back-to-top i { + width: 50px; + height: 50px; + line-height: 45px; + font-size: 42px; + text-align: center; + position: fixed; + bottom: 40px; + right: 40px; + background: #585858; + cursor: pointer; + -webkit-transition: all 0.3s; + transition: all 0.3s; +} +#back-to-top i:hover, #back-to-top i:active, #back-to-top i:focus { + background: #bc9355; + color: #fff; + outline: 0; +} +#back-to-top.reveal { + opacity: 1; +} + +/* 04 footer start */ + +/*# sourceMappingURL=style.css.map */ diff --git a/oldwebsite/assets/css/style.css.map b/oldwebsite/assets/css/style.css.map new file mode 100644 index 0000000..5d3956f --- /dev/null +++ b/oldwebsite/assets/css/style.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,IAAK;EACJ,WAAW,ECUU,uBAAW;EDThC,KAAK,ECFY,OAAO;EDGxB,SAAS,EAAE,IAAI;EACZ,WAAW,EAAE,KAAK;EAClB,2BAA2B,EAAE,MAAM;;;AAEvC,gBAAiB;EACb,UAAU,EAAE,OAAO;EACnB,KAAK,EAAE,IAAI;EACX,WAAW,EAAE,IAAI;EACjB,OAAO,EAAE,IAAI;;;AAEjB,WAAY;EACR,UAAU,EAAE,OAAO;EACnB,KAAK,EAAE,IAAI;EACX,WAAW,EAAE,IAAI;EACjB,OAAO,EAAE,IAAI;;;AAEjB,OAAQ;EACJ,UAAU,EAAE,kBAAe;;;AAE/B,MAAO;EACH,aAAa,EAAE,CAAC;;;AAEpB,eAAgB;EACZ,QAAQ,EAAE,MAAM;;;AAEpB,IAAK;EACD,qBAAqB,EAAE,CAAC;EACxB,aAAa,EAAE,CAAC;EAChB,kBAAkB,EAAE,QAAQ;EAC5B,UAAU,EAAE,QAAQ;;;AAExB,YAAa;EACT,UAAU,ECFQ,OAAc;EDGhC,KAAK,ECTgB,IAAM;;;ADY/B,MAAO;EACH,MAAM,EAAC,CAAC;EACR,UAAU,EAAE,IAAI;;;AAEpB,cAAe;EACX,OAAO,EAAE,CAAC;;;AAEd;oBACqB;EACjB,gBAAgB,EAAE,OAAO;EACzB,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,CAAC;;;AAEb;8BAC+B;EAC3B,gBAAgB,EAAE,OAAO;EACzB,KAAK,EC5BgB,IAAM;ED6B3B,MAAM,EAAE,cAAc;;;AAE1B;oBACqB;EACjB,SAAS,EAAE,IAAI;EACf,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,mBAAmB;EAC5B,MAAM,EAAE,iBAAwB;EAChC,gBAAgB,EChCE,OAAc;EDiChC,KAAK,ECvCgB,IAAM;EDwC3B,eAAe,EAAE,IAAI;EACrB,kBAAkB,EAAE,QAAQ;EAC5B,UAAU,EAAE,QAAQ;;;AAExB,2CAA4C;EACxC,OAAO,EAAE,OAAO;EAChB,WAAW,EAAE,WAAW;;;AAE5B,qBAAsB;EAClB,OAAO,EAAE,OAAO;EAChB,WAAW,EAAE,WAAW;EACxB,YAAY,EAAE,GAAG;EACjB,kBAAkB,EAAE,QAAQ;EAC5B,aAAa,EAAE,QAAQ;EACvB,UAAU,EAAE,QAAQ;;;AAExB,WAAY;EACR,WAAW,EAAE,IAAI;EACjB,UAAU,ECnDc,IAAM;;;ADqDlC,SAAU;EACN,OAAO,EAAE,CAAC;;;AAEd;2DACwD;EACpD,MAAM,EAAC,CAAC;;;AAIZ,SAAU;EACN,aAAa,EAAE,iBAAiB;;AAE5B,kBAAI;EACA,KAAK,ECzEQ,IAAM;ED0EnB,UAAU,EAAE,OAAO;EACnB,aAAa,EAAE,CAAC;EAChB,MAAM,EAAE,CAAC;EACT,YAAY,EAAE,GAAG;EACjB,WAAW,EC/FE,yBAAkB;;ADgG/B,kDACQ;EACJ,UAAU,EC3EJ,OAAc;ED4EpB,KAAK,EClFI,IAAM;EDmFf,MAAM,EAAE,CAAC;;AAIb,yBAAI;EACA,UAAU,EClFJ,OAAc;EDmFpB,KAAK,ECzFI,IAAM;ED0Ff,MAAM,EAAE,CAAC;;AACT,gEACQ;EACJ,UAAU,ECvFR,OAAc;EDwFhB,KAAK,EC9FA,IAAM;ED+FX,MAAM,EAAE,CAAC;;AAOjB,sBAAI;EACA,OAAO,EAAE,SAAS;;;AAKlC,YAAa;EACT,UAAU,EAAE,OAAO;EACnB,OAAO,EAAE,IAAI;EACb,MAAM,EAAE,iBAAiB;EACzB,UAAU,EAAE,CAAC;;;AAIjB;;;2BAG4B;EACxB,WAAW,EAAE,CAAC;;;AAKd,SAAG;EACC,OAAO,EAAE,KAAK;;AACd,gBAAO;EACH,UAAU,EAAE,GAAG;EACf,KAAK,EC3HK,OAAc;;;ADiIpC,oBAAqB;EACjB,MAAM,EAAE,QAAQ;EAChB,QAAQ,EAAE,MAAM;EAChB,QAAQ,EAAE,OAAO;;AACjB,uBAAG;EACC,KAAK,EAAE,IAAI;EACX,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EACZ,QAAQ,EAAE,MAAM;EAChB,SAAS,EAAE,cAAc;EACzB,MAAM,EAAE,KAAK;;AAEjB,wBAAI;EACA,MAAM,EAAE,iBAAiB;EACzB,OAAO,EAAE,GAAG;EACZ,kBAAkB,EAAE,QAAQ;EAC5B,UAAU,EAAE,QAAQ;EACpB,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,CAAC;;AACV,oCAAc;EACV,MAAM,EAAE,iBAAwB;EAChC,OAAO,EAAE,CAAC;;AAEd,8BAAQ;EACJ,MAAM,EAAE,iBAAwB;EAChC,OAAO,EAAE,CAAC;;;AAKtB,OAAQ;EACJ,OAAO,EAAE,YAAY;EACrB,cAAc,EAAE,MAAM;EACtB,iBAAiB,EAAE,8BAA8B;EACjD,SAAS,EAAE,8BAA8B;EACzC,UAAU,EAAE,mBAAmB;EAC/B,QAAQ,EAAE,QAAQ;EAClB,UAAU,ECtKQ,OAAc;EDuKhC,2BAA2B,EAAE,KAAK;EAClC,mBAAmB,EAAE,KAAK;EAC1B,2BAA2B,EAAE,IAAI;EACjC,mBAAmB,EAAE,IAAI;;AACzB,cAAS;EACL,OAAO,EAAE,EAAE;EACX,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,EAAE;EACX,GAAG,EAAE,CAAC;EACN,MAAM,EAAE,CAAC;EACT,IAAI,EAAE,CAAC;EACP,KAAK,EAAE,CAAC;EACR,UAAU,EAAE,OAAO;EACnB,iBAAiB,EAAE,SAAS;EAC5B,SAAS,EAAE,SAAS;EACpB,wBAAwB,EAAE,GAAG;EAC7B,gBAAgB,EAAE,GAAG;EACrB,2BAA2B,EAAE,SAAS;EACtC,mBAAmB,EAAE,SAAS;EAC9B,2BAA2B,EAAE,IAAI;EACjC,mBAAmB,EAAE,IAAI;EACzB,kCAAkC,EAAE,QAAQ;EAC5C,0BAA0B,EAAE,QAAQ;;AAExC,4CAA2B;EACvB,KAAK,EAAE,KAAK;;AACZ,uMAA6B;EACzB,iBAAiB,EAAE,SAAS;EAC5B,SAAS,EAAE,SAAS;;;AAIhC,QAAS;EACL,OAAO,EAAE,YAAY;EACrB,cAAc,EAAE,MAAM;EACtB,iBAAiB,EAAE,8BAA8B;EACjD,SAAS,EAAE,8BAA8B;EACzC,UAAU,EAAE,mBAAmB;EAC/B,QAAQ,EAAE,QAAQ;EAClB,UAAU,EC9MQ,OAAc;ED+MhC,2BAA2B,EAAE,KAAK;EAClC,mBAAmB,EAAE,KAAK;EAC1B,2BAA2B,EAAE,IAAI;EACjC,mBAAmB,EAAE,IAAI;;AACzB,eAAS;EACL,OAAO,EAAE,EAAE;EACX,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,EAAE;EACX,GAAG,EAAE,CAAC;EACN,MAAM,EAAE,CAAC;EACT,IAAI,EAAE,CAAC;EACP,KAAK,EAAE,CAAC;EACR,UAAU,EAAE,IAAI;EAChB,iBAAiB,EAAE,SAAS;EAC5B,SAAS,EAAE,SAAS;EACpB,wBAAwB,EAAE,GAAG;EAC7B,gBAAgB,EAAE,GAAG;EACrB,2BAA2B,EAAE,SAAS;EACtC,mBAAmB,EAAE,SAAS;EAC9B,2BAA2B,EAAE,IAAI;EACjC,mBAAmB,EAAE,IAAI;EACzB,kCAAkC,EAAE,QAAQ;EAC5C,0BAA0B,EAAE,QAAQ;;AAExC,+CAA2B;EACvB,KAAK,EAAE,KAAK;;AACZ,gNAA6B;EACzB,iBAAiB,EAAE,SAAS;EAC5B,SAAS,EAAE,SAAS;;;AAIhC,aAAc;EACV,OAAO,EAAE,YAAY;EACrB,cAAc,EAAE,MAAM;EACtB,iBAAiB,EAAE,8BAA8B;EACjD,SAAS,EAAE,8BAA8B;EACzC,UAAU,EAAE,mBAAmB;EAC/B,QAAQ,EAAE,QAAQ;EAClB,UAAU,EAAE,OAAO;EACnB,2BAA2B,EAAE,KAAK;EAClC,mBAAmB,EAAE,KAAK;EAC1B,2BAA2B,EAAE,IAAI;EACjC,mBAAmB,EAAE,IAAI;;AACzB,oBAAS;EACL,OAAO,EAAE,EAAE;EACX,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,EAAE;EACX,GAAG,EAAE,CAAC;EACN,MAAM,EAAE,CAAC;EACT,IAAI,EAAE,CAAC;EACP,KAAK,EAAE,CAAC;EACR,UAAU,ECnQI,OAAc;EDoQ5B,iBAAiB,EAAE,SAAS;EAC5B,SAAS,EAAE,SAAS;EACpB,wBAAwB,EAAE,GAAG;EAC7B,gBAAgB,EAAE,GAAG;EACrB,2BAA2B,EAAE,SAAS;EACtC,mBAAmB,EAAE,SAAS;EAC9B,2BAA2B,EAAE,IAAI;EACjC,mBAAmB,EAAE,IAAI;EACzB,kCAAkC,EAAE,QAAQ;EAC5C,0BAA0B,EAAE,QAAQ;;AAExC,8DAA2B;EACvB,KAAK,EAAE,KAAK;;AACZ,6PAA6B;EACzB,iBAAiB,EAAE,SAAS;EAC5B,SAAS,EAAE,SAAS;;;AAIhC,IAAK;EACD,MAAM,EAAE,KAAK;EACb,KAAK,EAAE,IAAI;;;AAEf,SAAU;EACN,MAAM,EAAE,KAAK;EACb,KAAK,EAAE,IAAI;;;;AAGf,sBAAG;EACF,WAAW,ECxTa,yBAAkB;EDyT1C,WAAW,EAAE,GAAG;EAChB,MAAM,EAAE,CAAC;;;AAiBV,UAAW;EACV,UAAU,EAAE,IAAI;;;AAEjB,YAAa;EACZ,UAAU,EAAE,MAAM;;;AAEnB,WAAY;EACR,WAAW,EAAE,IAAI;EACjB,YAAY,EAAE,IAAI;;;AAEtB,WAAY;EACX,UAAU,EAAE,KAAK;;;AAElB,IAAK;EACD,cAAc,EAAE,SAAS;;;AAE7B,CAAE;EACD,kBAAkB,EAAE,QAAQ;EACzB,UAAU,EAAE,QAAQ;EACpB,eAAe,EAAE,IAAI;;AACrB,OAAQ;EACJ,eAAe,EAAE,IAAI;;AAEzB,OAAQ;EACJ,eAAe,EAAE,IAAI;EACrB,KAAK,EC9WK,OAAO;ED+WjB,OAAO,EAAE,CAAC;;;AAGlB,cAAe;EACX,aAAa,EAAE,IAAI;;AACnB,iBAAG;EACC,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI;EACjB,UAAU,EAAE,IAAI;EAChB,aAAa,EAAE,IAAI;EACnB,cAAc,EAAE,SAAS;EACzB,KAAK,ECzXK,OAAO;;AD4XjB,uBAAG;EACC,KAAK,ECnWQ,IAAM;;ADwWnB,4BAAS;EACL,SAAS,EAAE,IAAI;EACf,KAAK,ECpWC,OAAc;;;ADyWpC,mBAAoB;EAChB,aAAa,EAAE,IAAI;;AACnB,sBAAG;EACC,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI;EACjB,UAAU,EAAE,CAAC;EACb,aAAa,EAAE,IAAI;EACnB,cAAc,EAAE,SAAS;EACzB,KAAK,ECjZK,OAAO;;ADoZjB,4BAAG;EACC,KAAK,EC3XQ,IAAM;;ADgYnB,iCAAS;EACL,SAAS,EAAE,IAAI;EACf,KAAK,EC5XC,OAAc;;;ADiYpC,WAAY;EACR,KAAK,ECxYgB,IAAM;;;;AD2Y/B,KAAM;EACF,UAAU,EAAE,IAAI;;;AAEpB,KAAM;EACF,UAAU,EAAE,IAAI;;;AAEpB,KAAM;EACF,UAAU,EAAE,IAAI;;;AAEpB,KAAM;EACF,aAAa,EAAE,IAAI;;;AAEvB,KAAM;EACF,aAAa,EAAE,IAAI;;;AAEvB,KAAM;EACF,aAAa,EAAE,IAAI;;;AAEvB,MAAO;EACH,OAAO,EAAE,MAAM;;;AAEnB,OAAQ;EACJ,OAAO,EAAE,OAAO;;;AAEpB,QAAS;EACL,WAAW,EAAE,IAAI;;;AAErB,SAAU;EACN,WAAW,EAAE,KAAK;;;AAEtB,cAAe;EACX,OAAO,EAAE,aAAa;;;AAE1B,aAAc;EACV,iBAAiB,EAAE,cAAc;EACjC,SAAS,EAAE,cAAc;;;;AAG7B,WAAY;EACR,UAAU,EAAE,OAAO;;;AAEvB,WAAY;EACR,UAAU,EAAE,OAAO;;;AAEvB,YAAa;EACT,UAAU,EAAE,kBAAe;;;AAE/B,SAAU;EACN,iBAAiB,EAAE,SAAS;EAC5B,qBAAqB,EAAE,KAAK;EAC5B,mBAAmB,EAAE,KAAK;EAC1B,eAAe,EAAE,KAAK;;;AAE1B,eAAgB;EACZ,gBAAgB,EAAE,0CAA0C;;;AAEhE,eAAgB;EACZ,gBAAgB,EAAE,0CAA0C;;;AAEhE,eAAgB;EACZ,gBAAgB,EAAE,0CAA0C;;;AAEhE,KAAM;EACF,gBAAgB,EAAE,oCAAoC;;;AAE1D,KAAM;EACF,gBAAgB,EAAE,oCAAoC;;;AAE1D,KAAM;EACF,gBAAgB,EAAE,oCAAoC;;;AAE1D,KAAM;EACF,gBAAgB,EAAE,oCAAoC;;;;AE9e1D,OAAQ;EACJ,aAAa,EAAE,CAAC;;AAChB,sBAAiB;EACb,MAAM,EAAE,CAAC;EACT,gBAAgB,EAAE,WAAW;;AAC7B,kCAAY;EACR,aAAa,EAAE,IAAI;;AAEf,2CAAI;EACA,WAAW,EAAE,CAAC;EACd,cAAc,EAAE,CAAC;EACjB,KAAK,EDgBA,IAAM;ECfX,WAAW,EAAE,KAAK;EAClB,cAAc,EAAE,SAAS;EACzB,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,GAAG;;AAChB,iDAAQ;EACJ,KAAK,EDUJ,IAAM;ECTP,UAAU,EDDb,WAAW;;ACIhB,6CAAQ;EACJ,OAAO,EAAE,EAAE;EACX,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,CAAC;EACR,kBAAkB,EAAE,QAAQ;EAC5B,UAAU,EAAE,QAAQ;;AAGpB,mDAAQ;EACJ,KAAK,EAAE,IAAI;EACX,UAAU,EDEZ,OAAc;;ACGpB,8CAAI;EACA,KAAK,EDVA,IAAM;ECWX,UAAU,EDnBR,WAAW;;ACqBjB,gDAAQ;EACJ,OAAO,EAAE,EAAE;EACX,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,IAAI;EACX,UAAU,EDXR,OAAc;;ACepB,8CAAI;EACA,KAAK,EDtBA,IAAM;ECuBX,UAAU,EAAE,WAAW;;AAKvB,sDAAQ;EACJ,OAAO,EAAE,OAAO;EAChB,WAAW,ED7CjB,aAAa;EC8CP,OAAO,EAAE,YAAY;EACrB,WAAW,EAAE,GAAG;EAChB,WAAW,EAAE,IAAI;;AAGzB,2DAAe;EACX,MAAM,EAAC,CAAC;EACR,UAAU,ED/BF,IAAM;ECgCd,OAAO,EAAE,CAAC;;AAEN,oEAAI;EACA,KAAK,ED1CR,IAAM;EC2CH,SAAS,EAAE,IAAI;EACf,OAAO,EAAE,QAAQ;EACjB,cAAc,EAAE,SAAS;;AACzB,0EAAQ;EACJ,KAAK,ED/CZ,IAAM;ECgDC,UAAU,ED1CpB,OAAc;;AC8CR,2EAAI;EACA,KAAK,EDrDZ,IAAM;ECsDC,UAAU,EDhDpB,OAAc;;ACuD5B,qCAAe;EACX,UAAU,EDxDA,OAAc;ECyDxB,MAAM,EAAE,CAAC;;AACT,+CAAU;EACN,UAAU,ED1DE,IAAM;;;ACiElC,kBAAmB;EACf,SAAS,EAAE,IAAI;EACf,KAAK,ED1EgB,IAAM;EC2E3B,WAAW,EAAE,KAAK;EAClB,IAAI,EAAE,KAAK;;AACX,oBAAE;EACE,aAAa,EAAE,GAAG;;;;AAI1B,oCAAqC;IAGzB,kCAAY;IACR,KAAK,EAAE,KAAK;;IAER,6CAAQ;IACJ,MAAM,EAAE,GAAG;;IAIf,gDAAQ;IACJ,MAAM,EAAE,GAAG;;;;AAQnC,oCAAqC;IACjC,OAAQ;IACJ,aAAa,EAAE,CAAC;;IAChB,sBAAiB;IACb,gBAAgB,EAAE,IAAI;;IAElB,0CAAM;IACF,KAAK,EAAE,GAAG;;IAGlB,uCAAiB;IACb,MAAM,EAAE,CAAC;IACT,UAAU,EAAE,IAAI;;IAChB,gDAAW;IACP,YAAY,EAAE,CAAC;IACf,WAAW,EAAE,CAAC;;IAGtB,kCAAY;IACR,aAAa,EAAE,CAAC;;IAEZ,2CAAI;IACA,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,IAAI;;IAErB,6CAAQ;IACJ,MAAM,EAAE,GAAG;;IAGX,qDAAQ;IACJ,MAAM,EAAE,CAAC;;IAKjB,8CAAI;IACA,KAAK,ED1IJ,IAAM;IC2IP,UAAU,EDrIZ,OAAc;;IC0IZ,sDAAQ;IACJ,OAAO,EAAE,OAAO;IAChB,WAAW,EDjKrB,aAAa;ICkKH,OAAO,EAAE,YAAY;IACrB,WAAW,EAAE,GAAG;;IAGhB,4DAAQ;IACJ,OAAO,EAAE,OAAO;;IAMpB,oEAAI;IACA,OAAO,EAAE,QAAQ;;;;ACvL9C,yCAAE;EACD,KAAK,EF6Ba,OAAc;;AE5BhC,gDAAS;EACR,MAAM,EAAE,iBAAwB;EAChC,SAAS,EAAE,IAAI;EACf,KAAK,EAAE,KAAK;EACZ,MAAM,EAAE,KAAK;EACb,OAAO,EAAE,SAAS;EAClB,aAAa,EAAE,IAAI;EACnB,OAAO,EAAE,YAAY;EACrB,cAAc,EAAE,MAAM;;AAIzB,sCAAa;EACZ,MAAM,EAAE,iBAAwB;EAChC,KAAK,EAAE,KAAK;EACZ,MAAM,EAAE,KAAK;EACb,MAAM,EAAE,WAAW;EACnB,WAAW,EAAE,IAAI;;AAGjB,6CAAG;EACF,SAAS,EAAE,IAAI;EACf,WAAW,EFjBU,yBAAkB;EEkBvC,WAAW,EAAE,IAAI;EACjB,KAAK,EAAE,OAAO;EACd,cAAc,EAAE,SAAS;EACzB,aAAa,EAAE,IAAI;;AAEpB,4CAAE;EACD,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,KAAK;EAClB,aAAa,EAAE,IAAI;;;;;AAOvB,YAAa;EACZ,MAAM,EAAE,iBAAiB;EACzB,kBAAkB,EAAE,QAAQ;EAC5B,UAAU,EAAE,QAAQ;;AAIpB,6BAAiB;EAChB,OAAO,EAAE,IAAI;;AACb,gCAAG;EACF,KAAK,EF1BiB,IAAM;EE2B5B,aAAa,EAAE,IAAI;EACnB,KAAK,EAAE,IAAI;;AAEZ,mCAAM;EACL,SAAS,EAAE,IAAI;EACf,UAAU,EAAE,GAAG;EACf,KAAK,EAAE,KAAK;;AAEb,+BAAE;EACD,OAAO,EAAE,YAAY;EACrB,UAAU,EAAE,MAAM;;AAEnB,0CAAa;EACZ,UAAU,EAAE,IAAI;;AAChB,uDAAa;EACZ,UAAU,EAAE,OAAO;EACnB,MAAM,EAAE,iBAAiB;EACzB,OAAO,EAAE,SAAS;;AAClB,6DAAQ;EACP,OAAO,EAAE,IAAI;;AAMhB,mBAAG;EACF,KAAK,EFrDiB,IAAM;EEsD5B,aAAa,EAAE,IAAI;EACnB,KAAK,EAAE,IAAI;EACX,SAAS,EAAE,IAAI;;AAEhB,sBAAM;EACL,SAAS,EAAE,IAAI;EACf,UAAU,EAAE,CAAC;EACb,KAAK,EAAE,KAAK;;AAGd,kBAAQ;EACP,MAAM,EAAE,iBAAwB;;;;;AAKlC,SAAU;EACT,MAAM,EAAE,cAAc;EACtB,kBAAkB,EAAE,QAAQ;EAC5B,UAAU,EAAE,QAAQ;;AACpB,mBAAU;EACT,QAAQ,EAAE,QAAQ;EAClB,aAAa,EAAE,cAAc;;AAC7B,4BAAS;EACR,OAAO,EAAE,CAAC;EACV,kBAAkB,EAAE,QAAQ;EAC5B,UAAU,EAAE,QAAQ;;AACpB,mCAAS;EACR,OAAO,EAAE,EAAE;EACX,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,CAAC;EACR,MAAM,EAAE,CAAC;EACT,YAAY,EAAE,KAAK;EACnB,YAAY,EAAE,eAAe;EAC7B,YAAY,EAAE,sDAAmD;EACjE,QAAQ,EAAE,QAAQ;EAClB,MAAM,EAAE,IAAI;EACZ,KAAK,EAAE,IAAI;;AAEZ,yCAAa;EACZ,QAAQ,EAAE,QAAQ;EAClB,MAAM,EAAE,IAAI;EACZ,KAAK,EAAE,IAAI;EACX,UAAU,EAAE,KAAK;;AAEhB,6CAAE;EACD,KAAK,EF/HO,OAAO;EEgInB,MAAM,EAAE,iBAAqB;EAC7B,aAAa,EAAE,IAAI;EACnB,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EACZ,WAAW,EAAE,IAAI;EACjB,cAAc,EAAE,MAAM;EACtB,OAAO,EAAE,KAAK;EACd,UAAU,EAAE,MAAM;EAClB,aAAa,EAAE,GAAG;EAClB,kBAAkB,EAAE,QAAQ;EAC5B,UAAU,EAAE,QAAQ;;AAGpB,mDAAE;EACD,KAAK,EF7GU,OAAc;EE8G7B,MAAM,EAAE,iBAAwB;EAChC,iBAAiB,EAAE,eAAe;EAClC,SAAS,EAAE,eAAe;;AAO9B,kCAAS;EACR,OAAO,EAAE,CAAC;;AAKZ,0BAAG;EACF,KAAK,EF7Ja,OAAO;EE8JzB,WAAW,EFtJW,yBAAkB;EEuJxC,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI;;AAElB,yBAAE;EACD,cAAc,EAAE,IAAI;;AAGtB,eAAQ;EACP,YAAY,EFxIQ,OAAc;;AEyIlC,yBAAU;EACT,YAAY,EF1IO,OAAc;;;;;AEiJnC,0BAAc;EACb,aAAa,EAAE,IAAI;;AAElB,mCAAS;EACR,SAAS,EAAE,IAAI;EACf,KAAK,EFtJa,OAAc;;AE2JlC,sCAAS;EACR,KAAK,EFlKiB,IAAM;EEmK5B,SAAS,EAAE,IAAI;EACf,aAAa,EAAE,IAAI;;AAEpB,gCAAG;EACF,KAAK,EFvKiB,IAAM;EEwK5B,cAAc,EAAE,GAAG;;;;;AAOrB,qBAAG;EACF,KAAK,EFhLkB,IAAM;EEiL7B,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI;;;AAGnB,MAAO;EACN,OAAO,EAAE,KAAK;EACd,KAAK,EAAC,IAAI;EACV,MAAM,EAAE,IAAI;EACZ,iBAAiB,EAAE,aAAa;EAChC,SAAS,EAAE,aAAa;;AACxB,UAAI;EACH,iBAAiB,EAAE,cAAc;EACjC,SAAS,EAAE,cAAc;EACzB,OAAO,EAAE,KAAK;;;;;AAMf;iCACoB;EACnB,UAAU,EAAE,WAAW;EACvB,UAAU,EAAE,IAAI;EAChB,aAAa,EAAE,CAAC;EAChB,OAAO,EAAE,SAAS;EAClB,KAAK,EFrOW,OAAO;;AEuOxB,oBAAO;EACN,KAAK,EFxOW,OAAO;EEyOvB,UAAU,EAAE,OAAO;EACnB,MAAM,EAAE,iBAAwB;EAChC,UAAU,EAAE,IAAI;EAChB,aAAa,EAAE,CAAC;EAChB,MAAM,EAAE,IAAI;EACZ,MAAM,EAAE,iBAAiB;;AAKzB;;0BAAQ;EACP,UAAU,EAAE,IAAI;EAChB,MAAM,EAAE,iBAAwB;;AAGlC,0BAAa;EACZ,KAAK,EAAE,IAAI;EACX,UAAU,EFzNU,OAAc;EE0NlC,MAAM,EAAE,iBAAwB;EAChC,WAAW,EAAE,IAAI;EACjB,cAAc,EAAE,IAAI;EACpB,cAAc,EAAE,SAAS;;AACzB,gCAAQ;EACP,KAAK,EFrOiB,IAAM;EEsO5B,UAAU,EFhOS,OAAc;;AEkOlC,gCAAQ;EACP,OAAO,EAAE,IAAI;EACb,UAAU,EFpOS,OAAc;;AEuOjC,oFACQ;EACP,UAAU,EFzOQ,OAAc;EE0OhC,MAAM,EAAE,iBAAwB;;AAInC,2BAAc;EACb,YAAY,EAAE,OAAO;;AACrB,iCAAQ;EACP,UAAU,EAAE,IAAI;;AAIjB,sCAAc;EACb,YAAY,EAAE,OAAO;;;AAMvB,mBAAG;EACF,aAAa,EAAE,iBAAiB;EAChC,aAAa,EAAE,IAAI;EACnB,cAAc,EAAE,IAAI;;;AAMrB;mBAAM;EACL,WAAW,EAAE,GAAG;;AAEjB;;;;;sBAES;EACR,UAAU,EAAE,WAAW;EACvB,UAAU,EAAE,IAAI;EAChB,aAAa,EAAC,CAAC;;AACf;;;;;;;;;;4BACQ;EACP,UAAU,EAAE,WAAW;EACvB,MAAM,EAAE,iBAAwB;;AAGlC;;;+BACkB;EACjB,MAAM,EAAE,IAAI;;AAEb;0BAAa;EACZ,KAAK,EAAE,IAAI;EACX,KAAK,EF3TW,OAAO;EE4TvB,UAAU,EF3RU,OAAc;EE4RlC,MAAM,EAAE,iBAAwB;EAChC,WAAW,EAAE,IAAI;EACjB,cAAc,EAAE,IAAI;EACpB,cAAc,EAAE,SAAS;;AACzB;gCAAQ;EACP,KAAK,EFvSiB,IAAM;EEwS5B,UAAU,EFlSS,OAAc;;AEoSlC;gCAAQ;EACP,OAAO,EAAE,IAAI;EACb,UAAU,EFtSS,OAAc;;AEySjC;;yCACQ;EACP,UAAU,EF3SQ,OAAc;EE4ShC,MAAM,EAAE,iBAAwB;;AAInC;2BAAc;EACb,YAAY,EAAE,OAAO;;AACrB;iCAAQ;EACP,UAAU,EAAE,IAAI;;AAIjB;sCAAc;EACb,YAAY,EAAE,OAAO;;;;;AAMxB,QAAS;EACR,KAAK,EAAE,IAAI;EACR,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EACZ,MAAM,EAAE,YAAY;EACpB,OAAO,EAAE,eAAe;EACxB,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,GAAG;EAChB,WAAW,EAAE,IAAI;;AACjB,eAAS;EACR,UAAU,EFxUO,OAAc;EEyU/B,KAAK,EF/Ue,IAAM;;AEiV3B,eAAS;EACR,UAAU,EF5UO,OAAc;EE6U/B,KAAK,EFnVe,IAAM;EEoV1B,aAAa,EAAE,IAAI;;AAEpB,gBAAU;EACT,UAAU,EFjVO,OAAc;EEkV/B,KAAK,EFxVe,IAAM;EEyV1B,aAAa,EAAE,GAAG;;;;;AAKvB,YAAa;EACZ,MAAM,EAAE,iBAAiB;EACzB,cAAc,EAAE,IAAI;EACpB,kBAAkB,EAAE,QAAQ;EAC5B,UAAU,EAAE,QAAQ;;AACpB,yBAAa;EACZ,SAAS,EAAE,IAAI;EACf,OAAO,EAAE,MAAM;;AAEhB,uBAAW;EACV,UAAU,EAAE,OAAO;EACnB,OAAO,EAAE,WAAW;EACpB,kBAAkB,EAAE,QAAQ;EAC5B,UAAU,EAAE,QAAQ;;AACpB,0BAAG;EACF,SAAS,EAAE,IAAI;EACf,KAAK,EF9WiB,IAAM;;AE+W5B,+BAAK;EACJ,SAAS,EAAE,IAAI;;AAIlB,+BAAmB;EAClB,OAAO,EAAE,IAAI;;AAEd,yBAAa;EACZ,OAAO,EAAE,SAAS;EAClB,MAAM,EAAE,CAAC;;AACT,+BAAQ;EACP,UAAU,EFrXS,OAAc;;AEwXnC,kBAAQ;EACP,MAAM,EAAE,iBAAwB;;AAChC,6BAAW;EACV,UAAU,EF3XS,OAAc;;;AEkYlC,mCAAY;EACX,MAAM,EAAE,IAAI;EACZ,MAAM,EAAE,iBAAiB;;AACzB,0CAAO;EACN,OAAO,EAAE,MAAM;;AACf,6CAAG;EACF,SAAS,EAAE,IAAI;;AAGjB,0CAAO;EACN,UAAU,EAAE,OAAO;EACnB,OAAO,EAAE,WAAW;;AACpB,6CAAG;EACF,KAAK,EAAE,OAAO;EACd,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,GAAG;;AAChB,kDAAK;EACJ,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI;;AAIpB,yCAAM;EACL,OAAO,EAAE,MAAM;;AACf,2CAAE;EACD,MAAM,EAAE,CAAC;;AAMZ,mCAAY;EACX,MAAM,EAAE,IAAI;EACZ,MAAM,EAAE,iBAAiB;;AACzB,0CAAO;EACN,OAAO,EAAE,MAAM;;AACf,6CAAG;EACF,SAAS,EAAE,IAAI;;AAGjB,0CAAO;EACN,UAAU,EAAE,OAAO;EACnB,OAAO,EAAE,WAAW;;AACpB,6CAAG;EACF,KAAK,EFpbe,IAAM;EEqb1B,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,GAAG;;AAChB,kDAAK;EACJ,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI;;AAIpB,yCAAM;EACL,OAAO,EAAE,MAAM;;AACf,2CAAE;EACD,MAAM,EAAE,CAAC;;;;;AASd,IAAK;EACJ,YAAY,EAAE,IAAI;;AAClB,OAAG;EACF,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,GAAG;EAChB,aAAa,EAAE,IAAI;;AAEpB,MAAE;EACD,aAAa,EAAE,IAAI;;AAEpB,iBAAa;EACZ,KAAK,EF/eW,OAAO;EEgfvB,UAAU,EF/cU,OAAc;EEgdlC,MAAM,EAAE,cAAgB;EACxB,OAAO,EAAE,SAAS;EAClB,cAAc,EAAE,SAAS;;AACzB,uBAAQ;EACP,KAAK,EF1diB,IAAM;;AE4d7B,uBAAQ;EACP,OAAO,EAAE,IAAI;;AAGf,aAAS;EACR,QAAQ,EAAE,QAAQ;EAClB,MAAM,EAAE,KAAK;;AACb,iBAAI;EACH,KAAK,EAAE,KAAK;EACZ,MAAM,EAAE,iBAAwB;;AAEjC,oBAAO;EACN,QAAQ,EAAE,QAAQ;EAClB,IAAI,EAAE,CAAC;EACP,GAAG,EAAC,CAAC;;AAEN,oBAAO;EACN,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,CAAC;EACR,MAAM,EAAC,CAAC;;;;;AAQV,gBAAG;EACF,WAAW,EFzgBY,yBAAkB;EE0gBzC,KAAK,EFlhBc,OAAO;EEmhB1B,SAAS,EAAE,IAAI;EACf,aAAa,EAAE,IAAI;EACnB,cAAc,EAAE,SAAS;;;AAM3B,UAAW;EACV,QAAQ,EAAE,QAAQ;;AAClB,0BAAgB;EACf,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EACZ,UAAU,EFjgBU,OAAc;EEkgBlC,QAAQ,EAAE,QAAQ;EAClB,MAAM,EAAE,KAAK;EACb,IAAI,EAAE,GAAG;EACT,WAAW,EAAE,KAAK;EAClB,iBAAiB,EAAE,cAAc;EACjC,SAAS,EAAE,cAAc;EACzB,OAAO,EAAE,GAAG;;AAEX,mCAAS;EACR,KAAK,EF1gBmB,IAAM;EE2gB9B,SAAS,EAAE,IAAI;EACf,QAAQ,EAAE,QAAQ;EAClB,MAAM,EAAE,GAAG;EACX,IAAI,EAAE,GAAG;;;AAMZ,sBAAI;EACH,WAAW,EAAE,IAAI;EACjB,YAAY,EAAE,IAAI;;AAGlB,gCAAa;EACZ,KAAK,EF3hBc,OAAc;EE4hBjC,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI;EACjB,cAAc,EAAE,SAAS;;;AAO3B,iBAAI;EACH,MAAM,EAAE,iBAAwB;;;;;AAQhC,qBAAS;EACR,KAAK,EF/iBc,OAAc;EEgjBjC,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI;;;AAKnB,iBAAE;EACD,aAAa,EAAE,CAAC;;;AAKjB,iBAAG;EACF,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,CAAC;;AACV,oBAAG;EACF,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,CAAC;EACV,OAAO,EAAE,YAAY;EACrB,UAAU,EAAE,IAAI;;AAEf,wBAAE;EACD,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EACZ,KAAK,EAAE,IAAI;EACX,UAAU,EAAE,OAAO;EACnB,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI;EACjB,kBAAkB,EAAE,QAAQ;EAC5B,UAAU,EAAE,QAAQ;;AAGpB,8BAAE;EACD,KAAK,EFvlBc,IAAM;EEwlBzB,UAAU,EFllBM,OAAc;EEmlB9B,iBAAiB,EAAE,eAAe;EAClC,SAAS,EAAE,eAAe;;;AAShC,YAAa;EAsBZ,OAAO,EAAE,CAAC;EACV,kBAAkB,EAAE,QAAQ;EAC5B,UAAU,EAAE,QAAQ;;AAvBpB,cAAE;EACD,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EACZ,WAAW,EAAE,IAAI;EACjB,SAAS,EAAE,IAAI;EACf,UAAU,EAAE,MAAM;EAClB,QAAQ,EAAE,KAAK;EACf,MAAM,EAAE,IAAI;EACZ,KAAK,EAAE,IAAI;EACX,UAAU,EAAE,OAAO;EACnB,MAAM,EAAE,OAAO;EACf,kBAAkB,EAAE,QAAQ;EAC5B,UAAU,EAAE,QAAQ;;AACpB,iEAEQ;EACP,UAAU,EF9mBS,OAAc;EE+mBjC,KAAK,EFrnBiB,IAAM;EEsnB5B,OAAO,EAAE,CAAC;;AAMZ,mBAAS;EACR,OAAO,EAAE,CAAC", +"sources": ["../scss/_global-styles.scss","../scss/_variable.scss","../scss/_navbar.scss","../scss/_element-styles.scss"], +"names": [], +"file": "style.css" +} diff --git a/oldwebsite/assets/css/vendor/bootstrap-datepicker.standalone.css b/oldwebsite/assets/css/vendor/bootstrap-datepicker.standalone.css new file mode 100644 index 0000000..1975a10 --- /dev/null +++ b/oldwebsite/assets/css/vendor/bootstrap-datepicker.standalone.css @@ -0,0 +1,504 @@ +/*! + * Datepicker for Bootstrap v1.6.4 (https://github.com/eternicode/bootstrap-datepicker) + * + * Copyright 2012 Stefan Petre + * Improvements by Andrew Rowls + * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0) + */ +.datepicker { + padding: 4px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + direction: ltr; +} +.datepicker-inline { + width: 220px; +} +.datepicker.datepicker-rtl { + direction: rtl; +} +.datepicker.datepicker-rtl table tr td span { + float: right; +} +.datepicker-dropdown { + top: 0; + left: 0; +} +.datepicker-dropdown:before { + content: ''; + display: inline-block; + border-left: 7px solid transparent; + border-right: 7px solid transparent; + border-bottom: 7px solid #999; + border-top: 0; + border-bottom-color: rgba(0, 0, 0, 0.2); + position: absolute; +} +.datepicker-dropdown:after { + content: ''; + display: inline-block; + border-left: 6px solid transparent; + border-right: 6px solid transparent; + border-bottom: 6px solid #fff; + border-top: 0; + position: absolute; +} +.datepicker-dropdown.datepicker-orient-left:before { + left: 6px; +} +.datepicker-dropdown.datepicker-orient-left:after { + left: 7px; +} +.datepicker-dropdown.datepicker-orient-right:before { + right: 6px; +} +.datepicker-dropdown.datepicker-orient-right:after { + right: 7px; +} +.datepicker-dropdown.datepicker-orient-bottom:before { + top: -7px; +} +.datepicker-dropdown.datepicker-orient-bottom:after { + top: -6px; +} +.datepicker-dropdown.datepicker-orient-top:before { + bottom: -7px; + border-bottom: 0; + border-top: 7px solid #999; +} +.datepicker-dropdown.datepicker-orient-top:after { + bottom: -6px; + border-bottom: 0; + border-top: 6px solid #fff; +} +.datepicker table { + margin: 0; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.datepicker td, +.datepicker th { + text-align: center; + width: 20px; + height: 20px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + border: none; +} +.table-striped .datepicker table tr td, +.table-striped .datepicker table tr th { + background-color: transparent; +} +.datepicker table tr td.day:hover, +.datepicker table tr td.day.focused { + background: #eee; + cursor: pointer; +} +.datepicker table tr td.old, +.datepicker table tr td.new { + color: #999; +} +.datepicker table tr td.disabled, +.datepicker table tr td.disabled:hover { + background: none; + color: #999; + cursor: default; +} +.datepicker table tr td.highlighted { + background: #d9edf7; + border-radius: 0; +} +.datepicker table tr td.today, +.datepicker table tr td.today:hover, +.datepicker table tr td.today.disabled, +.datepicker table tr td.today.disabled:hover { + background-color: #fde19a; + background-image: -moz-linear-gradient(to bottom, #fdd49a, #fdf59a); + background-image: -ms-linear-gradient(to bottom, #fdd49a, #fdf59a); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fdd49a), to(#fdf59a)); + background-image: -webkit-linear-gradient(to bottom, #fdd49a, #fdf59a); + background-image: -o-linear-gradient(to bottom, #fdd49a, #fdf59a); + background-image: linear-gradient(to bottom, #fdd49a, #fdf59a); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdd49a', endColorstr='#fdf59a', GradientType=0); + border-color: #fdf59a #fdf59a #fbed50; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); + color: #000; +} +.datepicker table tr td.today:hover, +.datepicker table tr td.today:hover:hover, +.datepicker table tr td.today.disabled:hover, +.datepicker table tr td.today.disabled:hover:hover, +.datepicker table tr td.today:active, +.datepicker table tr td.today:hover:active, +.datepicker table tr td.today.disabled:active, +.datepicker table tr td.today.disabled:hover:active, +.datepicker table tr td.today.active, +.datepicker table tr td.today:hover.active, +.datepicker table tr td.today.disabled.active, +.datepicker table tr td.today.disabled:hover.active, +.datepicker table tr td.today.disabled, +.datepicker table tr td.today:hover.disabled, +.datepicker table tr td.today.disabled.disabled, +.datepicker table tr td.today.disabled:hover.disabled, +.datepicker table tr td.today[disabled], +.datepicker table tr td.today:hover[disabled], +.datepicker table tr td.today.disabled[disabled], +.datepicker table tr td.today.disabled:hover[disabled] { + background-color: #fdf59a; +} +.datepicker table tr td.today:active, +.datepicker table tr td.today:hover:active, +.datepicker table tr td.today.disabled:active, +.datepicker table tr td.today.disabled:hover:active, +.datepicker table tr td.today.active, +.datepicker table tr td.today:hover.active, +.datepicker table tr td.today.disabled.active, +.datepicker table tr td.today.disabled:hover.active { + background-color: #fbf069 \9; +} +.datepicker table tr td.today:hover:hover { + color: #000; +} +.datepicker table tr td.today.active:hover { + color: #fff; +} +.datepicker table tr td.range, +.datepicker table tr td.range:hover, +.datepicker table tr td.range.disabled, +.datepicker table tr td.range.disabled:hover { + background: #eee; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.datepicker table tr td.range.today, +.datepicker table tr td.range.today:hover, +.datepicker table tr td.range.today.disabled, +.datepicker table tr td.range.today.disabled:hover { + background-color: #f3d17a; + background-image: -moz-linear-gradient(to bottom, #f3c17a, #f3e97a); + background-image: -ms-linear-gradient(to bottom, #f3c17a, #f3e97a); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f3c17a), to(#f3e97a)); + background-image: -webkit-linear-gradient(to bottom, #f3c17a, #f3e97a); + background-image: -o-linear-gradient(to bottom, #f3c17a, #f3e97a); + background-image: linear-gradient(to bottom, #f3c17a, #f3e97a); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f3c17a', endColorstr='#f3e97a', GradientType=0); + border-color: #f3e97a #f3e97a #edde34; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} +.datepicker table tr td.range.today:hover, +.datepicker table tr td.range.today:hover:hover, +.datepicker table tr td.range.today.disabled:hover, +.datepicker table tr td.range.today.disabled:hover:hover, +.datepicker table tr td.range.today:active, +.datepicker table tr td.range.today:hover:active, +.datepicker table tr td.range.today.disabled:active, +.datepicker table tr td.range.today.disabled:hover:active, +.datepicker table tr td.range.today.active, +.datepicker table tr td.range.today:hover.active, +.datepicker table tr td.range.today.disabled.active, +.datepicker table tr td.range.today.disabled:hover.active, +.datepicker table tr td.range.today.disabled, +.datepicker table tr td.range.today:hover.disabled, +.datepicker table tr td.range.today.disabled.disabled, +.datepicker table tr td.range.today.disabled:hover.disabled, +.datepicker table tr td.range.today[disabled], +.datepicker table tr td.range.today:hover[disabled], +.datepicker table tr td.range.today.disabled[disabled], +.datepicker table tr td.range.today.disabled:hover[disabled] { + background-color: #f3e97a; +} +.datepicker table tr td.range.today:active, +.datepicker table tr td.range.today:hover:active, +.datepicker table tr td.range.today.disabled:active, +.datepicker table tr td.range.today.disabled:hover:active, +.datepicker table tr td.range.today.active, +.datepicker table tr td.range.today:hover.active, +.datepicker table tr td.range.today.disabled.active, +.datepicker table tr td.range.today.disabled:hover.active { + background-color: #efe24b \9; +} +.datepicker table tr td.selected, +.datepicker table tr td.selected:hover, +.datepicker table tr td.selected.disabled, +.datepicker table tr td.selected.disabled:hover { + background-color: #9e9e9e; + background-image: -moz-linear-gradient(to bottom, #b3b3b3, #808080); + background-image: -ms-linear-gradient(to bottom, #b3b3b3, #808080); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#b3b3b3), to(#808080)); + background-image: -webkit-linear-gradient(to bottom, #b3b3b3, #808080); + background-image: -o-linear-gradient(to bottom, #b3b3b3, #808080); + background-image: linear-gradient(to bottom, #b3b3b3, #808080); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#b3b3b3', endColorstr='#808080', GradientType=0); + border-color: #808080 #808080 #595959; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); + color: #fff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} +.datepicker table tr td.selected:hover, +.datepicker table tr td.selected:hover:hover, +.datepicker table tr td.selected.disabled:hover, +.datepicker table tr td.selected.disabled:hover:hover, +.datepicker table tr td.selected:active, +.datepicker table tr td.selected:hover:active, +.datepicker table tr td.selected.disabled:active, +.datepicker table tr td.selected.disabled:hover:active, +.datepicker table tr td.selected.active, +.datepicker table tr td.selected:hover.active, +.datepicker table tr td.selected.disabled.active, +.datepicker table tr td.selected.disabled:hover.active, +.datepicker table tr td.selected.disabled, +.datepicker table tr td.selected:hover.disabled, +.datepicker table tr td.selected.disabled.disabled, +.datepicker table tr td.selected.disabled:hover.disabled, +.datepicker table tr td.selected[disabled], +.datepicker table tr td.selected:hover[disabled], +.datepicker table tr td.selected.disabled[disabled], +.datepicker table tr td.selected.disabled:hover[disabled] { + background-color: #808080; +} +.datepicker table tr td.selected:active, +.datepicker table tr td.selected:hover:active, +.datepicker table tr td.selected.disabled:active, +.datepicker table tr td.selected.disabled:hover:active, +.datepicker table tr td.selected.active, +.datepicker table tr td.selected:hover.active, +.datepicker table tr td.selected.disabled.active, +.datepicker table tr td.selected.disabled:hover.active { + background-color: #666666 \9; +} +.datepicker table tr td.active, +.datepicker table tr td.active:hover, +.datepicker table tr td.active.disabled, +.datepicker table tr td.active.disabled:hover { + background-color: #006dcc; + background-image: -moz-linear-gradient(to bottom, #08c, #0044cc); + background-image: -ms-linear-gradient(to bottom, #08c, #0044cc); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#0044cc)); + background-image: -webkit-linear-gradient(to bottom, #08c, #0044cc); + background-image: -o-linear-gradient(to bottom, #08c, #0044cc); + background-image: linear-gradient(to bottom, #08c, #0044cc); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#08c', endColorstr='#0044cc', GradientType=0); + border-color: #0044cc #0044cc #002a80; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); + color: #fff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} +.datepicker table tr td.active:hover, +.datepicker table tr td.active:hover:hover, +.datepicker table tr td.active.disabled:hover, +.datepicker table tr td.active.disabled:hover:hover, +.datepicker table tr td.active:active, +.datepicker table tr td.active:hover:active, +.datepicker table tr td.active.disabled:active, +.datepicker table tr td.active.disabled:hover:active, +.datepicker table tr td.active.active, +.datepicker table tr td.active:hover.active, +.datepicker table tr td.active.disabled.active, +.datepicker table tr td.active.disabled:hover.active, +.datepicker table tr td.active.disabled, +.datepicker table tr td.active:hover.disabled, +.datepicker table tr td.active.disabled.disabled, +.datepicker table tr td.active.disabled:hover.disabled, +.datepicker table tr td.active[disabled], +.datepicker table tr td.active:hover[disabled], +.datepicker table tr td.active.disabled[disabled], +.datepicker table tr td.active.disabled:hover[disabled] { + background-color: #0044cc; +} +.datepicker table tr td.active:active, +.datepicker table tr td.active:hover:active, +.datepicker table tr td.active.disabled:active, +.datepicker table tr td.active.disabled:hover:active, +.datepicker table tr td.active.active, +.datepicker table tr td.active:hover.active, +.datepicker table tr td.active.disabled.active, +.datepicker table tr td.active.disabled:hover.active { + background-color: #003399 \9; +} +.datepicker table tr td span { + display: block; + width: 23%; + height: 54px; + line-height: 54px; + float: left; + margin: 1%; + cursor: pointer; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.datepicker table tr td span:hover, +.datepicker table tr td span.focused { + background: #eee; +} +.datepicker table tr td span.disabled, +.datepicker table tr td span.disabled:hover { + background: none; + color: #999; + cursor: default; +} +.datepicker table tr td span.active, +.datepicker table tr td span.active:hover, +.datepicker table tr td span.active.disabled, +.datepicker table tr td span.active.disabled:hover { + background-color: #006dcc; + background-image: -moz-linear-gradient(to bottom, #08c, #0044cc); + background-image: -ms-linear-gradient(to bottom, #08c, #0044cc); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#0044cc)); + background-image: -webkit-linear-gradient(to bottom, #08c, #0044cc); + background-image: -o-linear-gradient(to bottom, #08c, #0044cc); + background-image: linear-gradient(to bottom, #08c, #0044cc); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#08c', endColorstr='#0044cc', GradientType=0); + border-color: #0044cc #0044cc #002a80; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); + color: #fff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} +.datepicker table tr td span.active:hover, +.datepicker table tr td span.active:hover:hover, +.datepicker table tr td span.active.disabled:hover, +.datepicker table tr td span.active.disabled:hover:hover, +.datepicker table tr td span.active:active, +.datepicker table tr td span.active:hover:active, +.datepicker table tr td span.active.disabled:active, +.datepicker table tr td span.active.disabled:hover:active, +.datepicker table tr td span.active.active, +.datepicker table tr td span.active:hover.active, +.datepicker table tr td span.active.disabled.active, +.datepicker table tr td span.active.disabled:hover.active, +.datepicker table tr td span.active.disabled, +.datepicker table tr td span.active:hover.disabled, +.datepicker table tr td span.active.disabled.disabled, +.datepicker table tr td span.active.disabled:hover.disabled, +.datepicker table tr td span.active[disabled], +.datepicker table tr td span.active:hover[disabled], +.datepicker table tr td span.active.disabled[disabled], +.datepicker table tr td span.active.disabled:hover[disabled] { + background-color: #0044cc; +} +.datepicker table tr td span.active:active, +.datepicker table tr td span.active:hover:active, +.datepicker table tr td span.active.disabled:active, +.datepicker table tr td span.active.disabled:hover:active, +.datepicker table tr td span.active.active, +.datepicker table tr td span.active:hover.active, +.datepicker table tr td span.active.disabled.active, +.datepicker table tr td span.active.disabled:hover.active { + background-color: #003399 \9; +} +.datepicker table tr td span.old, +.datepicker table tr td span.new { + color: #999; +} +.datepicker .datepicker-switch { + width: 145px; +} +.datepicker .datepicker-switch, +.datepicker .prev, +.datepicker .next, +.datepicker tfoot tr th { + cursor: pointer; +} +.datepicker .datepicker-switch:hover, +.datepicker .prev:hover, +.datepicker .next:hover, +.datepicker tfoot tr th:hover { + background: #eee; +} +.datepicker .cw { + font-size: 10px; + width: 12px; + padding: 0 2px 0 5px; + vertical-align: middle; +} +.input-append.date .add-on, +.input-prepend.date .add-on { + cursor: pointer; +} +.input-append.date .add-on i, +.input-prepend.date .add-on i { + margin-top: 3px; +} +.input-daterange input { + text-align: center; +} +.input-daterange input:first-child { + -webkit-border-radius: 3px 0 0 3px; + -moz-border-radius: 3px 0 0 3px; + border-radius: 3px 0 0 3px; +} +.input-daterange input:last-child { + -webkit-border-radius: 0 3px 3px 0; + -moz-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; +} +.input-daterange .add-on { + display: inline-block; + width: auto; + min-width: 16px; + height: 20px; + padding: 4px 5px; + font-weight: normal; + line-height: 20px; + text-align: center; + text-shadow: 0 1px 0 #fff; + vertical-align: middle; + background-color: #eee; + border: 1px solid #ccc; + margin-left: -5px; + margin-right: -5px; +} +.datepicker.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + float: left; + display: none; + min-width: 160px; + list-style: none; + background-color: #fff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; + *border-right-width: 2px; + *border-bottom-width: 2px; + color: #333333; + font-size: 13px; + line-height: 20px; +} +.datepicker.dropdown-menu th, +.datepicker.datepicker-inline th, +.datepicker.dropdown-menu td, +.datepicker.datepicker-inline td { + padding: 4px 5px; +} +/*# sourceMappingURL=bootstrap-datepicker.standalone.css.map */ \ No newline at end of file diff --git a/oldwebsite/assets/css/vendor/bootstrap.min.css b/oldwebsite/assets/css/vendor/bootstrap.min.css new file mode 100644 index 0000000..ed3905e --- /dev/null +++ b/oldwebsite/assets/css/vendor/bootstrap.min.css @@ -0,0 +1,6 @@ +/*! + * Bootstrap v3.3.7 (http://getbootstrap.com) + * Copyright 2011-2016 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control::-ms-expand{background-color:transparent;border:0}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px\9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary:hover{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{padding-right:15px;padding-left:15px;border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;filter:alpha(opacity=0);opacity:0;line-break:auto}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);line-break:auto}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);background-color:rgba(0,0,0,0);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}} +/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/oldwebsite/assets/css/vendor/font-awesome.min.css b/oldwebsite/assets/css/vendor/font-awesome.min.css new file mode 100644 index 0000000..4d70f96 --- /dev/null +++ b/oldwebsite/assets/css/vendor/font-awesome.min.css @@ -0,0 +1,4 @@ +/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:'FontAwesome';src:url('../../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.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} diff --git a/oldwebsite/assets/css/vendor/fonts/flexslider-icon.eot b/oldwebsite/assets/css/vendor/fonts/flexslider-icon.eot new file mode 100644 index 0000000..97c4196 Binary files /dev/null and b/oldwebsite/assets/css/vendor/fonts/flexslider-icon.eot differ diff --git a/oldwebsite/assets/css/vendor/fonts/flexslider-icon.svg b/oldwebsite/assets/css/vendor/fonts/flexslider-icon.svg new file mode 100644 index 0000000..89fd1ab --- /dev/null +++ b/oldwebsite/assets/css/vendor/fonts/flexslider-icon.svg @@ -0,0 +1,19 @@ + + + + +This is a custom SVG font generated by IcoMoon. + + + + + + + + + + + + + + \ No newline at end of file diff --git a/oldwebsite/assets/css/vendor/fonts/flexslider-icon.ttf b/oldwebsite/assets/css/vendor/fonts/flexslider-icon.ttf new file mode 100644 index 0000000..0543298 Binary files /dev/null and b/oldwebsite/assets/css/vendor/fonts/flexslider-icon.ttf differ diff --git a/oldwebsite/assets/css/vendor/fonts/flexslider-icon.woff b/oldwebsite/assets/css/vendor/fonts/flexslider-icon.woff new file mode 100644 index 0000000..10c4eeb Binary files /dev/null and b/oldwebsite/assets/css/vendor/fonts/flexslider-icon.woff differ diff --git a/oldwebsite/assets/css/vendor/fonts/revicons/index.php b/oldwebsite/assets/css/vendor/fonts/revicons/index.php new file mode 100644 index 0000000..e69de29 diff --git a/oldwebsite/assets/css/vendor/fonts/revicons/revicons.eot b/oldwebsite/assets/css/vendor/fonts/revicons/revicons.eot new file mode 100644 index 0000000..955dc3f Binary files /dev/null and b/oldwebsite/assets/css/vendor/fonts/revicons/revicons.eot differ diff --git a/oldwebsite/assets/css/vendor/fonts/revicons/revicons.svg b/oldwebsite/assets/css/vendor/fonts/revicons/revicons.svg new file mode 100644 index 0000000..1b0832e --- /dev/null +++ b/oldwebsite/assets/css/vendor/fonts/revicons/revicons.svg @@ -0,0 +1,54 @@ + + + +Copyright (C) 2013 by original authors @ fontello.com + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/oldwebsite/assets/css/vendor/fonts/revicons/revicons.ttf b/oldwebsite/assets/css/vendor/fonts/revicons/revicons.ttf new file mode 100644 index 0000000..4e8df98 Binary files /dev/null and b/oldwebsite/assets/css/vendor/fonts/revicons/revicons.ttf differ diff --git a/oldwebsite/assets/css/vendor/fonts/revicons/revicons.woff b/oldwebsite/assets/css/vendor/fonts/revicons/revicons.woff new file mode 100644 index 0000000..6d3ea4d Binary files /dev/null and b/oldwebsite/assets/css/vendor/fonts/revicons/revicons.woff differ diff --git a/oldwebsite/assets/css/vendor/jquery.bxslider.css b/oldwebsite/assets/css/vendor/jquery.bxslider.css new file mode 100644 index 0000000..e5fa4d0 --- /dev/null +++ b/oldwebsite/assets/css/vendor/jquery.bxslider.css @@ -0,0 +1,204 @@ +/** + * BxSlider v4.1.2 - Fully loaded, responsive content slider + * http://bxslider.com + * + * Written by: Steven Wanderski, 2014 + * http://stevenwanderski.com + * (while drinking Belgian ales and listening to jazz) + * + * CEO and founder of bxCreative, LTD + * http://bxcreative.com + */ + + +/** RESET AND LAYOUT +===================================*/ + +.bx-wrapper { + position: relative; + margin: 0 auto 60px; + padding: 0; + *zoom: 1; +} + +.bx-wrapper img { + max-width: 100%; + display: block; +} + +/** THEME +===================================*/ + +.bx-wrapper .bx-viewport { + -moz-box-shadow: 0 0 5px #ccc; + -webkit-box-shadow: 0 0 5px #ccc; + box-shadow: 0 0 5px #ccc; + border: 5px solid #fff; + left: -5px; + background: #fff; + + /*fix other elements on the page moving (on Chrome)*/ + -webkit-transform: translatez(0); + -moz-transform: translatez(0); + -ms-transform: translatez(0); + -o-transform: translatez(0); + transform: translatez(0); +} + +.bx-wrapper .bx-pager, +.bx-wrapper .bx-controls-auto { + position: absolute; + bottom: -30px; + width: 100%; +} + +/* LOADER */ + +.bx-wrapper .bx-loading { + min-height: 50px; + background: url(images/bx_loader.gif) center center no-repeat #fff; + height: 100%; + width: 100%; + position: absolute; + top: 0; + left: 0; + z-index: 2000; +} + +/* PAGER */ + +.bx-wrapper .bx-pager { + text-align: center; + font-size: .85em; + font-family: Arial; + font-weight: bold; + color: #666; + padding-top: 20px; +} + +.bx-wrapper .bx-pager .bx-pager-item, +.bx-wrapper .bx-controls-auto .bx-controls-auto-item { + display: inline-block; + *zoom: 1; + *display: inline; +} + +.bx-wrapper .bx-pager.bx-default-pager a { + background: #666; + text-indent: -9999px; + display: block; + width: 10px; + height: 10px; + margin: 0 5px; + outline: 0; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + border-radius: 5px; +} + +.bx-wrapper .bx-pager.bx-default-pager a:hover, +.bx-wrapper .bx-pager.bx-default-pager a.active { + background: #000; +} + +/* DIRECTION CONTROLS (NEXT / PREV) */ + +.bx-wrapper .bx-prev { + left: 10px; + background: url(images/controls.png) no-repeat 0 -32px; +} + +.bx-wrapper .bx-next { + right: 10px; + background: url(images/controls.png) no-repeat -43px -32px; +} + +.bx-wrapper .bx-prev:hover { + background-position: 0 0; +} + +.bx-wrapper .bx-next:hover { + background-position: -43px 0; +} + +.bx-wrapper .bx-controls-direction a { + position: absolute; + top: 50%; + margin-top: -16px; + outline: 0; + width: 32px; + height: 32px; + text-indent: -9999px; + z-index: 9999; +} + +.bx-wrapper .bx-controls-direction a.disabled { + display: none; +} + +/* AUTO CONTROLS (START / STOP) */ + +.bx-wrapper .bx-controls-auto { + text-align: center; +} + +.bx-wrapper .bx-controls-auto .bx-start { + display: block; + text-indent: -9999px; + width: 10px; + height: 11px; + outline: 0; + background: url(images/controls.png) -86px -11px no-repeat; + margin: 0 3px; +} + +.bx-wrapper .bx-controls-auto .bx-start:hover, +.bx-wrapper .bx-controls-auto .bx-start.active { + background-position: -86px 0; +} + +.bx-wrapper .bx-controls-auto .bx-stop { + display: block; + text-indent: -9999px; + width: 9px; + height: 11px; + outline: 0; + background: url(images/controls.png) -86px -44px no-repeat; + margin: 0 3px; +} + +.bx-wrapper .bx-controls-auto .bx-stop:hover, +.bx-wrapper .bx-controls-auto .bx-stop.active { + background-position: -86px -33px; +} + +/* PAGER WITH AUTO-CONTROLS HYBRID LAYOUT */ + +.bx-wrapper .bx-controls.bx-has-controls-auto.bx-has-pager .bx-pager { + text-align: left; + width: 80%; +} + +.bx-wrapper .bx-controls.bx-has-controls-auto.bx-has-pager .bx-controls-auto { + right: 0; + width: 35px; +} + +/* IMAGE CAPTIONS */ + +.bx-wrapper .bx-caption { + position: absolute; + bottom: 0; + left: 0; + background: #666\9; + background: rgba(80, 80, 80, 0.75); + width: 100%; +} + +.bx-wrapper .bx-caption span { + color: #fff; + font-family: Arial; + display: block; + font-size: .85em; + padding: 10px; +} diff --git a/oldwebsite/assets/css/vendor/magnific-popup.css b/oldwebsite/assets/css/vendor/magnific-popup.css new file mode 100644 index 0000000..8561e18 --- /dev/null +++ b/oldwebsite/assets/css/vendor/magnific-popup.css @@ -0,0 +1,351 @@ +/* Magnific Popup CSS */ +.mfp-bg { + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 1042; + overflow: hidden; + position: fixed; + background: #0b0b0b; + opacity: 0.8; } + +.mfp-wrap { + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 1043; + position: fixed; + outline: none !important; + -webkit-backface-visibility: hidden; } + +.mfp-container { + text-align: center; + position: absolute; + width: 100%; + height: 100%; + left: 0; + top: 0; + padding: 0 8px; + box-sizing: border-box; } + +.mfp-container:before { + content: ''; + display: inline-block; + height: 100%; + vertical-align: middle; } + +.mfp-align-top .mfp-container:before { + display: none; } + +.mfp-content { + position: relative; + display: inline-block; + vertical-align: middle; + margin: 0 auto; + text-align: left; + z-index: 1045; } + +.mfp-inline-holder .mfp-content, +.mfp-ajax-holder .mfp-content { + width: 100%; + cursor: auto; } + +.mfp-ajax-cur { + cursor: progress; } + +.mfp-zoom-out-cur, .mfp-zoom-out-cur .mfp-image-holder .mfp-close { + cursor: -moz-zoom-out; + cursor: -webkit-zoom-out; + cursor: zoom-out; } + +.mfp-zoom { + cursor: pointer; + cursor: -webkit-zoom-in; + cursor: -moz-zoom-in; + cursor: zoom-in; } + +.mfp-auto-cursor .mfp-content { + cursor: auto; } + +.mfp-close, +.mfp-arrow, +.mfp-preloader, +.mfp-counter { + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; } + +.mfp-loading.mfp-figure { + display: none; } + +.mfp-hide { + display: none !important; } + +.mfp-preloader { + color: #CCC; + position: absolute; + top: 50%; + width: auto; + text-align: center; + margin-top: -0.8em; + left: 8px; + right: 8px; + z-index: 1044; } + .mfp-preloader a { + color: #CCC; } + .mfp-preloader a:hover { + color: #FFF; } + +.mfp-s-ready .mfp-preloader { + display: none; } + +.mfp-s-error .mfp-content { + display: none; } + +button.mfp-close, +button.mfp-arrow { + overflow: visible; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; + display: block; + outline: none; + padding: 0; + z-index: 1046; + box-shadow: none; + touch-action: manipulation; } + +button::-moz-focus-inner { + padding: 0; + border: 0; } + +.mfp-close { + width: 44px; + height: 44px; + line-height: 44px; + position: absolute; + right: 0; + top: 0; + text-decoration: none; + text-align: center; + opacity: 0.65; + padding: 0 0 18px 10px; + color: #FFF; + font-style: normal; + font-size: 28px; + font-family: Arial, Baskerville, monospace; } + .mfp-close:hover, + .mfp-close:focus { + opacity: 1; } + .mfp-close:active { + top: 1px; } + +.mfp-close-btn-in .mfp-close { + color: #333; } + +.mfp-image-holder .mfp-close, +.mfp-iframe-holder .mfp-close { + color: #FFF; + right: -6px; + text-align: right; + padding-right: 6px; + width: 100%; } + +.mfp-counter { + position: absolute; + top: 0; + right: 0; + color: #CCC; + font-size: 12px; + line-height: 18px; + white-space: nowrap; } + +.mfp-arrow { + position: absolute; + opacity: 0.65; + margin: 0; + top: 50%; + margin-top: -55px; + padding: 0; + width: 90px; + height: 110px; + -webkit-tap-highlight-color: transparent; } + .mfp-arrow:active { + margin-top: -54px; } + .mfp-arrow:hover, + .mfp-arrow:focus { + opacity: 1; } + .mfp-arrow:before, + .mfp-arrow:after { + content: ''; + display: block; + width: 0; + height: 0; + position: absolute; + left: 0; + top: 0; + margin-top: 35px; + margin-left: 35px; + border: medium inset transparent; } + .mfp-arrow:after { + border-top-width: 13px; + border-bottom-width: 13px; + top: 8px; } + .mfp-arrow:before { + border-top-width: 21px; + border-bottom-width: 21px; + opacity: 0.7; } + +.mfp-arrow-left { + left: 0; } + .mfp-arrow-left:after { + border-right: 17px solid #FFF; + margin-left: 31px; } + .mfp-arrow-left:before { + margin-left: 25px; + border-right: 27px solid #3F3F3F; } + +.mfp-arrow-right { + right: 0; } + .mfp-arrow-right:after { + border-left: 17px solid #FFF; + margin-left: 39px; } + .mfp-arrow-right:before { + border-left: 27px solid #3F3F3F; } + +.mfp-iframe-holder { + padding-top: 40px; + padding-bottom: 40px; } + .mfp-iframe-holder .mfp-content { + line-height: 0; + width: 100%; + max-width: 900px; } + .mfp-iframe-holder .mfp-close { + top: -40px; } + +.mfp-iframe-scaler { + width: 100%; + height: 0; + overflow: hidden; + padding-top: 56.25%; } + .mfp-iframe-scaler iframe { + position: absolute; + display: block; + top: 0; + left: 0; + width: 100%; + height: 100%; + box-shadow: 0 0 8px rgba(0, 0, 0, 0.6); + background: #000; } + +/* Main image in popup */ +img.mfp-img { + width: auto; + max-width: 100%; + height: auto; + display: block; + line-height: 0; + box-sizing: border-box; + padding: 40px 0 40px; + margin: 0 auto; } + +/* The shadow behind the image */ +.mfp-figure { + line-height: 0; } + .mfp-figure:after { + content: ''; + position: absolute; + left: 0; + top: 40px; + bottom: 40px; + display: block; + right: 0; + width: auto; + height: auto; + z-index: -1; + box-shadow: 0 0 8px rgba(0, 0, 0, 0.6); + background: #444; } + .mfp-figure small { + color: #BDBDBD; + display: block; + font-size: 12px; + line-height: 14px; } + .mfp-figure figure { + margin: 0; } + +.mfp-bottom-bar { + margin-top: -36px; + position: absolute; + top: 100%; + left: 0; + width: 100%; + cursor: auto; } + +.mfp-title { + text-align: left; + line-height: 18px; + color: #F3F3F3; + word-wrap: break-word; + padding-right: 36px; } + +.mfp-image-holder .mfp-content { + max-width: 100%; } + +.mfp-gallery .mfp-image-holder .mfp-figure { + cursor: pointer; } + +@media screen and (max-width: 800px) and (orientation: landscape), screen and (max-height: 300px) { + /** + * Remove all paddings around the image on small screen + */ + .mfp-img-mobile .mfp-image-holder { + padding-left: 0; + padding-right: 0; } + .mfp-img-mobile img.mfp-img { + padding: 0; } + .mfp-img-mobile .mfp-figure:after { + top: 0; + bottom: 0; } + .mfp-img-mobile .mfp-figure small { + display: inline; + margin-left: 5px; } + .mfp-img-mobile .mfp-bottom-bar { + background: rgba(0, 0, 0, 0.6); + bottom: 0; + margin: 0; + top: auto; + padding: 3px 5px; + position: fixed; + box-sizing: border-box; } + .mfp-img-mobile .mfp-bottom-bar:empty { + padding: 0; } + .mfp-img-mobile .mfp-counter { + right: 5px; + top: 3px; } + .mfp-img-mobile .mfp-close { + top: 0; + right: 0; + width: 35px; + height: 35px; + line-height: 35px; + background: rgba(0, 0, 0, 0.6); + position: fixed; + text-align: center; + padding: 0; } } + +@media all and (max-width: 900px) { + .mfp-arrow { + -webkit-transform: scale(0.75); + transform: scale(0.75); } + .mfp-arrow-left { + -webkit-transform-origin: 0; + transform-origin: 0; } + .mfp-arrow-right { + -webkit-transform-origin: 100%; + transform-origin: 100%; } + .mfp-container { + padding-left: 6px; + padding-right: 6px; } } diff --git a/oldwebsite/assets/css/vendor/owl.carousel.css b/oldwebsite/assets/css/vendor/owl.carousel.css new file mode 100644 index 0000000..4e3c17c --- /dev/null +++ b/oldwebsite/assets/css/vendor/owl.carousel.css @@ -0,0 +1,71 @@ +/* + * Core Owl Carousel CSS File + * v1.3.3 + */ + +/* clearfix */ +.owl-carousel .owl-wrapper:after { + content: "."; + display: block; + clear: both; + visibility: hidden; + line-height: 0; + height: 0; +} +/* display none until init */ +.owl-carousel{ + display: none; + position: relative; + width: 100%; + -ms-touch-action: pan-y; +} +.owl-carousel .owl-wrapper{ + display: none; + position: relative; + -webkit-transform: translate3d(0px, 0px, 0px); +} +.owl-carousel .owl-wrapper-outer{ + overflow: hidden; + position: relative; + width: 100%; +} +.owl-carousel .owl-wrapper-outer.autoHeight{ + -webkit-transition: height 500ms ease-in-out; + -moz-transition: height 500ms ease-in-out; + -ms-transition: height 500ms ease-in-out; + -o-transition: height 500ms ease-in-out; + transition: height 500ms ease-in-out; +} + +.owl-carousel .owl-item{ + float: left; +} +.owl-controls .owl-page, +.owl-controls .owl-buttons div{ + cursor: pointer; +} +.owl-controls { + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +/* mouse grab icon */ +.grabbing { + cursor:url(grabbing.png) 8 8, move; +} + +/* fix */ +.owl-carousel .owl-wrapper, +.owl-carousel .owl-item{ + -webkit-backface-visibility: hidden; + -moz-backface-visibility: hidden; + -ms-backface-visibility: hidden; + -webkit-transform: translate3d(0,0,0); + -moz-transform: translate3d(0,0,0); + -ms-transform: translate3d(0,0,0); +} + diff --git a/oldwebsite/assets/css/vendor/owl.theme.css b/oldwebsite/assets/css/vendor/owl.theme.css new file mode 100644 index 0000000..9772975 --- /dev/null +++ b/oldwebsite/assets/css/vendor/owl.theme.css @@ -0,0 +1,79 @@ +/* +* Owl Carousel Owl Demo Theme +* v1.3.3 +*/ + +.owl-theme .owl-controls{ + margin-top: 10px; + text-align: center; +} + +/* Styling Next and Prev buttons */ + +.owl-theme .owl-controls .owl-buttons div{ + color: #FFF; + display: inline-block; + zoom: 1; + *display: inline;/*IE7 life-saver */ + margin: 5px; + padding: 3px 10px; + font-size: 12px; + -webkit-border-radius: 30px; + -moz-border-radius: 30px; + border-radius: 30px; + background: #869791; + filter: Alpha(Opacity=50);/*IE7 fix*/ + opacity: 0.5; +} +/* Clickable class fix problem with hover on touch devices */ +/* Use it for non-touch hover action */ +.owl-theme .owl-controls.clickable .owl-buttons div:hover{ + filter: Alpha(Opacity=100);/*IE7 fix*/ + opacity: 1; + text-decoration: none; +} + +/* Styling Pagination*/ + +.owl-theme .owl-controls .owl-page{ + display: inline-block; + zoom: 1; + *display: inline;/*IE7 life-saver */ +} +.owl-theme .owl-controls .owl-page span{ + display: block; + width: 12px; + height: 12px; + margin: 5px 7px; + filter: Alpha(Opacity=50);/*IE7 fix*/ + opacity: 0.5; + -webkit-border-radius: 20px; + -moz-border-radius: 20px; + border-radius: 20px; + background: #869791; +} + +.owl-theme .owl-controls .owl-page.active span, +.owl-theme .owl-controls.clickable .owl-page:hover span{ + filter: Alpha(Opacity=100);/*IE7 fix*/ + opacity: 1; +} + +/* If PaginationNumbers is true */ + +.owl-theme .owl-controls .owl-page span.owl-numbers{ + height: auto; + width: auto; + color: #FFF; + padding: 2px 10px; + font-size: 12px; + -webkit-border-radius: 30px; + -moz-border-radius: 30px; + border-radius: 30px; +} + +/* preloading images */ +.owl-item.loading{ + min-height: 150px; + background: url(AjaxLoader.gif) no-repeat center center +} \ No newline at end of file diff --git a/oldwebsite/assets/css/vendor/rev_slider/navigation.css b/oldwebsite/assets/css/vendor/rev_slider/navigation.css new file mode 100644 index 0000000..8cb7146 --- /dev/null +++ b/oldwebsite/assets/css/vendor/rev_slider/navigation.css @@ -0,0 +1,2642 @@ +/*----------------------------------------------------------------------------- + +- Revolution Slider 5.0 Navigatin Skin Style - + + ARES SKIN + +author: ThemePunch +email: info@themepunch.com +website: http://www.themepunch.com +-----------------------------------------------------------------------------*/ +.ares.tparrows { + cursor:pointer; + background:#fff; + min-width:60px; + min-height:60px; + position:absolute; + display:block; + z-index:100; + border-radius:50%; +} +.ares.tparrows:hover { +} +.ares.tparrows:before { + font-family: "revicons"; + font-size:25px; + color:#aaa; + display:block; + line-height: 60px; + text-align: center; + -webkit-transition: color 0.3s; + -moz-transition: color 0.3s; + transition: color 0.3s; + z-index:2; + position:relative; +} +.ares.tparrows.tp-leftarrow:before { + content: "\e81f"; +} +.ares.tparrows.tp-rightarrow:before { + content: "\e81e"; +} +.ares.tparrows:hover:before { + color:#000; + } +.ares .tp-title-wrap { + position:absolute; + z-index:1; + display:inline-block; + background:#fff; + min-height:60px; + line-height:60px; + top:0px; + margin-left:30px; + border-radius:0px 30px 30px 0px; + overflow:hidden; + -webkit-transition: -webkit-transform 0.3s; + transition: transform 0.3s; + transform:scaleX(0); + -webkit-transform:scaleX(0); + transform-origin:0% 50%; + -webkit-transform-origin:0% 50%; +} + .ares.tp-rightarrow .tp-title-wrap { + right:0px; + margin-right:30px;margin-left:0px; + -webkit-transform-origin:100% 50%; +border-radius:30px 0px 0px 30px; + } +.ares.tparrows:hover .tp-title-wrap { + transform:scaleX(1) scaleY(1); + -webkit-transform:scaleX(1) scaleY(1); +} +.ares .tp-arr-titleholder { + position:relative; + -webkit-transition: -webkit-transform 0.3s; + transition: transform 0.3s; + transform:translateX(200px); + text-transform:uppercase; + color:#000; + font-weight:400; + font-size:14px; + line-height:60px; + white-space:nowrap; + padding:0px 20px; + margin-left:10px; + opacity:0; +} + +.ares.tp-rightarrow .tp-arr-titleholder { + transform:translateX(-200px); + margin-left:0px; margin-right:10px; + } + +.ares.tparrows:hover .tp-arr-titleholder { + transform:translateX(0px); + -webkit-transform:translateX(0px); + transition-delay: 0.1s; + opacity:1; +} + +/* BULLETS */ +.ares.tp-bullets { +} +.ares.tp-bullets:before { + content:" "; + position:absolute; + width:100%; + height:100%; + background:transparent; + padding:10px; + margin-left:-10px;margin-top:-10px; + box-sizing:content-box; +} +.ares .tp-bullet { + width:13px; + height:13px; + position:absolute; + background:#e5e5e5; + border-radius:50%; + cursor: pointer; + box-sizing:content-box; +} +.ares .tp-bullet:hover, +.ares .tp-bullet.selected { + background:#fff; +} +.ares .tp-bullet-title { + position:absolute; + color:#888; + font-size:12px; + padding:0px 10px; + font-weight:600; + right:27px; + top:-4px; + background:#fff; + background:rgba(255,255,255,0.75); + visibility:hidden; + transform:translateX(-20px); + -webkit-transform:translateX(-20px); + transition:transform 0.3s; + -webkit-transition:transform 0.3s; + line-height:20px; + white-space:nowrap; +} + +.ares .tp-bullet-title:after { + width: 0px; + height: 0px; + border-style: solid; + border-width: 10px 0 10px 10px; + border-color: transparent transparent transparent rgba(255,255,255,0.75); + content:" "; + position:absolute; + right:-10px; + top:0px; +} + +.ares .tp-bullet:hover .tp-bullet-title{ + visibility:visible; + transform:translateX(0px); + -webkit-transform:translateX(0px); +} + +.ares .tp-bullet.selected:hover .tp-bullet-title { + background:#fff; + } +.ares .tp-bullet.selected:hover .tp-bullet-title:after { + border-color:transparent transparent transparent #fff; +} +.ares.tp-bullets:hover .tp-bullet-title { + visibility:hidden; +} +.ares.tp-bullets:hover .tp-bullet:hover .tp-bullet-title { + visibility:visible; + } + +/* TABS */ +.ares .tp-tab { + opacity:1; + padding:10px; + box-sizing:border-box; + font-family: "Roboto", sans-serif; + border-bottom: 1px solid #e5e5e5; + } +.ares .tp-tab-image +{ + width:60px; + height:60px; max-height:100%; max-width:100%; + position:relative; + display:inline-block; + float:left; + +} +.ares .tp-tab-content +{ + background:rgba(0,0,0,0); + position:relative; + padding:15px 15px 15px 85px; + left:0px; + overflow:hidden; + margin-top:-15px; + box-sizing:border-box; + color:#333; + display: inline-block; + width:100%; + height:100%; + position:absolute; } +.ares .tp-tab-date + { + display:block; + color: #aaa; + font-weight:500; + font-size:12px; + margin-bottom:0px; + } +.ares .tp-tab-title +{ + display:block; + text-align:left; + color:#333; + font-size:14px; + font-weight:500; + text-transform:none; + line-height:17px; +} +.ares .tp-tab:hover, +.ares .tp-tab.selected { + background:#eee; +} + +.ares .tp-tab-mask { +} + +/* MEDIA QUERIES */ +@media only screen and (max-width: 960px) { + +} +@media only screen and (max-width: 768px) { + +} + +/*----------------------------------------------------------------------------- + +- Revolution Slider 5.0 Navigatin Skin Style - + + CUSTOM SKIN + +author: ThemePunch +email: info@themepunch.com +website: http://www.themepunch.com +-----------------------------------------------------------------------------*/ +/* ARROWS */ +.custom.tparrows { + cursor:pointer; + background:#000; + background:rgba(0,0,0,0.5); + width:40px; + height:40px; + position:absolute; + display:block; + z-index:100; +} +.custom.tparrows:hover { + background:#000; +} +.custom.tparrows:before { + font-family: "revicons"; + font-size:15px; + color:#fff; + display:block; + line-height: 40px; + text-align: center; +} +.custom.tparrows.tp-leftarrow:before { + content: "\e824"; +} +.custom.tparrows.tp-rightarrow:before { + content: "\e825"; +} + + + +/* BULLETS */ +.custom.tp-bullets { +} +.custom.tp-bullets:before { + content:" "; + position:absolute; + width:100%; + height:100%; + background:transparent; + padding:10px; + margin-left:-10px;margin-top:-10px; + box-sizing:content-box; +} +.custom .tp-bullet { + width:12px; + height:12px; + position:absolute; + background:#aaa; + background:rgba(125,125,125,0.5); + cursor: pointer; + box-sizing:content-box; +} +.custom .tp-bullet:hover, +.custom .tp-bullet.selected { + background:rgb(125,125,125); +} +.custom .tp-bullet-image { +} +.custom .tp-bullet-title { +} + + +/* THUMBS */ + + +/* TABS */ + + +/*----------------------------------------------------------------------------- + +- Revolution Slider 5.0 Navigatin Skin Style - + + DIONE SKIN + +author: ThemePunch +email: info@themepunch.com +website: http://www.themepunch.com +-----------------------------------------------------------------------------*/ +/* ARROWS */ +.dione.tparrows { + height:100%; + width:100px; + background:transparent; + background:rgba(0,0,0,0); + line-height:100%; + transition:all 0.3s; +-webkit-transition:all 0.3s; +} + +.dione.tparrows:hover { + background:rgba(0,0,0,0.45); + } +.dione .tp-arr-imgwrapper { + width:100px; + left:0px; + position:absolute; + height:100%; + top:0px; + overflow:hidden; + } +.dione.tp-rightarrow .tp-arr-imgwrapper { +left:auto; +right:0px; +} + +.dione .tp-arr-imgholder { +background-position:center center; +background-size:cover; +width:100px; +height:100%; +top:0px; +visibility:hidden; +transform:translateX(-50px); +-webkit-transform:translateX(-50px); +transition:all 0.3s; +-webkit-transition:all 0.3s; +opacity:0; +left:0px; +} + +.dione.tparrows.tp-rightarrow .tp-arr-imgholder { + right:0px; + left:auto; + transform:translateX(50px); + -webkit-transform:translateX(50px); +} + +.dione.tparrows:before { +position:absolute; +line-height:30px; +margin-left:-22px; +top:50%; +left:50%; +font-size:30px; +margin-top:-15px; +transition:all 0.3s; +-webkit-transition:all 0.3s; +} + +.dione.tparrows.tp-rightarrow:before { +margin-left:6px; +} + +.dione.tparrows:hover:before { + transform:translateX(-20px); +-webkit-transform:translateX(-20px); +opacity:0; +} + +.dione.tparrows.tp-rightarrow:hover:before { + transform:translateX(20px); +-webkit-transform:translateX(20px); +} + +.dione.tparrows:hover .tp-arr-imgholder { + transform:translateX(0px); +-webkit-transform:translateX(0px); +opacity:1; +visibility:visible; +} + + + +/* BULLETS */ +.dione .tp-bullet { + opacity:1; + width:50px; + height:50px; + padding:3px; + background:#000; + background-color:rgba(0,0,0,0.25); + margin:0px; + box-sizing:border-box; + transition:all 0.3s; + -webkit-transition:all 0.3s; + + } + +.dione .tp-bullet-image { + display:block; + box-sizing:border-box; + position:relative; + -webkit-box-shadow: inset 5px 5px 10px 0px rgba(0,0,0,0.25); + -moz-box-shadow: inset 5px 5px 10px 0px rgba(0,0,0,0.25); + box-shadow: inset 5px 5px 10px 0px rgba(0,0,0,0.25); + width:44px; + height:44px; + background-size:cover; + background-position:center center; + } +.dione .tp-bullet-title { + position:absolute; + bottom:65px; + display:inline-block; + left:50%; + background:#000; + background:rgba(0,0,0,0.75); + color:#fff; + padding:10px 30px; + border-radius:4px; + -webkit-border-radius:4px; + opacity:0; + transition:all 0.3s; + -webkit-transition:all 0.3s; + transform: translateZ(0.001px) translateX(-50%) translateY(14px); + transform-origin:50% 100%; + -webkit-transform: translateZ(0.001px) translateX(-50%) translateY(14px); + -webkit-transform-origin:50% 100%; + opacity:0; + white-space:nowrap; + } + +.dione .tp-bullet:hover .tp-bullet-title { + transform:rotateX(0deg) translateX(-50%); + -webkit-transform:rotateX(0deg) translateX(-50%); + opacity:1; +} + +.dione .tp-bullet.selected, +.dione .tp-bullet:hover { + + background: rgba(255,255,255,1); + background: -moz-linear-gradient(top, rgba(255,255,255,1) 0%, rgba(119,119,119,1) 100%); + background: -webkit-gradient(left top, left bottom, color-stop(0%, rgba(255,255,255,1)), color-stop(100%, rgba(119,119,119,1))); + background: -webkit-linear-gradient(top, rgba(255,255,255,1) 0%, rgba(119,119,119,1) 100%); + background: -o-linear-gradient(top, rgba(255,255,255,1) 0%, rgba(119,119,119,1) 100%); + background: -ms-linear-gradient(top, rgba(255,255,255,1) 0%, rgba(119,119,119,1) 100%); + background: linear-gradient(to bottom, rgba(255,255,255,1) 0%, rgba(119,119,119,1) 100%); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr="#ffffff", endColorstr="#777777", GradientType=0 ); + + } +.dione .tp-bullet-title:after { + content:" "; + position:absolute; + left:50%; + margin-left:-8px; + width: 0; + height: 0; + border-style: solid; + border-width: 8px 8px 0 8px; + border-color: rgba(0,0,0,0.75) transparent transparent transparent; + bottom:-8px; + } + + +/*----------------------------------------------------------------------------- + +- Revolution Slider 5.0 Navigatin Skin Style - + + ERINYEN SKIN + +author: ThemePunch +email: info@themepunch.com +website: http://www.themepunch.com +-----------------------------------------------------------------------------*/ +/* ARROWS */ +.erinyen.tparrows { + cursor:pointer; + background:#000; + background:rgba(0,0,0,0.5); + min-width:70px; + min-height:70px; + position:absolute; + display:block; + z-index:100; + border-radius:35px; +} + +.erinyen.tparrows:before { + font-family: "revicons"; + font-size:20px; + color:#fff; + display:block; + line-height: 70px; + text-align: center; + z-index:2; + position:relative; +} +.erinyen.tparrows.tp-leftarrow:before { + content: "\e824"; +} +.erinyen.tparrows.tp-rightarrow:before { + content: "\e825"; +} + +.erinyen .tp-title-wrap { + position:absolute; + z-index:1; + display:inline-block; + background:#000; + background:rgba(0,0,0,0.5); + min-height:70px; + line-height:70px; + top:0px; + margin-left:0px; + border-radius:35px; + overflow:hidden; + transition: opacity 0.3s; + -webkit-transition:opacity 0.3s; + -moz-transition:opacity 0.3s; + -webkit-transform: scale(0); + -moz-transform: scale(0); + transform: scale(0); + visibility:hidden; + opacity:0; +} + +.erinyen.tparrows:hover .tp-title-wrap{ + -webkit-transform: scale(1); + -moz-transform: scale(1); + transform: scale(1); + opacity:1; + visibility:visible; +} + + .erinyen.tp-rightarrow .tp-title-wrap { + right:0px; + margin-right:0px;margin-left:0px; + -webkit-transform-origin:100% 50%; + border-radius:35px; + padding-right:20px; + padding-left:10px; + } + + +.erinyen.tp-leftarrow .tp-title-wrap { + padding-left:20px; + padding-right:10px; +} + +.erinyen .tp-arr-titleholder { + letter-spacing: 3px; + position:relative; + -webkit-transition: -webkit-transform 0.3s; + transition: transform 0.3s; + transform:translateX(200px); + text-transform:uppercase; + color:#fff; + font-weight:600; + font-size:13px; + line-height:70px; + white-space:nowrap; + padding:0px 20px; + margin-left:11px; + opacity:0; +} + +.erinyen .tp-arr-imgholder { + width:100%; + height:100%; + position:absolute; + top:0px; + left:0px; + background-position:center center; + background-size:cover; + } + .erinyen .tp-arr-img-over { + width:100%; + height:100%; + position:absolute; + top:0px; + left:0px; + background:#000; + background:rgba(0,0,0,0.5); + } +.erinyen.tp-rightarrow .tp-arr-titleholder { + transform:translateX(-200px); + margin-left:0px; margin-right:11px; + } + +.erinyen.tparrows:hover .tp-arr-titleholder { + transform:translateX(0px); + -webkit-transform:translateX(0px); + transition-delay: 0.1s; + opacity:1; +} + +/* BULLETS */ +.erinyen.tp-bullets { +} +.erinyen.tp-bullets:before { + content:" "; + position:absolute; + width:100%; + height:100%; + background: #555555; /* old browsers */ + background: -moz-linear-gradient(top, #555555 0%, #222222 100%); /* ff3.6+ */ + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#555555), color-stop(100%,#222222)); /* chrome,safari4+ */ + background: -webkit-linear-gradient(top, #555555 0%,#222222 100%); /* chrome10+,safari5.1+ */ + background: -o-linear-gradient(top, #555555 0%,#222222 100%); /* opera 11.10+ */ + background: -ms-linear-gradient(top, #555555 0%,#222222 100%); /* ie10+ */ + background: linear-gradient(to bottom, #555555 0%,#222222 100%); /* w3c */ + filter: progid:dximagetransform.microsoft.gradient( startcolorstr="#555555", endcolorstr="#222222",gradienttype=0 ); /* ie6-9 */ + padding:10px 15px; + margin-left:-15px;margin-top:-10px; + box-sizing:content-box; + border-radius:10px; + box-shadow:0px 0px 2px 1px rgba(33,33,33,0.3); +} +.erinyen .tp-bullet { + width:13px; + height:13px; + position:absolute; + background:#111; + border-radius:50%; + cursor: pointer; + box-sizing:content-box; +} +.erinyen .tp-bullet:hover, +.erinyen .tp-bullet.selected { + background: #e5e5e5; /* old browsers */ +background: -moz-linear-gradient(top, #e5e5e5 0%, #999999 100%); /* ff3.6+ */ +background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#e5e5e5), color-stop(100%,#999999)); /* chrome,safari4+ */ +background: -webkit-linear-gradient(top, #e5e5e5 0%,#999999 100%); /* chrome10+,safari5.1+ */ +background: -o-linear-gradient(top, #e5e5e5 0%,#999999 100%); /* opera 11.10+ */ +background: -ms-linear-gradient(top, #e5e5e5 0%,#999999 100%); /* ie10+ */ +background: linear-gradient(to bottom, #e5e5e5 0%,#999999 100%); /* w3c */ +filter: progid:dximagetransform.microsoft.gradient( startcolorstr="#e5e5e5", endcolorstr="#999999",gradienttype=0 ); /* ie6-9 */ + border:1px solid #555; + width:12px;height:12px; +} +.erinyen .tp-bullet-image { +} +.erinyen .tp-bullet-title { +} + + +/* THUMBS */ +.erinyen .tp-thumb { +opacity:1 +} + +.erinyen .tp-thumb-over { + background:#000; + background:rgba(0,0,0,0.25); + width:100%; + height:100%; + position:absolute; + top:0px; + left:0px; + z-index:1; + -webkit-transition:all 0.3s; + transition:all 0.3s; +} + +.erinyen .tp-thumb-more:before { + font-family: "revicons"; + font-size:12px; + color:#aaa; + color:rgba(255,255,255,0.75); + display:block; + line-height: 12px; + text-align: left; + z-index:2; + position:absolute; + top:20px; + right:20px; + z-index:2; +} +.erinyen .tp-thumb-more:before { + content: "\e825"; +} + +.erinyen .tp-thumb-title { + font-family:"Raleway"; + letter-spacing:1px; + font-size:12px; + color:#fff; + display:block; + line-height: 15px; + text-align: left; + z-index:2; + position:absolute; + top:0px; + left:0px; + z-index:2; + padding:20px 35px 20px 20px; + width:100%; + height:100%; + box-sizing:border-box; + transition:all 0.3s; + -webkit-transition:all 0.3s; + font-weight:500; +} + +.erinyen .tp-thumb.selected .tp-thumb-more:before, +.erinyen .tp-thumb:hover .tp-thumb-more:before { + color:#aaa; + +} + +.erinyen .tp-thumb.selected .tp-thumb-over, +.erinyen .tp-thumb:hover .tp-thumb-over { + background:#fff; +} +.erinyen .tp-thumb.selected .tp-thumb-title, +.erinyen .tp-thumb:hover .tp-thumb-title { + color:#000; + +} + + +/* TABS */ +.erinyen .tp-tab-title { + color:#a8d8ee; + font-size:13px; + font-weight:700; + text-transform:uppercase; + font-family:"Roboto Slab" + margin-bottom:5px; +} + +.erinyen .tp-tab-desc { + font-size:18px; + font-weight:400; + color:#fff; + line-height:25px; + font-family:"Roboto Slab"; +} + + +/*----------------------------------------------------------------------------- + +- Revolution Slider 5.0 Navigatin Skin Style - + + GYGES SKIN + +author: ThemePunch +email: info@themepunch.com +website: http://www.themepunch.com +-----------------------------------------------------------------------------*/ +/* ARROWS */ + + +/* BULLETS */ +.gyges.tp-bullets { +} +.gyges.tp-bullets:before { + content:" "; + position:absolute; + width:100%; + height:100%; + background: #777777; /* Old browsers */ + background: -moz-linear-gradient(top, #777777 0%, #666666 100%); + background: -webkit-gradient(linear, left top, left bottom, + color-stop(0%,#777777), color-stop(100%,#666666)); + background: -webkit-linear-gradient(top, #777777 0%,#666666 100%); + background: -o-linear-gradient(top, #777777 0%,#666666 100%); + background: -ms-linear-gradient(top, #777777 0%,#666666 100%); + background: linear-gradient(to bottom, #777777 0%,#666666 100%); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr="#777777", + endColorstr="#666666",GradientType=0 ); + padding:10px; + margin-left:-10px;margin-top:-10px; + box-sizing:content-box; + border-radius:10px; +} +.gyges .tp-bullet { + width:12px; + height:12px; + position:absolute; + background:#333; + border:3px solid #444; + border-radius:50%; + cursor: pointer; + box-sizing:content-box; +} +.gyges .tp-bullet:hover, +.gyges .tp-bullet.selected { + background: #ffffff; /* Old browsers */ + background: -moz-linear-gradient(top, #ffffff 0%, #e1e1e1 100%); /* FF3.6+ */ + background: -webkit-gradient(linear, left top, left bottom, + color-stop(0%,#ffffff), color-stop(100%,#e1e1e1)); /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(top, #ffffff 0%,#e1e1e1 100%); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(top, #ffffff 0%,#e1e1e1 100%); /* Opera 11.10+ */ + background: -ms-linear-gradient(top, #ffffff 0%,#e1e1e1 100%); /* IE10+ */ + background: linear-gradient(to bottom, #ffffff 0%,#e1e1e1 100%); /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr="#ffffff", + endColorstr="#e1e1e1",GradientType=0 ); /* IE6-9 */ + +} +.gyges .tp-bullet-image { +} +.gyges .tp-bullet-title { +} + + +/* THUMBS */ +.gyges .tp-thumb { + opacity:1 + } +.gyges .tp-thumb-img-wrap { + padding:3px; + background:#000; + background-color:rgba(0,0,0,0.25); + display:inline-block; + + width:100%; + height:100%; + position:relative; + margin:0px; + box-sizing:border-box; + transition:all 0.3s; + -webkit-transition:all 0.3s; +} +.gyges .tp-thumb-image { + padding:3px; + display:block; + box-sizing:border-box; + position:relative; + -webkit-box-shadow: inset 5px 5px 10px 0px rgba(0,0,0,0.25); + -moz-box-shadow: inset 5px 5px 10px 0px rgba(0,0,0,0.25); + box-shadow: inset 5px 5px 10px 0px rgba(0,0,0,0.25); + } +.gyges .tp-thumb-title { + position:absolute; + bottom:100%; + display:inline-block; + left:50%; + background:rgba(255,255,255,0.8); + padding:10px 30px; + border-radius:4px; + -webkit-border-radius:4px; + margin-bottom:20px; + opacity:0; + transition:all 0.3s; + -webkit-transition:all 0.3s; + transform: translateZ(0.001px) translateX(-50%) translateY(14px); + transform-origin:50% 100%; + -webkit-transform: translateZ(0.001px) translateX(-50%) translateY(14px); + -webkit-transform-origin:50% 100%; + white-space:nowrap; + } +.gyges .tp-thumb:hover .tp-thumb-title { + transform:rotateX(0deg) translateX(-50%); + -webkit-transform:rotateX(0deg) translateX(-50%); + opacity:1; +} + +.gyges .tp-thumb:hover .tp-thumb-img-wrap, + .gyges .tp-thumb.selected .tp-thumb-img-wrap { + + background: rgba(255,255,255,1); + background: -moz-linear-gradient(top, rgba(255,255,255,1) 0%, rgba(119,119,119,1) 100%); + background: -webkit-gradient(left top, left bottom, color-stop(0%, rgba(255,255,255,1)), color-stop(100%, rgba(119,119,119,1))); + background: -webkit-linear-gradient(top, rgba(255,255,255,1) 0%, rgba(119,119,119,1) 100%); + background: -o-linear-gradient(top, rgba(255,255,255,1) 0%, rgba(119,119,119,1) 100%); + background: -ms-linear-gradient(top, rgba(255,255,255,1) 0%, rgba(119,119,119,1) 100%); + background: linear-gradient(to bottom, rgba(255,255,255,1) 0%, rgba(119,119,119,1) 100%); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr="#ffffff", endColorstr="#777777", GradientType=0 ); + } +.gyges .tp-thumb-title:after { + content:" "; + position:absolute; + left:50%; + margin-left:-8px; + width: 0; + height: 0; + border-style: solid; + border-width: 8px 8px 0 8px; + border-color: rgba(255,255,255,0.8) transparent transparent transparent; + bottom:-8px; + } + + +/* TABS */ +.gyges .tp-tab { + opacity:1; + padding:10px; + box-sizing:border-box; + font-family: "Roboto", sans-serif; + border-bottom: 1px solid rgba(255,255,255,0.15); + } +.gyges .tp-tab-image +{ + width:60px; + height:60px; max-height:100%; max-width:100%; + position:relative; + display:inline-block; + float:left; + +} +.gyges .tp-tab-content +{ + background:rgba(0,0,0,0); + position:relative; + padding:15px 15px 15px 85px; + left:0px; + overflow:hidden; + margin-top:-15px; + box-sizing:border-box; + color:#333; + display: inline-block; + width:100%; + height:100%; + position:absolute; } +.gyges .tp-tab-date + { + display:block; + color: rgba(255,255,255,0.25); + font-weight:500; + font-size:12px; + margin-bottom:0px; + } +.gyges .tp-tab-title +{ + display:block; + text-align:left; + color:#fff; + font-size:14px; + font-weight:500; + text-transform:none; + line-height:17px; +} +.gyges .tp-tab:hover, +.gyges .tp-tab.selected { + background:rgba(0,0,0,0.5); +} + +.gyges .tp-tab-mask { +} + +/* MEDIA QUERIES */ +@media only screen and (max-width: 960px) { + +} +@media only screen and (max-width: 768px) { + +} + +/*----------------------------------------------------------------------------- + +- Revolution Slider 5.0 Navigatin Skin Style - + + HADES SKIN + +author: ThemePunch +email: info@themepunch.com +website: http://www.themepunch.com +-----------------------------------------------------------------------------*/ +/* ARROWS */ +.hades.tparrows { + cursor:pointer; + background:#000; + background:rgba(0,0,0,0.15); + width:100px; + height:100px; + position:absolute; + display:block; + z-index:100; +} + +.hades.tparrows:before { + font-family: "revicons"; + font-size:30px; + color:#fff; + display:block; + line-height: 100px; + text-align: center; + transition: background 0.3s, color 0.3s; +} +.hades.tparrows.tp-leftarrow:before { + content: "\e824"; +} +.hades.tparrows.tp-rightarrow:before { + content: "\e825"; +} + +.hades.tparrows:hover:before { + color:#aaa; + background:#fff; + background:rgba(255,255,255,1); + } +.hades .tp-arr-allwrapper { + position:absolute; + left:100%; + top:0px; + background:#888; + width:100px;height:100px; + -webkit-transition: all 0.3s; + transition: all 0.3s; + -ms-filter: "progid:dximagetransform.microsoft.alpha(opacity=0)"; + filter: alpha(opacity=0); + -moz-opacity: 0.0; + -khtml-opacity: 0.0; + opacity: 0.0; + -webkit-transform: rotatey(-90deg); + transform: rotatey(-90deg); + -webkit-transform-origin: 0% 50%; + transform-origin: 0% 50%; +} +.hades.tp-rightarrow .tp-arr-allwrapper { + left:auto; + right:100%; + -webkit-transform-origin: 100% 50%; + transform-origin: 100% 50%; + -webkit-transform: rotatey(90deg); + transform: rotatey(90deg); +} + +.hades:hover .tp-arr-allwrapper { + -ms-filter: "progid:dximagetransform.microsoft.alpha(opacity=100)"; + filter: alpha(opacity=100); + -moz-opacity: 1; + -khtml-opacity: 1; + opacity: 1; + -webkit-transform: rotatey(0deg); + transform: rotatey(0deg); + + } + +.hades .tp-arr-iwrapper { +} +.hades .tp-arr-imgholder { + background-size:cover; + position:absolute; + top:0px;left:0px; + width:100%;height:100%; +} +.hades .tp-arr-titleholder { +} +.hades .tp-arr-subtitleholder { +} + + +/* BULLETS */ +.hades.tp-bullets { +} +.hades.tp-bullets:before { + content:" "; + position:absolute; + width:100%; + height:100%; + background:transparent; + padding:10px; + margin-left:-10px;margin-top:-10px; + box-sizing:content-box; +} +.hades .tp-bullet { + width:3px; + height:3px; + position:absolute; + background:#888; + cursor: pointer; + border:5px solid #fff; + box-sizing:content-box; + box-shadow:0px 0px 3px 1px rgba(0,0,0,0.2); + -webkit-perspective:400; + perspective:400; + -webkit-transform:translatez(0.01px); + transform:translatez(0.01px); +} +.hades .tp-bullet:hover, +.hades .tp-bullet.selected { + background:#555; + +} + +.hades .tp-bullet-image { + position:absolute;top:-80px; left:-60px;width:120px;height:60px; + background-position:center center; + background-size:cover; + visibility:hidden; + opacity:0; + transition:all 0.3s; + -webkit-transform-style:flat; + transform-style:flat; + perspective:600; + -webkit-perspective:600; + transform: rotatex(-90deg); + -webkit-transform: rotatex(-90deg); + box-shadow:0px 0px 3px 1px rgba(0,0,0,0.2); + transform-origin:50% 100%; + -webkit-transform-origin:50% 100%; + + +} +.hades .tp-bullet:hover .tp-bullet-image { + display:block; + opacity:1; + transform: rotatex(0deg); + -webkit-transform: rotatex(0deg); + visibility:visible; + } +.hades .tp-bullet-title { +} + + +/* THUMBS */ +.hades .tp-thumb { + opacity:1 + } +.hades .tp-thumb-img-wrap { + border-radius:50%; + padding:3px; + display:inline-block; +background:#000; + background-color:rgba(0,0,0,0.25); + width:100%; + height:100%; + position:relative; + margin:0px; + box-sizing:border-box; + transition:all 0.3s; + -webkit-transition:all 0.3s; +} +.hades .tp-thumb-image { + padding:3px; + border-radius:50%; + display:block; + box-sizing:border-box; + position:relative; + -webkit-box-shadow: inset 5px 5px 10px 0px rgba(0,0,0,0.25); + -moz-box-shadow: inset 5px 5px 10px 0px rgba(0,0,0,0.25); + box-shadow: inset 5px 5px 10px 0px rgba(0,0,0,0.25); + } + + +.hades .tp-thumb:hover .tp-thumb-img-wrap, +.hades .tp-thumb.selected .tp-thumb-img-wrap { + + background: rgba(255,255,255,1); + background: -moz-linear-gradient(top, rgba(255,255,255,1) 0%, rgba(119,119,119,1) 100%); + background: -webkit-gradient(left top, left bottom, color-stop(0%, rgba(255,255,255,1)), color-stop(100%, rgba(119,119,119,1))); + background: -webkit-linear-gradient(top, rgba(255,255,255,1) 0%, rgba(119,119,119,1) 100%); + background: -o-linear-gradient(top, rgba(255,255,255,1) 0%, rgba(119,119,119,1) 100%); + background: -ms-linear-gradient(top, rgba(255,255,255,1) 0%, rgba(119,119,119,1) 100%); + background: linear-gradient(to bottom, rgba(255,255,255,1) 0%, rgba(119,119,119,1) 100%); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr="#ffffff", endColorstr="#777777", GradientType=0 ); + + } +.hades .tp-thumb-title:after { + content:" "; + position:absolute; + left:50%; + margin-left:-8px; + width: 0; + height: 0; + border-style: solid; + border-width: 8px 8px 0 8px; + border-color: rgba(0,0,0,0.75) transparent transparent transparent; + bottom:-8px; + } + + +/* TABS */ +.hades .tp-tab { + opacity:1; + } + +.hades .tp-tab-title + { + display:block; + color:#333; + font-weight:600; + font-size:18px; + text-align:center; + line-height:25px; + } +.hades .tp-tab-price + { + display:block; + text-align:center; + color:#999; + font-size:16px; + margin-top:10px; + line-height:20px +} + +.hades .tp-tab-button { + display:inline-block; + margin-top:15px; + text-align:center; + padding:5px 15px; + color:#fff; + font-size:14px; + background:#219bd7; + border-radius:4px; + font-weight:400; +} +.hades .tp-tab-inner { + text-align:center; +} + + + +/*----------------------------------------------------------------------------- + +- Revolution Slider 5.0 Navigatin Skin Style - + + HEBE SKIN + +author: ThemePunch +email: info@themepunch.com +website: http://www.themepunch.com +-----------------------------------------------------------------------------*/ +/* ARROWS */ +.hebe.tparrows { + cursor:pointer; + background:#fff; + min-width:70px; + min-height:70px; + position:absolute; + display:block; + z-index:100; +} +.hebe.tparrows:hover { +} +.hebe.tparrows:before { + font-family: "revicons"; + font-size:30px; + color:#aaa; + display:block; + line-height: 70px; + text-align: center; + -webkit-transition: color 0.3s; + -moz-transition: color 0.3s; + transition: color 0.3s; + z-index:2; + position:relative; + background:#fff; + min-width:70px; + min-height:70px; +} +.hebe.tparrows.tp-leftarrow:before { + content: "\e824"; +} +.hebe.tparrows.tp-rightarrow:before { + content: "\e825"; +} +.hebe.tparrows:hover:before { + color:#000; + } +.hebe .tp-title-wrap { + position:absolute; + z-index:0; + display:inline-block; + background:#000; + background:rgba(0,0,0,0.75); + min-height:60px; + line-height:60px; + top:-10px; + margin-left:0px; + -webkit-transition: -webkit-transform 0.3s; + transition: transform 0.3s; + transform:scaleX(0); + -webkit-transform:scaleX(0); + transform-origin:0% 50%; + -webkit-transform-origin:0% 50%; +} + .hebe.tp-rightarrow .tp-title-wrap { + right:0px; + -webkit-transform-origin:100% 50%; + } +.hebe.tparrows:hover .tp-title-wrap { + transform:scaleX(1); + -webkit-transform:scaleX(1); +} +.hebe .tp-arr-titleholder { + position:relative; + text-transform:uppercase; + color:#fff; + font-weight:600; + font-size:12px; + line-height:90px; + white-space:nowrap; + padding:0px 20px 0px 90px; +} + +.hebe.tp-rightarrow .tp-arr-titleholder { + margin-left:0px; + padding:0px 90px 0px 20px; + } + +.hebe.tparrows:hover .tp-arr-titleholder { + transform:translateX(0px); + -webkit-transform:translateX(0px); + transition-delay: 0.1s; + opacity:1; +} + +.hebe .tp-arr-imgholder{ + width:90px; + height:90px; + position:absolute; + left:100%; + display:block; + background-size:cover; + background-position:center center; + top:0px; right:-90px; + } +.hebe.tp-rightarrow .tp-arr-imgholder{ + right:auto;left:-90px; + } + +/* BULLETS */ +.hebe.tp-bullets { +} +.hebe.tp-bullets:before { + content:" "; + position:absolute; + width:100%; + height:100%; + background:transparent; + padding:10px; + margin-left:-10px;margin-top:-10px; + box-sizing:content-box; +} + +.hebe .tp-bullet { + width:3px; + height:3px; + position:absolute; + background:#fff; + cursor: pointer; + border:5px solid #222; + border-radius:50%; + box-sizing:content-box; + -webkit-perspective:400; + perspective:400; + -webkit-transform:translateZ(0.01px); + transform:translateZ(0.01px); + transition:all 0.3s; +} +.hebe .tp-bullet:hover, +.hebe .tp-bullet.selected { + background:#222; + border-color:#fff; +} + +.hebe .tp-bullet-image { + position:absolute; + top:-90px; left:-40px; + width:70px; + height:70px; + background-position:center center; + background-size:cover; + visibility:hidden; + opacity:0; + transition:all 0.3s; + -webkit-transform-style:flat; + transform-style:flat; + perspective:600; + -webkit-perspective:600; + transform: scale(0); + -webkit-transform: scale(0); + transform-origin:50% 100%; + -webkit-transform-origin:50% 100%; +border-radius:6px; + + +} +.hebe .tp-bullet:hover .tp-bullet-image { + display:block; + opacity:1; + transform: scale(1); + -webkit-transform: scale(1); + visibility:visible; + } +.hebe .tp-bullet-title { +} + + +/* TABS */ +.hebe .tp-tab-title { + color:#a8d8ee; + font-size:13px; + font-weight:700; + text-transform:uppercase; + font-family:"Roboto Slab" + margin-bottom:5px; +} + +.hebe .tp-tab-desc { + font-size:18px; + font-weight:400; + color:#fff; + line-height:25px; + font-family:"Roboto Slab"; +} + + +/*----------------------------------------------------------------------------- + +- Revolution Slider 5.0 Navigatin Skin Style - + + HEPHAISTOS SKIN + +author: ThemePunch +email: info@themepunch.com +website: http://www.themepunch.com +-----------------------------------------------------------------------------*/ +/* ARROWS */ +.hephaistos.tparrows { + cursor:pointer; + background:#000; + background:rgba(0,0,0,0.5); + width:40px; + height:40px; + position:absolute; + display:block; + z-index:100; + border-radius:50%; +} +.hephaistos.tparrows:hover { + background:#000; +} +.hephaistos.tparrows:before { + font-family: "revicons"; + font-size:18px; + color:#fff; + display:block; + line-height: 40px; + text-align: center; +} +.hephaistos.tparrows.tp-leftarrow:before { + content: "\e82c"; + margin-left:-2px; + +} +.hephaistos.tparrows.tp-rightarrow:before { + content: "\e82d"; + margin-right:-2px; +} + + + +/* BULLETS */ +.hephaistos.tp-bullets { +} +.hephaistos.tp-bullets:before { + content:" "; + position:absolute; + width:100%; + height:100%; + background:transparent; + padding:10px; + margin-left:-10px;margin-top:-10px; + box-sizing:content-box; +} +.hephaistos .tp-bullet { + width:12px; + height:12px; + position:absolute; + background:#999; + border:3px solid #f5f5f5; + border-radius:50%; + cursor: pointer; + box-sizing:content-box; + box-shadow: 0px 0px 2px 1px rgba(130,130,130, 0.3); + +} +.hephaistos .tp-bullet:hover, +.hephaistos .tp-bullet.selected { + background:#fff; + border-color:#000; +} +.hephaistos .tp-bullet-image { +} +.hephaistos .tp-bullet-title { +} + + +/*----------------------------------------------------------------------------- + +- Revolution Slider 5.0 Navigatin Skin Style - + + HERMES SKIN + +author: ThemePunch +email: info@themepunch.com +website: http://www.themepunch.com +-----------------------------------------------------------------------------*/ +/* ARROWS */ +.hermes.tparrows { + cursor:pointer; + background:#000; + background:rgba(0,0,0,0.5); + width:30px; + height:110px; + position:absolute; + display:block; + z-index:100; +} + +.hermes.tparrows:before { + font-family: "revicons"; + font-size:15px; + color:#fff; + display:block; + line-height: 110px; + text-align: center; + transform:translateX(0px); + -webkit-transform:translateX(0px); + transition:all 0.3s; + -webkit-transition:all 0.3s; +} +.hermes.tparrows.tp-leftarrow:before { + content: "\e824"; +} +.hermes.tparrows.tp-rightarrow:before { + content: "\e825"; +} +.hermes.tparrows.tp-leftarrow:hover:before { + transform:translateX(-20px); + -webkit-transform:translateX(-20px); + opacity:0; +} +.hermes.tparrows.tp-rightarrow:hover:before { + transform:translateX(20px); + -webkit-transform:translateX(20px); + opacity:0; +} + +.hermes .tp-arr-allwrapper { + overflow:hidden; + position:absolute; + width:180px; + height:140px; + top:0px; + left:0px; + visibility:hidden; + -webkit-transition: -webkit-transform 0.3s 0.3s; + transition: transform 0.3s 0.3s; + -webkit-perspective: 1000px; + perspective: 1000px; + } +.hermes.tp-rightarrow .tp-arr-allwrapper { + right:0px;left:auto; + } +.hermes.tparrows:hover .tp-arr-allwrapper { + visibility:visible; + } +.hermes .tp-arr-imgholder { + width:180px;position:absolute; + left:0px;top:0px;height:110px; + transform:translateX(-180px); + -webkit-transform:translateX(-180px); + transition:all 0.3s; + transition-delay:0.3s; +} +.hermes.tp-rightarrow .tp-arr-imgholder{ + transform:translateX(180px); + -webkit-transform:translateX(180px); + } + +.hermes.tparrows:hover .tp-arr-imgholder { + transform:translateX(0px); + -webkit-transform:translateX(0px); +} +.hermes .tp-arr-titleholder { + top:110px; + width:180px; + text-align:left; + display:block; + padding:0px 10px; + line-height:30px; background:#000; + background:rgba(0,0,0,0.75);color:#fff; + font-weight:600; position:absolute; + font-size:12px; + white-space:nowrap; + letter-spacing:1px; + -webkit-transition: all 0.3s; + transition: all 0.3s; + -webkit-transform: rotateX(-90deg); + transform: rotateX(-90deg); + -webkit-transform-origin: 50% 0; + transform-origin: 50% 0; + box-sizing:border-box; + +} +.hermes.tparrows:hover .tp-arr-titleholder { + -webkit-transition-delay: 0.6s; + transition-delay: 0.6s; + -webkit-transform: rotateX(0deg); + transform: rotateX(0deg); +} + + +/* BULLETS */ +.hermes.tp-bullets { +} + +.hermes .tp-bullet { + overflow:hidden; + border-radius:50%; + width:16px; + height:16px; + background-color: rgba(0, 0, 0, 0); + box-shadow: inset 0 0 0 2px #FFF; + -webkit-transition: background 0.3s ease; + transition: background 0.3s ease; + position:absolute; +} + +.hermes .tp-bullet:hover { + background-color: rgba(0, 0, 0, 0.2); +} +.hermes .tp-bullet:after { + content: ' '; + position: absolute; + bottom: 0; + height: 0; + left: 0; + width: 100%; + background-color: #FFF; + box-shadow: 0 0 1px #FFF; + -webkit-transition: height 0.3s ease; + transition: height 0.3s ease; +} +.hermes .tp-bullet.selected:after { + height:100%; +} + + +/* TABS */ +.hermes .tp-tab { + opacity:1; + padding-right:10px; + box-sizing:border-box; + } +.hermes .tp-tab-image +{ + width:100%; + height:60%; + position:relative; +} +.hermes .tp-tab-content +{ + background:rgb(54,54,54); + position:absolute; + padding:20px 20px 20px 30px; + box-sizing:border-box; + color:#fff; + display:block; + width:100%; + min-height:40%; + bottom:0px; + left:-10px; + } +.hermes .tp-tab-date + { + display:block; + color:#888; + font-weight:600; + font-size:12px; + margin-bottom:10px; + } +.hermes .tp-tab-title +{ + display:block; + color:#fff; + font-size:16px; + font-weight:800; + text-transform:uppercase; + line-height:19px; +} + +.hermes .tp-tab.selected .tp-tab-title:after { + width: 0px; + height: 0px; + border-style: solid; + border-width: 30px 0 30px 10px; + border-color: transparent transparent transparent rgb(54,54,54); + content:" "; + position:absolute; + right:-9px; + bottom:50%; + margin-bottom:-30px; +} +.hermes .tp-tab-mask { + padding-right:10px !important; + } + +/* MEDIA QUERIES */ +@media only screen and (max-width: 960px) { + .hermes .tp-tab .tp-tab-title {font-size:14px;line-height:16px;} + .hermes .tp-tab-date { font-size:11px; line-height:13px;margin-bottom:10px;} + .hermes .tp-tab-content { padding:15px 15px 15px 25px;} +} +@media only screen and (max-width: 768px) { + .hermes .tp-tab .tp-tab-title {font-size:12px;line-height:14px;} + .hermes .tp-tab-date {font-size:10px; line-height:12px;margin-bottom:5px;} + .hermes .tp-tab-content {padding:10px 10px 10px 20px;} +} + +/*----------------------------------------------------------------------------- + +- Revolution Slider 5.0 Navigatin Skin Style - + + HESPERIDEN SKIN + +author: ThemePunch +email: info@themepunch.com +website: http://www.themepunch.com +-----------------------------------------------------------------------------*/ +/* ARROWS */ +.hesperiden.tparrows { + cursor:pointer; + background:#000; + background:rgba(0,0,0,0.5); + width:40px; + height:40px; + position:absolute; + display:block; + z-index:100; + border-radius: 50%; +} +.hesperiden.tparrows:hover { + background:#000; +} +.hesperiden.tparrows:before { + font-family: "revicons"; + font-size:20px; + color:#fff; + display:block; + line-height: 40px; + text-align: center; +} +.hesperiden.tparrows.tp-leftarrow:before { + content: "\e82c"; + margin-left:-3px; +} +.hesperiden.tparrows.tp-rightarrow:before { + content: "\e82d"; + margin-right:-3px; +} + +/* BULLETS */ +.hesperiden.tp-bullets { +} +.hesperiden.tp-bullets:before { + content:" "; + position:absolute; + width:100%; + height:100%; + background:transparent; + padding:10px; + margin-left:-10px;margin-top:-10px; + box-sizing:content-box; + border-radius:8px; + +} +.hesperiden .tp-bullet { + width:12px; + height:12px; + position:absolute; + background: #999999; /* old browsers */ + background: -moz-linear-gradient(top, #999999 0%, #e1e1e1 100%); /* ff3.6+ */ + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#999999), + color-stop(100%,#e1e1e1)); /* chrome,safari4+ */ + background: -webkit-linear-gradient(top, #999999 0%,#e1e1e1 100%); /* chrome10+,safari5.1+ */ + background: -o-linear-gradient(top, #999999 0%,#e1e1e1 100%); /* opera 11.10+ */ + background: -ms-linear-gradient(top, #999999 0%,#e1e1e1 100%); /* ie10+ */ + background: linear-gradient(to bottom, #999999 0%,#e1e1e1 100%); /* w3c */ + filter: progid:dximagetransform.microsoft.gradient( + startcolorstr="#999999", endcolorstr="#e1e1e1",gradienttype=0 ); /* ie6-9 */ + border:3px solid #e5e5e5; + border-radius:50%; + cursor: pointer; + box-sizing:content-box; +} +.hesperiden .tp-bullet:hover, +.hesperiden .tp-bullet.selected { + background:#666; +} +.hesperiden .tp-bullet-image { +} +.hesperiden .tp-bullet-title { +} + + +/* THUMBS */ +.hesperiden .tp-thumb { + opacity:1; + -webkit-perspective: 600px; + perspective: 600px; +} +.hesperiden .tp-thumb .tp-thumb-title { + font-size:12px; + position:absolute; + margin-top:-10px; + color:#fff; + display:block; + z-index:1000; + background-color:#000; + padding:5px 10px; + bottom:0px; + left:0px; + width:100%; + box-sizing:border-box; + text-align:center; + overflow:hidden; + white-space:nowrap; + transition:all 0.3s; + -webkit-transition:all 0.3s; + transform:rotatex(90deg) translatez(0.001px); + transform-origin:50% 100%; + -webkit-transform:rotatex(90deg) translatez(0.001px); + -webkit-transform-origin:50% 100%; + opacity:0; + } +.hesperiden .tp-thumb:hover .tp-thumb-title { + transform:rotatex(0deg); + -webkit-transform:rotatex(0deg); + opacity:1; +} + +/* TABS */ +.hesperiden .tp-tab { + opacity:1; + padding:10px; + box-sizing:border-box; + font-family: "Roboto", sans-serif; + border-bottom: 1px solid #e5e5e5; + } +.hesperiden .tp-tab-image +{ + width:60px; + height:60px; max-height:100%; max-width:100%; + position:relative; + display:inline-block; + float:left; + +} +.hesperiden .tp-tab-content +{ + background:rgba(0,0,0,0); + position:relative; + padding:15px 15px 15px 85px; + left:0px; + overflow:hidden; + margin-top:-15px; + box-sizing:border-box; + color:#333; + display: inline-block; + width:100%; + height:100%; + position:absolute; } +.hesperiden .tp-tab-date + { + display:block; + color: #aaa; + font-weight:500; + font-size:12px; + margin-bottom:0px; + } +.hesperiden .tp-tab-title +{ + display:block; + text-align:left; + color:#333; + font-size:14px; + font-weight:500; + text-transform:none; + line-height:17px; +} +.hesperiden .tp-tab:hover, +.hesperiden .tp-tab.selected { + background:#eee; +} + +.hesperiden .tp-tab-mask { +} + +/* MEDIA QUERIES */ +@media only screen and (max-width: 960px) { + +} +@media only screen and (max-width: 768px) { + +} + +/*----------------------------------------------------------------------------- + +- Revolution Slider 5.0 Navigatin Skin Style - + + METIS SKIN + +author: ThemePunch +email: info@themepunch.com +website: http://www.themepunch.com +-----------------------------------------------------------------------------*/ +/* ARROWS */ +.metis.tparrows { + background:#fff; + padding:10px; + transition:all 0.3s; + -webkit-transition:all 0.3s; + width:60px; + height:60px; + box-sizing:border-box; + } + + .metis.tparrows:hover { + background:#fff; + background:rgba(255,255,255,0.75); + } + + .metis.tparrows:before { + color:#000; + transition:all 0.3s; + -webkit-transition:all 0.3s; + } + + .metis.tparrows:hover:before { + transform:scale(1.5); + } + + +/* BULLETS */ +.metis .tp-bullet { + opacity:1; + width:50px; + height:50px; + padding:3px; + background:#000; + background-color:rgba(0,0,0,0.25); + margin:0px; + box-sizing:border-box; + transition:all 0.3s; + -webkit-transition:all 0.3s; + border-radius:50%; + } + +.metis .tp-bullet-image { + + border-radius:50%; + display:block; + box-sizing:border-box; + position:relative; + -webkit-box-shadow: inset 5px 5px 10px 0px rgba(0,0,0,0.25); + -moz-box-shadow: inset 5px 5px 10px 0px rgba(0,0,0,0.25); + box-shadow: inset 5px 5px 10px 0px rgba(0,0,0,0.25); + width:44px; + height:44px; + background-size:cover; + background-position:center center; + } +.metis .tp-bullet-title { + position:absolute; + bottom:65px; + display:inline-block; + left:50%; + background:#000; + background:rgba(0,0,0,0.75); + color:#fff; + padding:10px 30px; + border-radius:4px; + -webkit-border-radius:4px; + opacity:0; + transition:all 0.3s; + -webkit-transition:all 0.3s; + transform: translateZ(0.001px) translateX(-50%) translateY(14px); + transform-origin:50% 100%; + -webkit-transform: translateZ(0.001px) translateX(-50%) translateY(14px); + -webkit-transform-origin:50% 100%; + opacity:0; + white-space:nowrap; + } + +.metis .tp-bullet:hover .tp-bullet-title { + transform:rotateX(0deg) translateX(-50%); + -webkit-transform:rotateX(0deg) translateX(-50%); + opacity:1; +} + +.metis .tp-bullet.selected, +.metis .tp-bullet:hover { + + background: rgba(255,255,255,1); + background: -moz-linear-gradient(top, rgba(255,255,255,1) 0%, rgba(119,119,119,1) 100%); + background: -webkit-gradient(left top, left bottom, color-stop(0%, rgba(255,255,255,1)), color-stop(100%, rgba(119,119,119,1))); + background: -webkit-linear-gradient(top, rgba(255,255,255,1) 0%, rgba(119,119,119,1) 100%); + background: -o-linear-gradient(top, rgba(255,255,255,1) 0%, rgba(119,119,119,1) 100%); + background: -ms-linear-gradient(top, rgba(255,255,255,1) 0%, rgba(119,119,119,1) 100%); + background: linear-gradient(to bottom, rgba(255,255,255,1) 0%, rgba(119,119,119,1) 100%); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr="#ffffff", endColorstr="#777777", GradientType=0 ); + + } +.metis .tp-bullet-title:after { + content:" "; + position:absolute; + left:50%; + margin-left:-8px; + width: 0; + height: 0; + border-style: solid; + border-width: 8px 8px 0 8px; + border-color: rgba(0,0,0,0.75) transparent transparent transparent; + bottom:-8px; + } + +.metis .tp-tab-number { + color: #fff; + font-size: 40px; + line-height: 30px; + font-weight: 400; + font-family: "Playfair Display"; + width: 50px; + margin-right: 17px; + display: inline-block; + float: left; + } + .metis .tp-tab-mask { + padding-left: 20px; + left: 0px; + max-width: 90px !important; + transition: 0.4s padding-left, 0.4s left, 0.4s max-width; + } + .metis:hover .tp-tab-mask { + padding-left: 0px; + left: 50px; + max-width: 500px !important; + } + .metis .tp-tab-divider { + border-right: 1px solid transparent; + height: 30px; + width: 1px; + margin-top: 5px; + display: inline-block; + float: left; + } + .metis .tp-tab-title { + color: #fff; + font-size: 20px; + line-height: 20px; + font-weight: 400; + font-family: "Playfair Display"; + position: relative; + padding-top: 10px; + padding-left: 30px; + display: inline-block; + transform: translateX(-100%); + transition: 0.4s all; + } + .metis .tp-tab-title-mask { + position: absolute; + overflow: hidden; + left: 67px; + } + .metis:hover .tp-tab-title { + transform: translateX(0); + } + .metis .tp-tab { + opacity: 0.15; + transition: 0.4s all; + } + .metis .tp-tab:hover, + .metis .tp-tab.selected { + opacity: 1; + } + .metis .tp-tab.selected .tp-tab-divider { + border-right: 1px solid #cdb083; + } + .metis.tp-tabs { + max-width: 118px !important; + padding-left: 50px; + } + .metis.tp-tabs:before { + content: " "; + height: 100%; + width: 88px; + background: rgba(0, 0, 0, 0.15); + border-right: 1px solid rgba(255, 255, 255, 0.10); + left: 0px; + top: 0px; + position: absolute; + transition: 0.4s all; + } + .metis.tp-tabs:hover:before { + width: 118px; + } + @media (max-width: 499px) { + .metis.tp-tabs:before { + background: rgba(0, 0, 0, 0.75); + } + } + +/*----------------------------------------------------------------------------- + +- Revolution Slider 5.0 Navigatin Skin Style - + + PERSEPHONE SKIN + +author: ThemePunch +email: info@themepunch.com +website: http://www.themepunch.com +-----------------------------------------------------------------------------*/ +/* ARROWS */ +.persephone.tparrows { + cursor:pointer; + background:#aaa; + background:rgba(200,200,200,0.5); + width:40px; + height:40px; + position:absolute; + display:block; + z-index:100; + border:1px solid #f5f5f5; +} +.persephone.tparrows:hover { + background:#333; +} +.persephone.tparrows:before { + font-family: "revicons"; + font-size:15px; + color:#fff; + display:block; + line-height: 40px; + text-align: center; +} +.persephone.tparrows.tp-leftarrow:before { + content: "\e824"; +} +.persephone.tparrows.tp-rightarrow:before { + content: "\e825"; +} + + + +/* BULLETS */ +.persephone.tp-bullets { +} +.persephone.tp-bullets:before { + content:" "; + position:absolute; + width:100%; + height:100%; + background:#transparent; + padding:10px; + margin-left:-10px;margin-top:-10px; + box-sizing:content-box; +} +.persephone .tp-bullet { + width:12px; + height:12px; + position:absolute; + background:#aaa; + border:1px solid #e5e5e5; + cursor: pointer; + box-sizing:content-box; +} +.persephone .tp-bullet:hover, +.persephone .tp-bullet.selected { + background:#222; +} +.persephone .tp-bullet-image { +} +.persephone .tp-bullet-title { +} + + +/*----------------------------------------------------------------------------- + +- Revolution Slider 5.0 Navigatin Skin Style - + + URANUS SKIN + +author: ThemePunch +email: info@themepunch.com +website: http://www.themepunch.com +-----------------------------------------------------------------------------*/ +/* ARROWS */ +.uranus.tparrows { + width:50px; + height:50px; + background:transparent; + } + .uranus.tparrows:before { + width:50px; + height:50px; + line-height:50px; + font-size:40px; + transition:all 0.3s; +-webkit-transition:all 0.3s; + } + + .uranus.tparrows:hover:before { + opacity:0.75; + } + +/* BULLETS */ +.uranus .tp-bullet{ + border-radius: 50%; + box-shadow: 0 0 0 2px rgba(255, 255, 255, 0); + -webkit-transition: box-shadow 0.3s ease; + transition: box-shadow 0.3s ease; + background:transparent; +} +.uranus .tp-bullet.selected, +.uranus .tp-bullet:hover { + box-shadow: 0 0 0 2px #FFF; + border:none; + border-radius: 50%; + + background:transparent; +} + + + +.uranus .tp-bullet-inner { + background-color: rgba(255, 255, 255, 0.7); + -webkit-transition: background-color 0.3s ease, -webkit-transform 0.3s ease; + transition: background-color 0.3s ease, transform 0.3s ease; + top: 0; + left: 0; + width: 100%; + height: 100%; + outline: none; + border-radius: 50%; + background-color: #FFF; + background-color: rgba(255, 255, 255, 0.3); + text-indent: -999em; + cursor: pointer; + position: absolute; +} + +.uranus .tp-bullet.selected .tp-bullet-inner, +.uranus .tp-bullet:hover .tp-bullet-inner{ + transform: scale(0.4); + -webkit-transform: scale(0.4); + background-color:#fff; +} + +/*----------------------------------------------------------------------------- + +- Revolution Slider 5.0 Navigatin Skin Style - + + ZEUS SKIN + +author: ThemePunch +email: info@themepunch.com +website: http://www.themepunch.com +-----------------------------------------------------------------------------*/ +/* ARROWS */ +.zeus.tparrows { + cursor:pointer; + min-width:70px; + min-height:70px; + position:absolute; + display:block; + z-index:100; + border-radius:35px; + overflow:hidden; + background:rgba(0,0,0,0.10); +} + +.zeus.tparrows:before { + font-family: "revicons"; + font-size:20px; + color:#fff; + display:block; + line-height: 70px; + text-align: center; + z-index:2; + position:relative; +} +.zeus.tparrows.tp-leftarrow:before { + content: "\e824"; +} +.zeus.tparrows.tp-rightarrow:before { + content: "\e825"; +} + +.zeus .tp-title-wrap { + background:#000; + background:rgba(0,0,0,0.5); + width:100%; + height:100%; + top:0px; + left:0px; + position:absolute; + opacity:0; + transform:scale(0); + -webkit-transform:scale(0); + transition: all 0.3s; + -webkit-transition:all 0.3s; + -moz-transition:all 0.3s; + border-radius:50%; + } +.zeus .tp-arr-imgholder { + width:100%; + height:100%; + position:absolute; + top:0px; + left:0px; + background-position:center center; + background-size:cover; + border-radius:50%; + transform:translateX(-100%); + -webkit-transform:translateX(-100%); + transition: all 0.3s; + -webkit-transition:all 0.3s; + -moz-transition:all 0.3s; + + } +.zeus.tp-rightarrow .tp-arr-imgholder { + transform:translateX(100%); + -webkit-transform:translateX(100%); + } +.zeus.tparrows:hover .tp-arr-imgholder { + transform:translateX(0); + -webkit-transform:translateX(0); + opacity:1; +} + +.zeus.tparrows:hover .tp-title-wrap { + transform:scale(1); + -webkit-transform:scale(1); + opacity:1; +} + + +/* BULLETS */ +.zeus .tp-bullet { + box-sizing:content-box; -webkit-box-sizing:content-box; border-radius:50%; + background-color: rgba(0, 0, 0, 0); + -webkit-transition: opacity 0.3s ease; + transition: opacity 0.3s ease; + width:13px;height:13px; + border:2px solid #fff; + } +.zeus .tp-bullet:after { + content: ""; + position: absolute; + width: 100%; + height: 100%; + left: 0; + border-radius: 50%; + background-color: #FFF; + -webkit-transform: scale(0); + transform: scale(0); + -webkit-transform-origin: 50% 50%; + transform-origin: 50% 50%; + -webkit-transition: -webkit-transform 0.3s ease; + transition: transform 0.3s ease; +} +.zeus .tp-bullet:hover:after, +.zeus .tp-bullet.selected:after{ + -webkit-transform: scale(1.2); + transform: scale(1.2); +} + + .zeus .tp-bullet-image, + .zeus .tp-bullet-imageoverlay{ + width:135px; + height:60px; + position:absolute; + background:#000; + background:rgba(0,0,0,0.5); + bottom:25px; + left:50%; + margin-left:-65px; + box-sizing:border-box; + background-size:cover; + background-position:center center; + visibility:hidden; + opacity:0; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-transform-origin: 50% 50%; + transform-origin: 50% 50%; + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; + border-radius:4px; + +} + + +.zeus .tp-bullet-title, +.zeus .tp-bullet-imageoverlay { + z-index:2; + -webkit-transition: all 0.5s ease; + transition: all 0.5s ease; +} +.zeus .tp-bullet-title { + color:#fff; + text-align:center; + line-height:15px; + font-size:13px; + font-weight:600; + z-index:3; + visibility:hidden; + opacity:0; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-transform-origin: 50% 50%; + transform-origin: 50% 50%; + -webkit-transition: all 0.3s ease; + transition: all 0.3s ease; + position:absolute; + bottom:45px; + width:135px; + vertical-align:middle; + left:-57px; +} + +.zeus .tp-bullet:hover .tp-bullet-title, +.zeus .tp-bullet:hover .tp-bullet-image, +.zeus .tp-bullet:hover .tp-bullet-imageoverlay{ + opacity:1; + visibility:visible; + -webkit-transform:translateY(0px); + transform:translateY(0px); + } + +/* THUMBS */ +.zeus .tp-thumb { +opacity:1 +} + +.zeus .tp-thumb-over { + background:#000; + background:rgba(0,0,0,0.25); + width:100%; + height:100%; + position:absolute; + top:0px; + left:0px; + z-index:1; + -webkit-transition:all 0.3s; + transition:all 0.3s; +} + +.zeus .tp-thumb-more:before { + font-family: "revicons"; + font-size:12px; + color:#aaa; + color:rgba(255,255,255,0.75); + display:block; + line-height: 12px; + text-align: left; + z-index:2; + position:absolute; + top:20px; + right:20px; + z-index:2; +} +.zeus .tp-thumb-more:before { + content: "\e825"; +} + +.zeus .tp-thumb-title { + font-family:"Raleway"; + letter-spacing:1px; + font-size:12px; + color:#fff; + display:block; + line-height: 15px; + text-align: left; + z-index:2; + position:absolute; + top:0px; + left:0px; + z-index:2; + padding:20px 35px 20px 20px; + width:100%; + height:100%; + box-sizing:border-box; + transition:all 0.3s; + -webkit-transition:all 0.3s; + font-weight:500; +} + +.zeus .tp-thumb.selected .tp-thumb-more:before, +.zeus .tp-thumb:hover .tp-thumb-more:before { + color:#aaa; + +} + +.zeus .tp-thumb.selected .tp-thumb-over, +.zeus .tp-thumb:hover .tp-thumb-over { + background:#000; +} +.zeus .tp-thumb.selected .tp-thumb-title, +.zeus .tp-thumb:hover .tp-thumb-title { + color:#fff; + +} + + +/* TABS */ +.zeus .tp-tab { + opacity:1; + box-sizing:border-box; +} + +.zeus .tp-tab-title { +display: block; +text-align: center; +background: rgba(0,0,0,0.25); +font-family: "Roboto Slab", serif; +font-weight: 700; +font-size: 13px; +line-height: 13px; +color: #fff; +padding: 9px 10px; } + +.zeus .tp-tab:hover .tp-tab-title, +.zeus .tp-tab.selected .tp-tab-title { + color: #000; + background:rgba(255,255,255,1); +} + + + +/*----------------------------------------------------------------------------- + +- Revolution Slider 5.0 Navigatin Skin Style - + + ZEUS SKIN + +author: ThemePunch +email: info@themepunch.com +website: http://www.themepunch.com +-----------------------------------------------------------------------------*/ + + +.post-tabs .tp-thumb { +opacity:1 +} + +.post-tabs .tp-thumb-over { + background:#252525; + width:100%; + height:100%; + position:absolute; + top:0px; + left:0px; + z-index:1; + -webkit-transition:all 0.3s; + transition:all 0.3s; +} + +.post-tabs .tp-thumb-more:before { + font-family: "revicons"; + font-size:12px; + color:#aaa; + color:rgba(255,255,255,0.75); + display:block; + line-height: 12px; + text-align: left; + z-index:2; + position:absolute; + top:15px; + right:15px; + z-index:2; +} +.post-tabs .tp-thumb-more:before { + content: "\e825"; +} + +.post-tabs .tp-thumb-title { + font-family:"raleway"; + letter-spacing:1px; + font-size:12px; + color:#fff; + display:block; + line-height: 15px; + text-align: left; + z-index:2; + position:absolute; + top:0px; + left:0px; + z-index:2; + padding:15px 30px 15px 15px; + width:100%; + height:100%; + box-sizing:border-box; + transition:all 0.3s; + -webkit-transition:all 0.3s; + font-weight:500; +} + +.post-tabs .tp-thumb.selected .tp-thumb-more:before, +.post-tabs .tp-thumb:hover .tp-thumb-more:before { + color:#aaa; + +} + +.post-tabs .tp-thumb.selected .tp-thumb-over, +.post-tabs .tp-thumb:hover .tp-thumb-over { + background:#fff; +} +.post-tabs .tp-thumb.selected .tp-thumb-title, +.post-tabs .tp-thumb:hover .tp-thumb-title { + color:#000; + +} diff --git a/oldwebsite/assets/css/vendor/rev_slider/settings.css b/oldwebsite/assets/css/vendor/rev_slider/settings.css new file mode 100644 index 0000000..d35d4d1 --- /dev/null +++ b/oldwebsite/assets/css/vendor/rev_slider/settings.css @@ -0,0 +1,1261 @@ +/*----------------------------------------------------------------------------- + +- Revolution Slider 5.0 Default Style Settings - + +Screen Stylesheet + +version: 5.0.0 +date: 29/10/15 +author: themepunch +email: info@themepunch.com +website: http://www.themepunch.com +-----------------------------------------------------------------------------*/ + + + +.rtl { direction: rtl;} +@font-face { + font-family: 'revicons'; + src: url('../fonts/revicons/revicons.eot?5510888'); + src: url('../fonts/revicons/revicons.eot?5510888#iefix') format('embedded-opentype'), + url('../fonts/revicons/revicons.woff?5510888') format('woff'), + url('../fonts/revicons/revicons.ttf?5510888') format('truetype'), + url('../fonts/revicons/revicons.svg?5510888#revicons') format('svg'); + font-weight: normal; + font-style: normal; +} + + [class^="revicon-"]:before, [class*=" revicon-"]:before { + font-family: "revicons"; + font-style: normal; + font-weight: normal; + speak: none; + display: inline-block; + text-decoration: inherit; + width: 1em; + margin-right: .2em; + text-align: center; + + /* For safety - reset parent styles, that can break glyph codes*/ + font-variant: normal; + text-transform: none; + + /* fix buttons height, for twitter bootstrap */ + line-height: 1em; + + /* Animation center compensation - margins should be symmetric */ + /* remove if not needed */ + margin-left: .2em; + + /* you can be more comfortable with increased icons size */ + /* font-size: 120%; */ + + /* Uncomment for 3D effect */ + /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */ +} + +.revicon-search-1:before { content: '\e802'; } /* '' */ +.revicon-pencil-1:before { content: '\e831'; } /* '' */ +.revicon-picture-1:before { content: '\e803'; } /* '' */ +.revicon-cancel:before { content: '\e80a'; } /* '' */ +.revicon-info-circled:before { content: '\e80f'; } /* '' */ +.revicon-trash:before { content: '\e801'; } /* '' */ +.revicon-left-dir:before { content: '\e817'; } /* '' */ +.revicon-right-dir:before { content: '\e818'; } /* '' */ +.revicon-down-open:before { content: '\e83b'; } /* '' */ +.revicon-left-open:before { content: '\e819'; } /* '' */ +.revicon-right-open:before { content: '\e81a'; } /* '' */ +.revicon-angle-left:before { content: '\e820'; } /* '' */ +.revicon-angle-right:before { content: '\e81d'; } /* '' */ +.revicon-left-big:before { content: '\e81f'; } /* '' */ +.revicon-right-big:before { content: '\e81e'; } /* '' */ +.revicon-magic:before { content: '\e807'; } /* '' */ +.revicon-picture:before { content: '\e800'; } /* '' */ +.revicon-export:before { content: '\e80b'; } /* '' */ +.revicon-cog:before { content: '\e832'; } /* '' */ +.revicon-login:before { content: '\e833'; } /* '' */ +.revicon-logout:before { content: '\e834'; } /* '' */ +.revicon-video:before { content: '\e805'; } /* '' */ +.revicon-arrow-combo:before { content: '\e827'; } /* '' */ +.revicon-left-open-1:before { content: '\e82a'; } /* '' */ +.revicon-right-open-1:before { content: '\e82b'; } /* '' */ +.revicon-left-open-mini:before { content: '\e822'; } /* '' */ +.revicon-right-open-mini:before { content: '\e823'; } /* '' */ +.revicon-left-open-big:before { content: '\e824'; } /* '' */ +.revicon-right-open-big:before { content: '\e825'; } /* '' */ +.revicon-left:before { content: '\e836'; } /* '' */ +.revicon-right:before { content: '\e826'; } /* '' */ +.revicon-ccw:before { content: '\e808'; } /* '' */ +.revicon-arrows-ccw:before { content: '\e806'; } /* '' */ +.revicon-palette:before { content: '\e829'; } /* '' */ +.revicon-list-add:before { content: '\e80c'; } /* '' */ +.revicon-doc:before { content: '\e809'; } /* '' */ +.revicon-left-open-outline:before { content: '\e82e'; } /* '' */ +.revicon-left-open-2:before { content: '\e82c'; } /* '' */ +.revicon-right-open-outline:before { content: '\e82f'; } /* '' */ +.revicon-right-open-2:before { content: '\e82d'; } /* '' */ +.revicon-equalizer:before { content: '\e83a'; } /* '' */ +.revicon-layers-alt:before { content: '\e804'; } /* '' */ +.revicon-popup:before { content: '\e828'; } /* '' */ + + + +/****************************** + - BASIC STYLES - +******************************/ + +.rev_slider_wrapper{ + position:relative; + z-index: 0; +} + + +.rev_slider{ + position:relative; + overflow:visible; +} + +.tp-overflow-hidden { overflow:hidden;} + +.tp-simpleresponsive img, +.rev_slider img{ + max-width:none !important; + -moz-transition: none; + -webkit-transition: none; + -o-transition: none; + transition: none; + margin:0px; + padding:0px; + border-width:0px; + border:none; +} + +.rev_slider .no-slides-text{ + font-weight:bold; + text-align:center; + padding-top:80px; +} + +.rev_slider >ul, +.rev_slider_wrapper >ul, +.tp-revslider-mainul >li, +.rev_slider >ul >li, +.rev_slider >ul >li:before, +.tp-revslider-mainul >li:before, +.tp-simpleresponsive >ul, +.tp-simpleresponsive >ul >li, +.tp-simpleresponsive >ul >li:before, +.tp-revslider-mainul >li, +.tp-simpleresponsive >ul >li{ + list-style:none !important; + position:absolute; + margin:0px !important; + padding:0px !important; + overflow-x: visible; + overflow-y: visible; + list-style-type: none !important; + background-image:none; + background-position:0px 0px; + text-indent: 0em; + top:0px;left:0px; +} + + +.tp-revslider-mainul >li, +.rev_slider >ul >li, +.rev_slider >ul >li:before, +.tp-revslider-mainul >li:before, +.tp-simpleresponsive >ul >li, +.tp-simpleresponsive >ul >li:before, +.tp-revslider-mainul >li, +.tp-simpleresponsive >ul >li { + visibility:hidden; +} + +.tp-revslider-slidesli, +.tp-revslider-mainul { + padding:0 !important; + margin:0 !important; + list-style:none !important; +} + +.rev_slider li.tp-revslider-slidesli { + position: absolute !important; +} + + +.tp-caption .rs-untoggled-content { display:block;} +.tp-caption .rs-toggled-content { display:none;} + +.rs-toggle-content-active.tp-caption .rs-toggled-content { display:block;} +.rs-toggle-content-active.tp-caption .rs-untoggled-content { display:none;} + +.rev_slider .tp-caption, +.rev_slider .caption { + position:relative; + visibility:hidden; + white-space: nowrap; + display: block; +} + + +.rev_slider .tp-mask-wrap .tp-caption, +.rev_slider .tp-mask-wrap *:last-child, +.wpb_text_column .rev_slider .tp-mask-wrap .tp-caption, +.wpb_text_column .rev_slider .tp-mask-wrap *:last-child{ + margin-bottom:0; + +} + +.tp-svg-layer svg { width:100%; height:100%;position: relative;vertical-align: top} + + +/* CAROUSEL FUNCTIONS */ +.tp-carousel-wrapper { + cursor:url(openhand.cur), move; +} +.tp-carousel-wrapper.dragged { + cursor:url(closedhand.cur), move; +} + +/* ADDED FOR SLIDELINK MANAGEMENT */ +.tp-caption { + z-index:1 +} + +.tp_inner_padding { + box-sizing:border-box; + -webkit-box-sizing:border-box; + -moz-box-sizing:border-box; + max-height:none !important; +} + + +.tp-caption { + -moz-user-select: none; + -khtml-user-select: none; + -webkit-user-select: none; + -o-user-select: none; + position:absolute; + -webkit-font-smoothing: antialiased !important; +} + +.tp-caption.tp-layer-selectable { + -moz-user-select: all; + -khtml-user-select: all; + -webkit-user-select: all; + -o-user-select: all; +} + +.tp-forcenotvisible, +.tp-hide-revslider, +.tp-caption.tp-hidden-caption { + visibility:hidden !important; + display:none !important +} + +.rev_slider embed, +.rev_slider iframe, +.rev_slider object, +.rev_slider audio, +.rev_slider video { + max-width: none !important +} + + + + + + +/********************************************** + - FULLSCREEN AND FULLWIDHT CONTAINERS - +**********************************************/ +.rev_slider_wrapper { width:100%;} + +.fullscreen-container { + position:relative; + padding:0; +} + + +.fullwidthbanner-container{ + position:relative; + padding:0; + overflow:hidden; +} + +.fullwidthbanner-container .fullwidthabanner{ + width:100%; + position:relative; +} + + + +/********************************* + - SPECIAL TP CAPTIONS - +**********************************/ + +.tp-static-layers { + position:absolute; z-index:101; top:0px;left:0px; + /*pointer-events:none;*/ + +} + + +.tp-caption .frontcorner { + width: 0; + height: 0; + border-left: 40px solid transparent; + border-right: 0px solid transparent; + border-top: 40px solid #00A8FF; + position: absolute;left:-40px;top:0px; +} + +.tp-caption .backcorner { + width: 0; + height: 0; + border-left: 0px solid transparent; + border-right: 40px solid transparent; + border-bottom: 40px solid #00A8FF; + position: absolute;right:0px;top:0px; +} + +.tp-caption .frontcornertop { + width: 0; + height: 0; + border-left: 40px solid transparent; + border-right: 0px solid transparent; + border-bottom: 40px solid #00A8FF; + position: absolute;left:-40px;top:0px; +} + +.tp-caption .backcornertop { + width: 0; + height: 0; + border-left: 0px solid transparent; + border-right: 40px solid transparent; + border-top: 40px solid #00A8FF; + position: absolute;right:0px;top:0px; +} + +.tp-layer-inner-rotation { + position: relative !important; +} + + +/*********************************************** + - SPECIAL ALTERNATIVE IMAGE SETTINGS - +***********************************************/ + +img.tp-slider-alternative-image { + width:100%; height:auto; +} + + +/****************************** + - IE8 HACKS - +*******************************/ +.noFilterClass { + filter:none !important; +} + + +/******************************** + - FULLSCREEN VIDEO - +*********************************/ + +.rs-background-video-layer { position: absolute;top:0px;left:0px; width:100%;height:100%;visibility: hidden;z-index: 0;} + +.tp-caption.coverscreenvideo { width:100%;height:100%;top:0px;left:0px;position:absolute;} +.caption.fullscreenvideo, +.tp-caption.fullscreenvideo { left:0px; top:0px; position:absolute;width:100%;height:100%} + +.caption.fullscreenvideo iframe, +.caption.fullscreenvideo audio, +.caption.fullscreenvideo video, +.tp-caption.fullscreenvideo iframe, +.tp-caption.fullscreenvideo iframe audio, +.tp-caption.fullscreenvideo iframe video { width:100% !important; height:100% !important; display: none} + +.fullcoveredvideo audio, +.fullscreenvideo audio +.fullcoveredvideo video, +.fullscreenvideo video { background: #000} + +.fullcoveredvideo .tp-poster { background-position: center center;background-size: cover;width:100%;height:100%;top:0px;left:0px} + + +.videoisplaying .html5vid .tp-poster { display: none} + +.tp-video-play-button { + background:#000; + background:rgba(0,0,0,0.3); + border-radius:5px;-moz-border-radius:5px;-webkit-border-radius:5px; + position: absolute; + top: 50%; + left: 50%; + color: #FFF; + z-index: 3; + margin-top: -25px; + margin-left: -25px; + line-height: 50px !important; + text-align: center; + cursor: pointer; + width: 50px; + height:50px; + box-sizing: border-box; + -moz-box-sizing: border-box; + display: inline-block; + vertical-align: top; + z-index: 4; + opacity: 0; + -webkit-transition:opacity 300ms ease-out !important; + -moz-transition:opacity 300ms ease-out !important; + -o-transition:opacity 300ms ease-out !important; + transition:opacity 300ms ease-out !important; +} + +.tp-hiddenaudio, +.tp-audio-html5 .tp-video-play-button { display:none !important;} +.tp-caption .html5vid { width:100% !important; height:100% !important;} +.tp-video-play-button i { width:50px;height:50px; display:inline-block; text-align: center; vertical-align: top; line-height: 50px !important; font-size: 40px !important;} +.tp-caption:hover .tp-video-play-button { opacity: 1;} +.tp-caption .tp-revstop { display:none; border-left:5px solid #fff !important; border-right:5px solid #fff !important;margin-top:15px !important;line-height: 20px !important;vertical-align: top; font-size:25px !important;} +.videoisplaying .revicon-right-dir { display:none} +.videoisplaying .tp-revstop { display:inline-block} + +.videoisplaying .tp-video-play-button { display:none} +.tp-caption:hover .tp-video-play-button { display:block} + +.fullcoveredvideo .tp-video-play-button { display:none !important} + + +.fullscreenvideo .fullscreenvideo audio { object-fit:contain !important;} +.fullscreenvideo .fullscreenvideo video { object-fit:contain !important;} + +.fullscreenvideo .fullcoveredvideo audio { object-fit:cover !important;} +.fullscreenvideo .fullcoveredvideo video { object-fit:cover !important;} + +.tp-video-controls { + position: absolute; + bottom: 0; + left: 0; + right: 0; + padding: 5px; + opacity: 0; + -webkit-transition: opacity .3s; + -moz-transition: opacity .3s; + -o-transition: opacity .3s; + -ms-transition: opacity .3s; + transition: opacity .3s; + background-image: linear-gradient(to bottom, rgb(0,0,0) 13%, rgb(50,50,50) 100%); + background-image: -o-linear-gradient(bottom, rgb(0,0,0) 13%, rgb(50,50,50) 100%); + background-image: -moz-linear-gradient(bottom, rgb(0,0,0) 13%, rgb(50,50,50) 100%); + background-image: -webkit-linear-gradient(bottom, rgb(0,0,0) 13%, rgb(50,50,50) 100%); + background-image: -ms-linear-gradient(bottom, rgb(0,0,0) 13%, rgb(50,50,50) 100%); + background-image: -webkit-gradient(linear,left bottom,left top,color-stop(0.13, rgb(0,0,0)),color-stop(1, rgb(50,50,50))); + display:table;max-width:100%; overflow:hidden;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box; +} + +.tp-caption:hover .tp-video-controls { opacity: .9;} + +.tp-video-button { + background: rgba(0,0,0,.5); + border: 0; + color: #EEE; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + -o-border-radius: 3px; + border-radius: 3px; + cursor:pointer; + line-height:12px; + font-size:12px; + color:#fff; + padding:0px; + margin:0px; + outline: none; + } +.tp-video-button:hover { cursor: pointer;} + + +.tp-video-button-wrap, +.tp-video-seek-bar-wrap, +.tp-video-vol-bar-wrap { padding:0px 5px;display:table-cell; vertical-align: middle;} + +.tp-video-seek-bar-wrap { width:80%} +.tp-video-vol-bar-wrap { width:20%} + +.tp-volume-bar, +.tp-seek-bar { width:100%; cursor: pointer; outline:none; line-height:12px;margin:0; padding:0;} + + +.rs-fullvideo-cover { width:100%;height:100%;top:0px;left:0px;position: absolute; background:transparent;z-index:5;} + + +.rs-background-video-layer video::-webkit-media-controls { display:none !important;} +.rs-background-video-layer audio::-webkit-media-controls { display:none !important;} + +.tp-audio-html5 .tp-video-controls { opacity: 1 !important; visibility: visible !important} + +/******************************** + - DOTTED OVERLAYS - +*********************************/ +.tp-dottedoverlay { background-repeat:repeat;width:100%;height:100%;position:absolute;top:0px;left:0px;z-index:3} +.tp-dottedoverlay.twoxtwo { background:url(../assets/gridtile.png)} +.tp-dottedoverlay.twoxtwowhite { background:url(../assets/gridtile_white.png)} +.tp-dottedoverlay.threexthree { background:url(../assets/gridtile_3x3.png)} +.tp-dottedoverlay.threexthreewhite { background:url(../assets/gridtile_3x3_white.png)} + + +/****************************** + - SHADOWS - +******************************/ + +.tp-shadowcover { width:100%;height:100%;top:0px;left:0px;background: #fff;position: absolute; z-index: -1;} +.tp-shadow1 { + -webkit-box-shadow: 0 10px 6px -6px rgba(0,0,0,0.8); + -moz-box-shadow: 0 10px 6px -6px rgba(0,0,0,0.8); + box-shadow: 0 10px 6px -6px rgba(0,0,0,0.8); +} + +.tp-shadow2:before, .tp-shadow2:after, +.tp-shadow3:before, .tp-shadow4:after +{ + z-index: -2; + position: absolute; + content: ""; + bottom: 10px; + left: 10px; + width: 50%; + top: 85%; + max-width:300px; + background: transparent; + -webkit-box-shadow: 0 15px 10px rgba(0,0,0,0.8); + -moz-box-shadow: 0 15px 10px rgba(0,0,0,0.8); + box-shadow: 0 15px 10px rgba(0,0,0,0.8); + -webkit-transform: rotate(-3deg); + -moz-transform: rotate(-3deg); + -o-transform: rotate(-3deg); + -ms-transform: rotate(-3deg); + transform: rotate(-3deg); +} + +.tp-shadow2:after, +.tp-shadow4:after +{ + -webkit-transform: rotate(3deg); + -moz-transform: rotate(3deg); + -o-transform: rotate(3deg); + -ms-transform: rotate(3deg); + transform: rotate(3deg); + right: 10px; + left: auto; +} + +.tp-shadow5 +{ + position:relative; + -webkit-box-shadow:0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset; + -moz-box-shadow:0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset; + box-shadow:0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset; +} +.tp-shadow5:before, .tp-shadow5:after +{ + content:""; + position:absolute; + z-index:-2; + -webkit-box-shadow:0 0 25px 0px rgba(0,0,0,0.6); + -moz-box-shadow:0 0 25px 0px rgba(0,0,0,0.6); + box-shadow:0 0 25px 0px rgba(0,0,0,0.6); + top:30%; + bottom:0; + left:20px; + right:20px; + -moz-border-radius:100px / 20px; + border-radius:100px / 20px; +} + +/****************************** + - BUTTONS - +*******************************/ + +.tp-button{ + padding:6px 13px 5px; + border-radius: 3px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + height:30px; + cursor:pointer; + color:#fff !important; text-shadow:0px 1px 1px rgba(0, 0, 0, 0.6) !important; font-size:15px; line-height:45px !important; + font-family: arial, sans-serif; font-weight: bold; letter-spacing: -1px; + text-decoration:none; +} + +.tp-button.big { color:#fff; text-shadow:0px 1px 1px rgba(0, 0, 0, 0.6); font-weight:bold; padding:9px 20px; font-size:19px; line-height:57px !important; } + + +.purchase:hover, +.tp-button:hover, +.tp-button.big:hover { background-position:bottom, 15px 11px} + + +/* BUTTON COLORS */ + +.tp-button.green, .tp-button:hover.green, +.purchase.green, .purchase:hover.green { background-color:#21a117; -webkit-box-shadow: 0px 3px 0px 0px #104d0b; -moz-box-shadow: 0px 3px 0px 0px #104d0b; box-shadow: 0px 3px 0px 0px #104d0b; } + +.tp-button.blue, .tp-button:hover.blue, +.purchase.blue, .purchase:hover.blue { background-color:#1d78cb; -webkit-box-shadow: 0px 3px 0px 0px #0f3e68; -moz-box-shadow: 0px 3px 0px 0px #0f3e68; box-shadow: 0px 3px 0px 0px #0f3e68} + +.tp-button.red, .tp-button:hover.red, +.purchase.red, .purchase:hover.red { background-color:#cb1d1d; -webkit-box-shadow: 0px 3px 0px 0px #7c1212; -moz-box-shadow: 0px 3px 0px 0px #7c1212; box-shadow: 0px 3px 0px 0px #7c1212} + +.tp-button.orange, .tp-button:hover.orange, +.purchase.orange, .purchase:hover.orange { background-color:#ff7700; -webkit-box-shadow: 0px 3px 0px 0px #a34c00; -moz-box-shadow: 0px 3px 0px 0px #a34c00; box-shadow: 0px 3px 0px 0px #a34c00} + +.tp-button.darkgrey,.tp-button.grey, +.tp-button:hover.darkgrey,.tp-button:hover.grey, +.purchase.darkgrey, .purchase:hover.darkgrey { background-color:#555; -webkit-box-shadow: 0px 3px 0px 0px #222; -moz-box-shadow: 0px 3px 0px 0px #222; box-shadow: 0px 3px 0px 0px #222} + +.tp-button.lightgrey, .tp-button:hover.lightgrey, +.purchase.lightgrey, .purchase:hover.lightgrey { background-color:#888; -webkit-box-shadow: 0px 3px 0px 0px #555; -moz-box-shadow: 0px 3px 0px 0px #555; box-shadow: 0px 3px 0px 0px #555} + + + +/* TP BUTTONS DESKTOP SIZE */ + +.rev-btn, +.rev-btn:visited { outline:none !important; box-shadow:none !important; text-decoration: none !important; line-height: 44px; font-size: 17px; font-weight: 500; padding: 12px 35px; box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box; font-family: "Roboto", sans-serif; cursor: pointer;} + +.rev-btn.rev-uppercase, +.rev-btn.rev-uppercase:visited { text-transform: uppercase; letter-spacing: 1px; font-size: 15px; font-weight: 900; } + +.rev-btn.rev-withicon i { font-size: 15px; font-weight: normal; position: relative; top: 0px; -webkit-transition: all 0.2s ease-out !important; -moz-transition: all 0.2s ease-out !important; -o-transition: all 0.2s ease-out !important; -ms-transition: all 0.2s ease-out !important; margin-left:10px !important;} + +.rev-btn.rev-hiddenicon i { font-size: 15px; font-weight: normal; position: relative; top: 0px; -webkit-transition: all 0.2s ease-out !important; -moz-transition: all 0.2s ease-out !important; -o-transition: all 0.2s ease-out !important; -ms-transition: all 0.2s ease-out !important; opacity: 0; margin-left:0px !important; width:0px !important; } +.rev-btn.rev-hiddenicon:hover i { opacity: 1 !important; margin-left:10px !important; width:auto !important;} + +/* REV BUTTONS MEDIUM */ +.rev-btn.rev-medium, +.rev-btn.rev-medium:visited { line-height: 36px; font-size: 14px; padding: 10px 30px; } + +.rev-btn.rev-medium.rev-withicon i { font-size: 14px; top: 0px; } + +.rev-btn.rev-medium.rev-hiddenicon i { font-size: 14px; top: 0px; } + + +/* REV BUTTONS SMALL */ +.rev-btn.rev-small, +.rev-btn.rev-small:visited { line-height: 28px; font-size: 12px; padding: 7px 20px; } + +.rev-btn.rev-small.rev-withicon i { font-size: 12px; top: 0px; } + +.rev-btn.rev-small.rev-hiddenicon i { font-size: 12px; top: 0px; } + + +/* ROUNDING OPTIONS */ +.rev-maxround { -webkit-border-radius: 30px; -moz-border-radius: 30px; border-radius: 30px; } +.rev-minround { -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px; } + + +/* BURGER BUTTON */ +.rev-burger { + position: relative; + width: 60px; + height: 60px; + box-sizing: border-box; + padding: 22px 0 0 14px; + border-radius: 50%; + border: 1px solid rgba(51,51,51,0.25); + tap-highlight-color: transparent; + cursor: pointer; +} +.rev-burger span { + display: block; + width: 30px; + height: 3px; + background: #333; + transition: .7s; + pointer-events: none; + transform-style: flat !important; +} +.rev-burger span:nth-child(2) { + margin: 3px 0; +} + +#dialog_addbutton .rev-burger:hover :first-child, +.open .rev-burger :first-child, +.open.rev-burger :first-child { + transform: translateY(6px) rotate(-45deg); + -webkit-transform: translateY(6px) rotate(-45deg); +} +#dialog_addbutton .rev-burger:hover :nth-child(2), +.open .rev-burger :nth-child(2), +.open.rev-burger :nth-child(2) { + transform: rotate(-45deg); + -webkit-transform: rotate(-45deg); + opacity: 0; +} +#dialog_addbutton .rev-burger:hover :last-child, +.open .rev-burger :last-child, +.open.rev-burger :last-child { + transform: translateY(-6px) rotate(-135deg); + -webkit-transform: translateY(-6px) rotate(-135deg); +} + +.rev-burger.revb-white { + border: 2px solid rgba(255,255,255,0.2); +} +.rev-burger.revb-white span { + background: #fff; +} +.rev-burger.revb-whitenoborder { + border: 0; +} +.rev-burger.revb-whitenoborder span { + background: #fff; +} +.rev-burger.revb-darknoborder { + border: 0; +} +.rev-burger.revb-darknoborder span { + background: #333; +} + +.rev-burger.revb-whitefull { + background: #fff; + border:none; +} + +.rev-burger.revb-whitefull span { + background:#333; +} + +.rev-burger.revb-darkfull { + background: #333; + border:none; +} + +.rev-burger.revb-darkfull span { + background:#fff; +} + + +/* SCROLL DOWN BUTTON */ +@-webkit-keyframes rev-ani-mouse { + 0% { opacity: 1;top: 29%;} + 15% {opacity: 1;top: 50%;} + 50% { opacity: 0;top: 50%;} + 100% { opacity: 0;top: 29%;} +} +@-moz-keyframes rev-ani-mouse { + 0% {opacity: 1;top: 29%;} + 15% {opacity: 1;top: 50%;} + 50% {opacity: 0;top: 50%;} + 100% {opacity: 0;top: 29%;} +} +@keyframes rev-ani-mouse { + 0% {opacity: 1;top: 29%;} + 15% {opacity: 1;top: 50%;} + 50% {opacity: 0;top: 50%;} + 100% {opacity: 0;top: 29%;} +} +.rev-scroll-btn { + display: inline-block; + position: relative; + left: 0; + right: 0; + text-align: center; + cursor: pointer; + width:35px; + height:55px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + border: 3px solid white; + border-radius: 23px; +} +.rev-scroll-btn > * { + display: inline-block; + line-height: 18px; + font-size: 13px; + font-weight: normal; + color: #7f8c8d; + color: #ffffff; + font-family: "proxima-nova", "Helvetica Neue", Helvetica, Arial, sans-serif; + letter-spacing: 2px; +} +.rev-scroll-btn > *:hover, +.rev-scroll-btn > *:focus, +.rev-scroll-btn > *.active { + color: #ffffff; +} +.rev-scroll-btn > *:hover, +.rev-scroll-btn > *:focus, +.rev-scroll-btn > *:active, +.rev-scroll-btn > *.active { + filter: alpha(opacity=80); +} + +.rev-scroll-btn.revs-fullwhite { + background:#fff; +} + +.rev-scroll-btn.revs-fullwhite span { + background: #333; +} + +.rev-scroll-btn.revs-fulldark { + background:#333; + border:none; +} + +.rev-scroll-btn.revs-fulldark span { + background: #fff; +} + +.rev-scroll-btn span { + position: absolute; + display: block; + top: 29%; + left: 50%; + width: 8px; + height: 8px; + margin: -4px 0 0 -4px; + background: white; + border-radius: 50%; + -webkit-animation: rev-ani-mouse 2.5s linear infinite; + -moz-animation: rev-ani-mouse 2.5s linear infinite; + animation: rev-ani-mouse 2.5s linear infinite; +} + +.rev-scroll-btn.revs-dark { + border-color:#333; +} +.rev-scroll-btn.revs-dark span { + background: #333; +} + +.rev-control-btn { + position: relative; + display: inline-block; + z-index: 5; + color: #FFF; + font-size: 20px; + line-height: 60px; + font-weight: 400; + font-style: normal; + font-family: Raleway; + text-decoration: none; + text-align: center; + background-color: #000; + border-radius: 50px; + text-shadow: none; + background-color: rgba(0, 0, 0, 0.50); + width:60px; + height:60px; + box-sizing: border-box; + cursor: pointer; +} + +.rev-cbutton-dark-sr { + border-radius: 3px; +} + +.rev-cbutton-light { + color: #333; + background-color: rgba(255,255,255, 0.75); +} + +.rev-cbutton-light-sr { + color: #333; + border-radius: 3px; + background-color: rgba(255,255,255, 0.75); +} + + +.rev-sbutton { + line-height: 37px; + width:37px; + height:37px; +} + +.rev-sbutton-blue { + background-color: #3B5998 +} +.rev-sbutton-lightblue { + background-color: #00A0D1; +} +.rev-sbutton-red { + background-color: #DD4B39; +} + + + + +/************************************ +- TP BANNER TIMER - +*************************************/ +.tp-bannertimer { visibility: hidden; width:100%; height:5px; /*background:url(../assets/timer.png);*/ background: #fff; background: rgba(0,0,0,0.15); position:absolute; z-index:200; top:0px} +.tp-bannertimer.tp-bottom { top:auto; bottom:0px !important;height:5px} + + +/********************************************* +- BASIC SETTINGS FOR THE BANNER - +***********************************************/ + + .tp-simpleresponsive img { + -moz-user-select: none; + -khtml-user-select: none; + -webkit-user-select: none; + -o-user-select: none; +} + +.tp-caption img { + background: transparent; + -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF)"; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF); + zoom: 1; +} + + + +/* CAPTION SLIDELINK **/ +.caption.slidelink a div, +.tp-caption.slidelink a div { width:3000px; height:1500px; background:url(../assets/coloredbg.png) repeat} +.tp-caption.slidelink a span{ background:url(../assets/coloredbg.png) repeat} +.tp-shape { width:100%;height:100%;} + + + +/********************************************* +- WOOCOMMERCE STYLES - +***********************************************/ + +.tp-caption .rs-starring { display: inline-block} +.tp-caption .rs-starring .star-rating { float: none;} + +.tp-caption .rs-starring .star-rating { + color: #FFC321 !important; + display: inline-block; + vertical-align: top; +} + +.tp-caption .rs-starring .star-rating, +.tp-caption .rs-starring-page .star-rating { + position: relative; + height: 1em; + + width: 5.4em; + font-family: star; +} + +.tp-caption .rs-starring .star-rating:before, +.tp-caption .rs-starring-page .star-rating:before { + content: "\73\73\73\73\73"; + color: #E0DADF; + float: left; + top: 0; + left: 0; + position: absolute; +} + +.tp-caption .rs-starring .star-rating span { + overflow: hidden; + float: left; + top: 0; + left: 0; + position: absolute; + padding-top: 1.5em; + font-size: 1em !important; +} + +.tp-caption .rs-starring .star-rating span:before, +.tp-caption .rs-starring .star-rating span:before { + content: "\53\53\53\53\53"; + top: 0; + position: absolute; + left: 0; +} + +.tp-caption .rs-starring .star-rating { + color: #FFC321 !important; +} + + +.tp-caption .rs-starring .star-rating, +.tp-caption .rs-starring-page .star-rating { + + font-size: 1em !important; + font-family: star; +} + + +/****************************** + - LOADER FORMS - +********************************/ + +.tp-loader { + top:50%; left:50%; + z-index:10000; + position:absolute; +} + +.tp-loader.spinner0 { + width: 40px; + height: 40px; + background-color: #fff; + background:url(../images/loader.gif) no-repeat center center; + box-shadow: 0px 0px 20px 0px rgba(0,0,0,0.15); + -webkit-box-shadow: 0px 0px 20px 0px rgba(0,0,0,0.15); + margin-top:-20px; + margin-left:-20px; + -webkit-animation: tp-rotateplane 1.2s infinite ease-in-out; + animation: tp-rotateplane 1.2s infinite ease-in-out; + border-radius: 3px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; +} + + +.tp-loader.spinner1 { + width: 40px; + height: 40px; + background-color: #fff; + box-shadow: 0px 0px 20px 0px rgba(0,0,0,0.15); + -webkit-box-shadow: 0px 0px 20px 0px rgba(0,0,0,0.15); + margin-top:-20px; + margin-left:-20px; + -webkit-animation: tp-rotateplane 1.2s infinite ease-in-out; + animation: tp-rotateplane 1.2s infinite ease-in-out; + border-radius: 3px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; +} + + + +.tp-loader.spinner5 { + background:url(../assets/loader.gif) no-repeat 10px 10px; + background-color:#fff; + margin:-22px -22px; + width:44px;height:44px; + border-radius: 3px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; +} + + +@-webkit-keyframes tp-rotateplane { + 0% { -webkit-transform: perspective(120px) } + 50% { -webkit-transform: perspective(120px) rotateY(180deg) } + 100% { -webkit-transform: perspective(120px) rotateY(180deg) rotateX(180deg) } +} + +@keyframes tp-rotateplane { + 0% { transform: perspective(120px) rotateX(0deg) rotateY(0deg);} + 50% { transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);} + 100% { transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);} +} + + +.tp-loader.spinner2 { + width: 40px; + height: 40px; + margin-top:-20px;margin-left:-20px; + background-color: #ff0000; + box-shadow: 0px 0px 20px 0px rgba(0,0,0,0.15); + -webkit-box-shadow: 0px 0px 20px 0px rgba(0,0,0,0.15); + border-radius: 100%; + -webkit-animation: tp-scaleout 1.0s infinite ease-in-out; + animation: tp-scaleout 1.0s infinite ease-in-out; +} + +@-webkit-keyframes tp-scaleout { + 0% { -webkit-transform: scale(0.0) } + 100% {-webkit-transform: scale(1.0); opacity: 0;} +} + +@keyframes tp-scaleout { + 0% {transform: scale(0.0);-webkit-transform: scale(0.0);} + 100% {transform: scale(1.0);-webkit-transform: scale(1.0);opacity: 0;} +} + + +.tp-loader.spinner3 { + margin: -9px 0px 0px -35px; + width: 70px; + text-align: center; +} + +.tp-loader.spinner3 .bounce1, +.tp-loader.spinner3 .bounce2, +.tp-loader.spinner3 .bounce3 { + width: 18px; + height: 18px; + background-color: #fff; + box-shadow: 0px 0px 20px 0px rgba(0,0,0,0.15); + -webkit-box-shadow: 0px 0px 20px 0px rgba(0,0,0,0.15); + border-radius: 100%; + display: inline-block; + -webkit-animation: tp-bouncedelay 1.4s infinite ease-in-out; + animation: tp-bouncedelay 1.4s infinite ease-in-out; + /* Prevent first frame from flickering when animation starts */ + -webkit-animation-fill-mode: both; + animation-fill-mode: both; +} + +.tp-loader.spinner3 .bounce1 { + -webkit-animation-delay: -0.32s; + animation-delay: -0.32s; +} + +.tp-loader.spinner3 .bounce2 { + -webkit-animation-delay: -0.16s; + animation-delay: -0.16s; +} + +@-webkit-keyframes tp-bouncedelay { + 0%, 80%, 100% { -webkit-transform: scale(0.0) } + 40% { -webkit-transform: scale(1.0) } +} + +@keyframes tp-bouncedelay { + 0%, 80%, 100% {transform: scale(0.0);} + 40% {transform: scale(1.0);} +} + + + + +.tp-loader.spinner4 { + margin: -20px 0px 0px -20px; + width: 40px; + height: 40px; + text-align: center; + -webkit-animation: tp-rotate 2.0s infinite linear; + animation: tp-rotate 2.0s infinite linear; +} + +.tp-loader.spinner4 .dot1, +.tp-loader.spinner4 .dot2 { + width: 60%; + height: 60%; + display: inline-block; + position: absolute; + top: 0; + background-color: #fff; + border-radius: 100%; + -webkit-animation: tp-bounce 2.0s infinite ease-in-out; + animation: tp-bounce 2.0s infinite ease-in-out; + box-shadow: 0px 0px 20px 0px rgba(0,0,0,0.15); + -webkit-box-shadow: 0px 0px 20px 0px rgba(0,0,0,0.15); +} + +.tp-loader.spinner4 .dot2 { + top: auto; + bottom: 0px; + -webkit-animation-delay: -1.0s; + animation-delay: -1.0s; +} + +@-webkit-keyframes tp-rotate { 100% { -webkit-transform: rotate(360deg) }} +@keyframes tp-rotate { 100% { transform: rotate(360deg); -webkit-transform: rotate(360deg) }} + +@-webkit-keyframes tp-bounce { + 0%, 100% { -webkit-transform: scale(0.0) } + 50% { -webkit-transform: scale(1.0) } +} + +@keyframes tp-bounce { + 0%, 100% {transform: scale(0.0);} + 50% { transform: scale(1.0);} +} + + + +/*********************************************** + - STANDARD NAVIGATION SETTINGS +***********************************************/ + + +.tp-thumbs.navbar, +.tp-bullets.navbar, +.tp-tabs.navbar { border:none; min-height: 0; margin:0; border-radius: 0; -moz-border-radius:0; -webkit-border-radius:0;} + +.tp-tabs, +.tp-thumbs, +.tp-bullets { position:absolute; display:block; z-index:1000; top:0px; left:0px;} + +.tp-tab, +.tp-thumb { cursor: pointer; position:absolute;opacity:0.5; box-sizing: border-box;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;} + +.tp-arr-imgholder, +.tp-videoposter, +.tp-thumb-image, +.tp-tab-image { background-position: center center; background-size:cover;width:100%;height:100%; display:block; position:absolute;top:0px;left:0px;} + +.tp-tab:hover, +.tp-tab.selected, +.tp-thumb:hover, +.tp-thumb.selected { opacity:1;} + +.tp-tab-mask, +.tp-thumb-mask { box-sizing:border-box !important; -webkit-box-sizing:border-box !important; -moz-box-sizing:border-box !important} + +.tp-tabs, +.tp-thumbs { box-sizing:content-box !important; -webkit-box-sizing:content-box !important; -moz-box-sizing: content-box !important} + +.tp-bullet { width:15px;height:15px; position:absolute; background:#fff; background:rgba(255,255,255,0.3); cursor: pointer;} +.tp-bullet.selected, +.tp-bullet:hover { background:#fff;} + +.tp-bannertimer { background:#000; background:rgba(0,0,0,0.15); height:5px;} + + +.tparrows { cursor:pointer; background:#000; background:rgba(0,0,0,0.5); width:40px;height:40px;position:absolute; display:block; z-index:1000; } +.tparrows:hover { background:#000;} +.tparrows:before { font-family: "revicons"; font-size:15px; color:#fff; display:block; line-height: 40px; text-align: center;} +.tparrows.tp-leftarrow:before { content: '\e824'; } +.tparrows.tp-rightarrow:before { content: '\e825'; } + + + +/*************************** + - KEN BURNS FIXES - +***************************/ + +body.rtl .tp-kbimg {left: 0 !important} + + + +/*************************** + - 3D SHADOW MODE - +***************************/ + +.dddwrappershadow { box-shadow:0 45px 100px rgba(0, 0, 0, 0.4);} + +/******************* + - DEBUG MODE - +*******************/ + +.hglayerinfo { position: fixed; + bottom: 0px; + left: 0px; + color: #FFF; + font-size: 12px; + line-height: 20px; + font-weight: 600; + background: rgba(0, 0, 0, 0.75); + padding: 5px 10px; + z-index: 2000; + white-space: normal;} +.hginfo { position:absolute;top:-2px;left:-2px;color:#e74c3c;font-size:12px;font-weight:600; background:#000;padding:2px 5px;} +.indebugmode .tp-caption:hover { border:1px dashed #c0392b !important;} +.helpgrid { border:2px dashed #c0392b;position:absolute;top:0px;left:0px;z-index:0 } +#revsliderlogloglog { padding:15px;color:#fff;position:fixed; top:0px;left:0px;width:200px;height:150px;background:rgba(0,0,0,0.7); z-index:100000; font-size:10px; overflow:scroll;} + + + + + diff --git a/oldwebsite/assets/fonts/FontAwesome.otf b/oldwebsite/assets/fonts/FontAwesome.otf new file mode 100644 index 0000000..401ec0f Binary files /dev/null and b/oldwebsite/assets/fonts/FontAwesome.otf differ diff --git a/oldwebsite/assets/fonts/flaticon/Flaticon.eot b/oldwebsite/assets/fonts/flaticon/Flaticon.eot new file mode 100644 index 0000000..d8a0e59 Binary files /dev/null and b/oldwebsite/assets/fonts/flaticon/Flaticon.eot differ diff --git a/oldwebsite/assets/fonts/flaticon/Flaticon.svg b/oldwebsite/assets/fonts/flaticon/Flaticon.svg new file mode 100644 index 0000000..7c11a31 --- /dev/null +++ b/oldwebsite/assets/fonts/flaticon/Flaticon.svg @@ -0,0 +1,555 @@ + + + + + +Created by FontForge 20120731 at Tue Jan 10 10:44:41 2017 + By Apache +Created by Apache with FontForge 2.0 (http://fontforge.sf.net) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/oldwebsite/assets/fonts/flaticon/Flaticon.ttf b/oldwebsite/assets/fonts/flaticon/Flaticon.ttf new file mode 100644 index 0000000..4f6348c Binary files /dev/null and b/oldwebsite/assets/fonts/flaticon/Flaticon.ttf differ diff --git a/oldwebsite/assets/fonts/flaticon/Flaticon.woff b/oldwebsite/assets/fonts/flaticon/Flaticon.woff new file mode 100644 index 0000000..9fa79c9 Binary files /dev/null and b/oldwebsite/assets/fonts/flaticon/Flaticon.woff differ diff --git a/oldwebsite/assets/fonts/flaticon/flaticon.css b/oldwebsite/assets/fonts/flaticon/flaticon.css new file mode 100644 index 0000000..a8bdd95 --- /dev/null +++ b/oldwebsite/assets/fonts/flaticon/flaticon.css @@ -0,0 +1,58 @@ + /* + Flaticon icon font: Flaticon + Creation date: 10/01/2017 10:44 + */ + +@font-face { + font-family: "Flaticon"; + src: url("./Flaticon.eot"); + src: url("./Flaticon.eot?#iefix") format("embedded-opentype"), + url("./Flaticon.woff") format("woff"), + url("./Flaticon.ttf") format("truetype"), + url("./Flaticon.svg#Flaticon") format("svg"); + font-weight: normal; + font-style: normal; +} + +@media screen and (-webkit-min-device-pixel-ratio:0) { + @font-face { + font-family: "Flaticon"; + src: url("./Flaticon.svg#Flaticon") format("svg"); + } +} + +[class^="flaticon-"]:before, [class*=" flaticon-"]:before, +[class^="flaticon-"]:after, [class*=" flaticon-"]:after { + font-family: Flaticon; + font-size: 20px; +font-style: normal; +margin-left: 20px; +} + +.flaticon-application:before { content: "\f100"; } +.flaticon-boy-hair-shape:before { content: "\f101"; } +.flaticon-boy-happy-smile:before { content: "\f102"; } +.flaticon-brush:before { content: "\f103"; } +.flaticon-brush-tool:before { content: "\f104"; } +.flaticon-circle:before { content: "\f105"; } +.flaticon-cut:before { content: "\f106"; } +.flaticon-cut-1:before { content: "\f107"; } +.flaticon-hair:before { content: "\f108"; } +.flaticon-hair-dryer-on:before { content: "\f109"; } +.flaticon-japanese-candles:before { content: "\f10a"; } +.flaticon-massage:before { content: "\f10b"; } +.flaticon-mustache-shape:before { content: "\f10c"; } +.flaticon-nail-file:before { content: "\f10d"; } +.flaticon-one-comb:before { content: "\f10e"; } +.flaticon-people:before { content: "\f10f"; } +.flaticon-razor-hair-salon-tool:before { content: "\f110"; } +.flaticon-scissor-and-comb:before { content: "\f111"; } +.flaticon-scissors:before { content: "\f112"; } +.flaticon-scissors-1:before { content: "\f113"; } +.flaticon-scissors-2:before { content: "\f114"; } +.flaticon-scissors-3:before { content: "\f115"; } +.flaticon-scissors-4:before { content: "\f116"; } +.flaticon-scissors-and-comb:before { content: "\f117"; } +.flaticon-scissors-and-comb-1:before { content: "\f118"; } +.flaticon-scissors-opened-tool:before { content: "\f119"; } +.flaticon-tool:before { content: "\f11a"; } \ No newline at end of file diff --git a/oldwebsite/assets/fonts/flaticon/flaticon.html b/oldwebsite/assets/fonts/flaticon/flaticon.html new file mode 100644 index 0000000..82290c2 --- /dev/null +++ b/oldwebsite/assets/fonts/flaticon/flaticon.html @@ -0,0 +1,590 @@ + + + + + + + + Flaticon WebFont + + + + + + + + +
+ + Font Demo +
+ + +
+ +

Instructions

+ + + +
+ + + + +
+ + +
+
.flaticon-application
+
Author: Freepik
+
+ +
+
.flaticon-boy-hair-shape
+
Author: Freepik
+
+ +
+
.flaticon-boy-happy-smile
+
Author: Freepik
+
+ +
+
.flaticon-brush
+
Author: Freepik
+
+ +
+
.flaticon-brush-tool
+
Author: Freepik
+
+ +
+
.flaticon-circle
+
Author: Freepik
+
+ +
+
.flaticon-cut
+
Author: Freepik
+
+ +
+
.flaticon-cut-1
+
Author: Freepik
+
+ +
+
.flaticon-hair
+
Author: Freepik
+
+ +
+
.flaticon-hair-dryer-on
+
Author: Freepik
+
+ +
+
.flaticon-japanese-candles
+
Author: Freepik
+
+ +
+
.flaticon-massage
+
Author: Freepik
+
+ +
+
.flaticon-mustache-shape
+
Author: Freepik
+
+ +
+
.flaticon-nail-file
+ +
+ +
+
.flaticon-one-comb
+
Author: Freepik
+
+ +
+
.flaticon-people
+
Author: Pixel perfect
+
+ +
+
.flaticon-razor-hair-salon-tool
+
Author: Freepik
+
+ +
+
.flaticon-scissor-and-comb
+
Author: Freepik
+
+ +
+
.flaticon-scissors
+
Author: Freepik
+
+ +
+
.flaticon-scissors-1
+
Author: Freepik
+
+ +
+
.flaticon-scissors-2
+
Author: Freepik
+
+ +
+
.flaticon-scissors-3
+
Author: Hanan
+
+ +
+
.flaticon-scissors-4
+
Author: Freepik
+
+ +
+
.flaticon-scissors-and-comb
+
Author: Freepik
+
+ +
+
.flaticon-scissors-and-comb-1
+
Author: Freepik
+
+ +
+
.flaticon-scissors-opened-tool
+
Author: Freepik
+
+ +
+
.flaticon-tool
+
Author: Freepik
+
+ + +
+ + + +
+ +
License and attribution:
Font generated by flaticon.com.

Under CC: Freepik, Pixel perfect, Nikita Golubev, Hanan

+
+
Copy the Attribution License:
+ + + +
+ +
+ +
Examples:
+ +
+

+ + <i class="flaticon-application"></i> +

+
+ +
+

+ + <i class="flaticon-boy-hair-shape"></i> +

+
+ +
+

+ + <i class="flaticon-boy-happy-smile"></i> +

+
+ +
+

+ + <i class="flaticon-brush"></i> +

+
+ + + +
+ + + + + + + \ No newline at end of file diff --git a/oldwebsite/assets/fonts/fontawesome-webfont.eot b/oldwebsite/assets/fonts/fontawesome-webfont.eot new file mode 100644 index 0000000..e9f60ca Binary files /dev/null and b/oldwebsite/assets/fonts/fontawesome-webfont.eot differ diff --git a/oldwebsite/assets/fonts/fontawesome-webfont.svg b/oldwebsite/assets/fonts/fontawesome-webfont.svg new file mode 100644 index 0000000..855c845 --- /dev/null +++ b/oldwebsite/assets/fonts/fontawesome-webfont.svg @@ -0,0 +1,2671 @@ + + + + +Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 + By ,,, +Copyright Dave Gandy 2016. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/oldwebsite/assets/fonts/fontawesome-webfont.ttf b/oldwebsite/assets/fonts/fontawesome-webfont.ttf new file mode 100644 index 0000000..35acda2 Binary files /dev/null and b/oldwebsite/assets/fonts/fontawesome-webfont.ttf differ diff --git a/oldwebsite/assets/fonts/fontawesome-webfont.woff b/oldwebsite/assets/fonts/fontawesome-webfont.woff new file mode 100644 index 0000000..400014a Binary files /dev/null and b/oldwebsite/assets/fonts/fontawesome-webfont.woff differ diff --git a/oldwebsite/assets/fonts/fontawesome-webfont.woff2 b/oldwebsite/assets/fonts/fontawesome-webfont.woff2 new file mode 100644 index 0000000..4d13fc6 Binary files /dev/null and b/oldwebsite/assets/fonts/fontawesome-webfont.woff2 differ diff --git a/oldwebsite/assets/fonts/glyphicons-halflings-regular.eot b/oldwebsite/assets/fonts/glyphicons-halflings-regular.eot new file mode 100644 index 0000000..b93a495 Binary files /dev/null and b/oldwebsite/assets/fonts/glyphicons-halflings-regular.eot differ diff --git a/oldwebsite/assets/fonts/glyphicons-halflings-regular.svg b/oldwebsite/assets/fonts/glyphicons-halflings-regular.svg new file mode 100644 index 0000000..94fb549 --- /dev/null +++ b/oldwebsite/assets/fonts/glyphicons-halflings-regular.svg @@ -0,0 +1,288 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/oldwebsite/assets/fonts/glyphicons-halflings-regular.ttf b/oldwebsite/assets/fonts/glyphicons-halflings-regular.ttf new file mode 100644 index 0000000..1413fc6 Binary files /dev/null and b/oldwebsite/assets/fonts/glyphicons-halflings-regular.ttf differ diff --git a/oldwebsite/assets/fonts/glyphicons-halflings-regular.woff b/oldwebsite/assets/fonts/glyphicons-halflings-regular.woff new file mode 100644 index 0000000..9e61285 Binary files /dev/null and b/oldwebsite/assets/fonts/glyphicons-halflings-regular.woff differ diff --git a/oldwebsite/assets/fonts/glyphicons-halflings-regular.woff2 b/oldwebsite/assets/fonts/glyphicons-halflings-regular.woff2 new file mode 100644 index 0000000..64539b5 Binary files /dev/null and b/oldwebsite/assets/fonts/glyphicons-halflings-regular.woff2 differ diff --git a/oldwebsite/assets/images/background/bg-1.jpg b/oldwebsite/assets/images/background/bg-1.jpg new file mode 100644 index 0000000..7bdc5b9 Binary files /dev/null and b/oldwebsite/assets/images/background/bg-1.jpg differ diff --git a/oldwebsite/assets/images/background/bg-1.png b/oldwebsite/assets/images/background/bg-1.png new file mode 100644 index 0000000..5ebc2e7 Binary files /dev/null and b/oldwebsite/assets/images/background/bg-1.png differ diff --git a/oldwebsite/assets/images/background/bg-2.png b/oldwebsite/assets/images/background/bg-2.png new file mode 100644 index 0000000..8839c1f Binary files /dev/null and b/oldwebsite/assets/images/background/bg-2.png differ diff --git a/oldwebsite/assets/images/background/bg-3.jpg b/oldwebsite/assets/images/background/bg-3.jpg new file mode 100644 index 0000000..9013149 Binary files /dev/null and b/oldwebsite/assets/images/background/bg-3.jpg differ diff --git a/oldwebsite/assets/images/background/bg-4.jpg b/oldwebsite/assets/images/background/bg-4.jpg new file mode 100644 index 0000000..898a9d0 Binary files /dev/null and b/oldwebsite/assets/images/background/bg-4.jpg differ diff --git a/oldwebsite/assets/images/background/bg-5.jpg b/oldwebsite/assets/images/background/bg-5.jpg new file mode 100644 index 0000000..f8f956c Binary files /dev/null and b/oldwebsite/assets/images/background/bg-5.jpg differ diff --git a/oldwebsite/assets/images/feedback/feedback-1.jpg b/oldwebsite/assets/images/feedback/feedback-1.jpg new file mode 100644 index 0000000..7a5814e Binary files /dev/null and b/oldwebsite/assets/images/feedback/feedback-1.jpg differ diff --git a/oldwebsite/assets/images/feedback/feedback-2.jpg b/oldwebsite/assets/images/feedback/feedback-2.jpg new file mode 100644 index 0000000..b568bce Binary files /dev/null and b/oldwebsite/assets/images/feedback/feedback-2.jpg differ diff --git a/oldwebsite/assets/images/feedback/feedback-3.jpg b/oldwebsite/assets/images/feedback/feedback-3.jpg new file mode 100644 index 0000000..75fe9b7 Binary files /dev/null and b/oldwebsite/assets/images/feedback/feedback-3.jpg differ diff --git a/oldwebsite/assets/images/hair-style/hair-style-1.jpg b/oldwebsite/assets/images/hair-style/hair-style-1.jpg new file mode 100644 index 0000000..50d05ef Binary files /dev/null and b/oldwebsite/assets/images/hair-style/hair-style-1.jpg differ diff --git a/oldwebsite/assets/images/hair-style/hair-style-2.jpg b/oldwebsite/assets/images/hair-style/hair-style-2.jpg new file mode 100644 index 0000000..1f4fe75 Binary files /dev/null and b/oldwebsite/assets/images/hair-style/hair-style-2.jpg differ diff --git a/oldwebsite/assets/images/hair-style/hair-style-3.jpg b/oldwebsite/assets/images/hair-style/hair-style-3.jpg new file mode 100644 index 0000000..bde90f5 Binary files /dev/null and b/oldwebsite/assets/images/hair-style/hair-style-3.jpg differ diff --git a/oldwebsite/assets/images/hair-style/hair-style-4.jpg b/oldwebsite/assets/images/hair-style/hair-style-4.jpg new file mode 100644 index 0000000..219c1f0 Binary files /dev/null and b/oldwebsite/assets/images/hair-style/hair-style-4.jpg differ diff --git a/oldwebsite/assets/images/hair-style/hair-style-5.jpg b/oldwebsite/assets/images/hair-style/hair-style-5.jpg new file mode 100644 index 0000000..f6856c7 Binary files /dev/null and b/oldwebsite/assets/images/hair-style/hair-style-5.jpg differ diff --git a/oldwebsite/assets/images/hair-style/hair-style-6.jpg b/oldwebsite/assets/images/hair-style/hair-style-6.jpg new file mode 100644 index 0000000..9ade8ad Binary files /dev/null and b/oldwebsite/assets/images/hair-style/hair-style-6.jpg differ diff --git a/oldwebsite/assets/images/hair-style/hair-style-7.jpg b/oldwebsite/assets/images/hair-style/hair-style-7.jpg new file mode 100644 index 0000000..023b19c Binary files /dev/null and b/oldwebsite/assets/images/hair-style/hair-style-7.jpg differ diff --git a/oldwebsite/assets/images/hair-style/hair-style-8.jpg b/oldwebsite/assets/images/hair-style/hair-style-8.jpg new file mode 100644 index 0000000..4825c9d Binary files /dev/null and b/oldwebsite/assets/images/hair-style/hair-style-8.jpg differ diff --git a/oldwebsite/assets/images/others/about-us-image.jpg b/oldwebsite/assets/images/others/about-us-image.jpg new file mode 100644 index 0000000..83f327d Binary files /dev/null and b/oldwebsite/assets/images/others/about-us-image.jpg differ diff --git a/oldwebsite/assets/images/others/bg-1.jpg b/oldwebsite/assets/images/others/bg-1.jpg new file mode 100644 index 0000000..e9b4120 Binary files /dev/null and b/oldwebsite/assets/images/others/bg-1.jpg differ diff --git a/oldwebsite/assets/images/others/c2a-1.jpg b/oldwebsite/assets/images/others/c2a-1.jpg new file mode 100644 index 0000000..86be4a9 Binary files /dev/null and b/oldwebsite/assets/images/others/c2a-1.jpg differ diff --git a/oldwebsite/assets/images/others/c2a-2.jpg b/oldwebsite/assets/images/others/c2a-2.jpg new file mode 100644 index 0000000..cdf2185 Binary files /dev/null and b/oldwebsite/assets/images/others/c2a-2.jpg differ diff --git a/oldwebsite/assets/images/others/footer-logo.png b/oldwebsite/assets/images/others/footer-logo.png new file mode 100644 index 0000000..31bc98f Binary files /dev/null and b/oldwebsite/assets/images/others/footer-logo.png differ diff --git a/oldwebsite/assets/images/others/mass-head-bg-1.jpg b/oldwebsite/assets/images/others/mass-head-bg-1.jpg new file mode 100644 index 0000000..fa96ad6 Binary files /dev/null and b/oldwebsite/assets/images/others/mass-head-bg-1.jpg differ diff --git a/oldwebsite/assets/images/others/mass-head-bg-2.jpg b/oldwebsite/assets/images/others/mass-head-bg-2.jpg new file mode 100644 index 0000000..ea3ac97 Binary files /dev/null and b/oldwebsite/assets/images/others/mass-head-bg-2.jpg differ diff --git a/oldwebsite/assets/images/others/mass-head-bg-3.jpg b/oldwebsite/assets/images/others/mass-head-bg-3.jpg new file mode 100644 index 0000000..2a3a030 Binary files /dev/null and b/oldwebsite/assets/images/others/mass-head-bg-3.jpg differ diff --git a/oldwebsite/assets/images/others/mass-head-logo.png b/oldwebsite/assets/images/others/mass-head-logo.png new file mode 100644 index 0000000..247a20b Binary files /dev/null and b/oldwebsite/assets/images/others/mass-head-logo.png differ diff --git a/oldwebsite/assets/images/others/scissor.png b/oldwebsite/assets/images/others/scissor.png new file mode 100644 index 0000000..17f1a9f Binary files /dev/null and b/oldwebsite/assets/images/others/scissor.png differ diff --git a/oldwebsite/assets/images/others/shaving.jpg b/oldwebsite/assets/images/others/shaving.jpg new file mode 100644 index 0000000..a772a72 Binary files /dev/null and b/oldwebsite/assets/images/others/shaving.jpg differ diff --git a/oldwebsite/assets/images/others/stylist-1.png b/oldwebsite/assets/images/others/stylist-1.png new file mode 100644 index 0000000..1076fe5 Binary files /dev/null and b/oldwebsite/assets/images/others/stylist-1.png differ diff --git a/oldwebsite/assets/images/others/stylist-2.png b/oldwebsite/assets/images/others/stylist-2.png new file mode 100644 index 0000000..034a5ac Binary files /dev/null and b/oldwebsite/assets/images/others/stylist-2.png differ diff --git a/oldwebsite/assets/images/others/tattoo.jpg b/oldwebsite/assets/images/others/tattoo.jpg new file mode 100644 index 0000000..68b0a51 Binary files /dev/null and b/oldwebsite/assets/images/others/tattoo.jpg differ diff --git a/oldwebsite/assets/images/others/triming.jpg b/oldwebsite/assets/images/others/triming.jpg new file mode 100644 index 0000000..3a5a6d5 Binary files /dev/null and b/oldwebsite/assets/images/others/triming.jpg differ diff --git a/oldwebsite/assets/images/others/white-logo.png b/oldwebsite/assets/images/others/white-logo.png new file mode 100644 index 0000000..e1a6d37 Binary files /dev/null and b/oldwebsite/assets/images/others/white-logo.png differ diff --git a/oldwebsite/assets/images/service/barbe.jpg b/oldwebsite/assets/images/service/barbe.jpg new file mode 100644 index 0000000..bfbd35e Binary files /dev/null and b/oldwebsite/assets/images/service/barbe.jpg differ diff --git a/oldwebsite/assets/images/service/bullet.jpg b/oldwebsite/assets/images/service/bullet.jpg new file mode 100644 index 0000000..7c0fae9 Binary files /dev/null and b/oldwebsite/assets/images/service/bullet.jpg differ diff --git a/oldwebsite/assets/images/service/coloration.jpg b/oldwebsite/assets/images/service/coloration.jpg new file mode 100644 index 0000000..c14aea9 Binary files /dev/null and b/oldwebsite/assets/images/service/coloration.jpg differ diff --git a/oldwebsite/assets/images/service/enfant.jpg b/oldwebsite/assets/images/service/enfant.jpg new file mode 100644 index 0000000..b6a76fe Binary files /dev/null and b/oldwebsite/assets/images/service/enfant.jpg differ diff --git a/oldwebsite/assets/images/service/homme1.jpg b/oldwebsite/assets/images/service/homme1.jpg new file mode 100644 index 0000000..91ef80a Binary files /dev/null and b/oldwebsite/assets/images/service/homme1.jpg differ diff --git a/oldwebsite/assets/images/service/homme2.jpg b/oldwebsite/assets/images/service/homme2.jpg new file mode 100644 index 0000000..9bdf54f Binary files /dev/null and b/oldwebsite/assets/images/service/homme2.jpg differ diff --git a/oldwebsite/assets/images/service/moustache.jpg b/oldwebsite/assets/images/service/moustache.jpg new file mode 100644 index 0000000..8a13d07 Binary files /dev/null and b/oldwebsite/assets/images/service/moustache.jpg differ diff --git a/oldwebsite/assets/images/service/rasage.jpg b/oldwebsite/assets/images/service/rasage.jpg new file mode 100644 index 0000000..dc8c2a6 Binary files /dev/null and b/oldwebsite/assets/images/service/rasage.jpg differ diff --git a/oldwebsite/assets/images/service/service (1).jpg b/oldwebsite/assets/images/service/service (1).jpg new file mode 100644 index 0000000..97e65ae Binary files /dev/null and b/oldwebsite/assets/images/service/service (1).jpg differ diff --git a/oldwebsite/assets/images/service/service (10).jpg b/oldwebsite/assets/images/service/service (10).jpg new file mode 100644 index 0000000..97e65ae Binary files /dev/null and b/oldwebsite/assets/images/service/service (10).jpg differ diff --git a/oldwebsite/assets/images/service/service (4).jpg b/oldwebsite/assets/images/service/service (4).jpg new file mode 100644 index 0000000..97e65ae Binary files /dev/null and b/oldwebsite/assets/images/service/service (4).jpg differ diff --git a/oldwebsite/assets/images/service/service (6).jpg b/oldwebsite/assets/images/service/service (6).jpg new file mode 100644 index 0000000..97e65ae Binary files /dev/null and b/oldwebsite/assets/images/service/service (6).jpg differ diff --git a/oldwebsite/assets/images/service/service (9).jpg b/oldwebsite/assets/images/service/service (9).jpg new file mode 100644 index 0000000..97e65ae Binary files /dev/null and b/oldwebsite/assets/images/service/service (9).jpg differ diff --git a/oldwebsite/assets/images/service/service-(1).jpg b/oldwebsite/assets/images/service/service-(1).jpg new file mode 100644 index 0000000..97e65ae Binary files /dev/null and b/oldwebsite/assets/images/service/service-(1).jpg differ diff --git a/oldwebsite/assets/images/service/service-(10).jpg b/oldwebsite/assets/images/service/service-(10).jpg new file mode 100644 index 0000000..688cb64 Binary files /dev/null and b/oldwebsite/assets/images/service/service-(10).jpg differ diff --git a/oldwebsite/assets/images/service/service-(4).jpg b/oldwebsite/assets/images/service/service-(4).jpg new file mode 100644 index 0000000..693f114 Binary files /dev/null and b/oldwebsite/assets/images/service/service-(4).jpg differ diff --git a/oldwebsite/assets/images/service/service-(9).jpg b/oldwebsite/assets/images/service/service-(9).jpg new file mode 100644 index 0000000..2dfec4d Binary files /dev/null and b/oldwebsite/assets/images/service/service-(9).jpg differ diff --git a/oldwebsite/assets/images/service/service-1.jpg b/oldwebsite/assets/images/service/service-1.jpg new file mode 100644 index 0000000..a6d32ac Binary files /dev/null and b/oldwebsite/assets/images/service/service-1.jpg differ diff --git a/oldwebsite/assets/images/service/service-2.jpg b/oldwebsite/assets/images/service/service-2.jpg new file mode 100644 index 0000000..87fe478 Binary files /dev/null and b/oldwebsite/assets/images/service/service-2.jpg differ diff --git a/oldwebsite/assets/images/service/service-3.jpg b/oldwebsite/assets/images/service/service-3.jpg new file mode 100644 index 0000000..0ba378c Binary files /dev/null and b/oldwebsite/assets/images/service/service-3.jpg differ diff --git a/oldwebsite/assets/images/service/service-4.jpg b/oldwebsite/assets/images/service/service-4.jpg new file mode 100644 index 0000000..a082e6c Binary files /dev/null and b/oldwebsite/assets/images/service/service-4.jpg differ diff --git a/oldwebsite/assets/images/service/service-5.jpg b/oldwebsite/assets/images/service/service-5.jpg new file mode 100644 index 0000000..c84fab6 Binary files /dev/null and b/oldwebsite/assets/images/service/service-5.jpg differ diff --git a/oldwebsite/assets/images/service/service-6.jpg b/oldwebsite/assets/images/service/service-6.jpg new file mode 100644 index 0000000..50fd6fd Binary files /dev/null and b/oldwebsite/assets/images/service/service-6.jpg differ diff --git a/oldwebsite/assets/images/service/student1.jpg b/oldwebsite/assets/images/service/student1.jpg new file mode 100644 index 0000000..3f9dbb4 Binary files /dev/null and b/oldwebsite/assets/images/service/student1.jpg differ diff --git a/oldwebsite/assets/images/service/student2.jpg b/oldwebsite/assets/images/service/student2.jpg new file mode 100644 index 0000000..ee35741 Binary files /dev/null and b/oldwebsite/assets/images/service/student2.jpg differ diff --git a/oldwebsite/assets/images/service/tattoo.jpg b/oldwebsite/assets/images/service/tattoo.jpg new file mode 100644 index 0000000..95ec891 Binary files /dev/null and b/oldwebsite/assets/images/service/tattoo.jpg differ diff --git a/oldwebsite/assets/images/service/tattoo1.jpg b/oldwebsite/assets/images/service/tattoo1.jpg new file mode 100644 index 0000000..2b6cd29 Binary files /dev/null and b/oldwebsite/assets/images/service/tattoo1.jpg differ diff --git a/oldwebsite/assets/images/service/tattoo2.jpg b/oldwebsite/assets/images/service/tattoo2.jpg new file mode 100644 index 0000000..158a56b Binary files /dev/null and b/oldwebsite/assets/images/service/tattoo2.jpg differ diff --git a/oldwebsite/assets/images/service/tondeuse.jpg b/oldwebsite/assets/images/service/tondeuse.jpg new file mode 100644 index 0000000..4086019 Binary files /dev/null and b/oldwebsite/assets/images/service/tondeuse.jpg differ diff --git a/oldwebsite/assets/images/service/trimm.jpg b/oldwebsite/assets/images/service/trimm.jpg new file mode 100644 index 0000000..70608ac Binary files /dev/null and b/oldwebsite/assets/images/service/trimm.jpg differ diff --git a/oldwebsite/assets/images/slideshow/cut/32184.jpg b/oldwebsite/assets/images/slideshow/cut/32184.jpg new file mode 100644 index 0000000..05ff740 Binary files /dev/null and b/oldwebsite/assets/images/slideshow/cut/32184.jpg differ diff --git a/oldwebsite/assets/images/slideshow/cut/60771.jpg b/oldwebsite/assets/images/slideshow/cut/60771.jpg new file mode 100644 index 0000000..a9f3eee Binary files /dev/null and b/oldwebsite/assets/images/slideshow/cut/60771.jpg differ diff --git a/oldwebsite/assets/images/slideshow/cut/77316.jpg b/oldwebsite/assets/images/slideshow/cut/77316.jpg new file mode 100644 index 0000000..69a4e07 Binary files /dev/null and b/oldwebsite/assets/images/slideshow/cut/77316.jpg differ diff --git a/oldwebsite/assets/images/slideshow/cut/90518.jpg b/oldwebsite/assets/images/slideshow/cut/90518.jpg new file mode 100644 index 0000000..33ade42 Binary files /dev/null and b/oldwebsite/assets/images/slideshow/cut/90518.jpg differ diff --git a/oldwebsite/assets/images/slideshow/cut/scissor.png b/oldwebsite/assets/images/slideshow/cut/scissor.png new file mode 100644 index 0000000..53412b0 Binary files /dev/null and b/oldwebsite/assets/images/slideshow/cut/scissor.png differ diff --git a/oldwebsite/assets/images/slideshow/cut/slide-0.jpg b/oldwebsite/assets/images/slideshow/cut/slide-0.jpg new file mode 100644 index 0000000..cfb7c1f Binary files /dev/null and b/oldwebsite/assets/images/slideshow/cut/slide-0.jpg differ diff --git a/oldwebsite/assets/images/slideshow/cut/slide-1.jpg b/oldwebsite/assets/images/slideshow/cut/slide-1.jpg new file mode 100644 index 0000000..7d7c26a Binary files /dev/null and b/oldwebsite/assets/images/slideshow/cut/slide-1.jpg differ diff --git a/oldwebsite/assets/images/slideshow/cut/slide-2.jpg b/oldwebsite/assets/images/slideshow/cut/slide-2.jpg new file mode 100644 index 0000000..d07460b Binary files /dev/null and b/oldwebsite/assets/images/slideshow/cut/slide-2.jpg differ diff --git a/oldwebsite/assets/images/slideshow/cut/slide-3.jpg b/oldwebsite/assets/images/slideshow/cut/slide-3.jpg new file mode 100644 index 0000000..1214ead Binary files /dev/null and b/oldwebsite/assets/images/slideshow/cut/slide-3.jpg differ diff --git a/oldwebsite/assets/images/team/dino.jpg b/oldwebsite/assets/images/team/dino.jpg new file mode 100644 index 0000000..f427e4d Binary files /dev/null and b/oldwebsite/assets/images/team/dino.jpg differ diff --git a/oldwebsite/assets/images/team/marc.jpg b/oldwebsite/assets/images/team/marc.jpg new file mode 100644 index 0000000..c9c812c Binary files /dev/null and b/oldwebsite/assets/images/team/marc.jpg differ diff --git a/oldwebsite/assets/images/team/team-dark-1.jpg b/oldwebsite/assets/images/team/team-dark-1.jpg new file mode 100644 index 0000000..95344bc Binary files /dev/null and b/oldwebsite/assets/images/team/team-dark-1.jpg differ diff --git a/oldwebsite/assets/images/team/team-dark-2.jpg b/oldwebsite/assets/images/team/team-dark-2.jpg new file mode 100644 index 0000000..7ea398d Binary files /dev/null and b/oldwebsite/assets/images/team/team-dark-2.jpg differ diff --git a/oldwebsite/assets/images/team/team-dark-3.jpg b/oldwebsite/assets/images/team/team-dark-3.jpg new file mode 100644 index 0000000..f84fc00 Binary files /dev/null and b/oldwebsite/assets/images/team/team-dark-3.jpg differ diff --git a/oldwebsite/assets/images/title-icon/title-icon-1.png b/oldwebsite/assets/images/title-icon/title-icon-1.png new file mode 100644 index 0000000..a59a0bf Binary files /dev/null and b/oldwebsite/assets/images/title-icon/title-icon-1.png differ diff --git a/oldwebsite/assets/images/title-img/title-img-1.png b/oldwebsite/assets/images/title-img/title-img-1.png new file mode 100644 index 0000000..a59a0bf Binary files /dev/null and b/oldwebsite/assets/images/title-img/title-img-1.png differ diff --git a/oldwebsite/assets/images/title-img/title-img-2.png b/oldwebsite/assets/images/title-img/title-img-2.png new file mode 100644 index 0000000..42da5f8 Binary files /dev/null and b/oldwebsite/assets/images/title-img/title-img-2.png differ diff --git a/oldwebsite/assets/images/title-img/title-img-3.png b/oldwebsite/assets/images/title-img/title-img-3.png new file mode 100644 index 0000000..2bf15d3 Binary files /dev/null and b/oldwebsite/assets/images/title-img/title-img-3.png differ diff --git a/oldwebsite/assets/images/title-img/title-img-4.png b/oldwebsite/assets/images/title-img/title-img-4.png new file mode 100644 index 0000000..5145dd6 Binary files /dev/null and b/oldwebsite/assets/images/title-img/title-img-4.png differ diff --git a/oldwebsite/assets/images/title-img/title-img-5.png b/oldwebsite/assets/images/title-img/title-img-5.png new file mode 100644 index 0000000..3b16ffa Binary files /dev/null and b/oldwebsite/assets/images/title-img/title-img-5.png differ diff --git a/oldwebsite/assets/js/booking.js b/oldwebsite/assets/js/booking.js new file mode 100644 index 0000000..e49a9dd --- /dev/null +++ b/oldwebsite/assets/js/booking.js @@ -0,0 +1,66 @@ +(function($) { + $('#book-date').datepicker(); + + $(document).ready(function(){ + $("#booking-form").validator().on("submit", function (event) { + if (event.isDefaultPrevented()) { + // handle the invalid form... + formError(); + submitMSG(false, "All fields are required"); + } else { + // everything looks good! + event.preventDefault(); + submitForm(); + } + }); + }); + + function submitForm(){ + var bDate = $( "#book-date" ).val(); + var bTime = $( "#book-time" ).val(); + var bService = $( "#book-service" ).val(); + var bStylist = $( "#book-stylist" ).val(); + var bName = $( "#book-name" ).val(); + var bPhone = $( "#book-phone" ).val(); + var bEmail = $( "#book-email" ).val(); + + + + $.ajax({ + type: "POST", + + url: "assets/php/booking-form.php", + + data: "bDate=" + bDate + "&bTime=" + bTime + "&bService=" + bService + "&bStylist=" + bStylist + "&bName=" + bName + "&bPhone=" + bPhone + "&bEmail=" + bEmail, + + success : function(text){ + if (text == "success"){ + formSuccess(); + } else { + formError(); + submitMSG(false,text); + } + } + }); + } + + function formSuccess(){ + $("#booking-form")[0].reset(); + submitMSG(true, "Booking Received!") + } + + function formError(){ + $("#booking-form").removeClass().addClass('booking-form shake animated').one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function(){ + $(this).removeClass(); + }); + } + + function submitMSG(valid, msg){ + if(valid){ + var msgClasses = "animated text-center alert alert-success mt15"; + } else { + var msgClasses = "text-center alert alert-danger mt15"; + } + $("#msgalert").removeClass().addClass(msgClasses).text(msg); + } +})(jQuery); diff --git a/oldwebsite/assets/js/contact.js b/oldwebsite/assets/js/contact.js new file mode 100644 index 0000000..d5b135b --- /dev/null +++ b/oldwebsite/assets/js/contact.js @@ -0,0 +1,57 @@ +(function($) { + $(document).ready(function(){ + $("#contact-form").validator().on("submit", function (event) { + if (event.isDefaultPrevented()) { + // handle the invalid form... + formError(); + submitMSG(false, "Fill the form properly. "); + } else { + // everything looks good! + event.preventDefault(); + submitForm(); + } + }); + }); + + function submitForm(){ + var name = $("#name").val(); + var email = $("#email").val(); + var msg_subject = $("#msg_subject").val(); + var message = $("#message").val(); + + + $.ajax({ + type: "POST", + url: "assets/php/contact-form.php", + data: "name=" + name + "&email=" + email + "&msg_subject=" + msg_subject + "&message=" + message, + success : function(text){ + if (text == "success"){ + formSuccess(); + } else { + formError(); + submitMSG(false,text); + } + } + }); + } + + function formSuccess(){ + $("#contact-form")[0].reset(); + submitMSG(true, "Message Submitted!") + } + + function formError(){ + $("#contact-form").removeClass().addClass('booking-form shake animated').one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function(){ + $(this).removeClass(); + }); + } + + function submitMSG(valid, msg){ + if(valid){ + var msgClasses = "animated text-center alert alert-success mt15"; + } else { + var msgClasses = "text-center alert alert-danger mt15"; + } + $("#msgalert").removeClass().addClass(msgClasses).text(msg); + } +})(jQuery); diff --git a/oldwebsite/assets/js/gallery.js b/oldwebsite/assets/js/gallery.js new file mode 100644 index 0000000..47f2306 --- /dev/null +++ b/oldwebsite/assets/js/gallery.js @@ -0,0 +1,28 @@ +(function($) { + "use strict"; + + //when dom is ready + $(document).ready(function(){ + + //gallery start + $('.gallery-item').magnificPopup({ + type: 'image', + mainClass: 'mfp-with-zoom', + gallery:{ + enabled:true + }, + zoom: { + enabled: true, + duration: 300, + easing: 'ease-in-out', + opener: function(openerElement) { + return openerElement.is('img') ? openerElement : openerElement.find('img'); + } + } + }); + //gallery end + + }); + //dom ready end + +})(jQuery); \ No newline at end of file diff --git a/oldwebsite/assets/js/main.js b/oldwebsite/assets/js/main.js new file mode 100644 index 0000000..8640e12 --- /dev/null +++ b/oldwebsite/assets/js/main.js @@ -0,0 +1,121 @@ +(function($) { + "use strict"; + jQuery.noConflict(); + //when dom is ready + $(document).ready(function(){ + + // on scroll event start + $(window).on('scroll', function() { + if ($(window).scrollTop() > 55) { + $('#back-to-top').addClass('reveal'); + } else { + $('#back-to-top').removeClass('reveal'); + } + }); + // on scroll event end + + // revolution slider start + $("#rev_slider_1").show().revolution({ + sliderType:"standard", + sliderLayout:"fullscreen", + dottedOverlay:"none", + delay:20000, + spinner: "spinner4", + stopLoop: 'on', + stopAfterLoops: 0, + stopAtSlide: 1, + navigation: { + keyboardNavigation:"off", + keyboard_direction: "horizontal", + mouseScrollNavigation:"off", + onHoverStop:"off", + touch:{ + touchenabled:"on", + swipe_threshold: 75, + swipe_min_touches: 1, + swipe_direction: "horizontal", + drag_block_vertical: false + }, + arrows: { + enable: true, + style: 'metis', + tmp: '', + rtl: false, + hide_onleave: true, + hide_onmobile: true, + hide_under: 0, + hide_over: 9999, + hide_delay: 200, + hide_delay_mobile: 1200, + left: { + container: 'slider', + h_align: 'left', + v_align: 'center', + h_offset: 20, + v_offset: 0 + }, + right: { + container: 'slider', + h_align: 'right', + v_align: 'center', + h_offset: 20, + v_offset: 0 + } + }, + }, + responsiveLevels:[1240,1024,778,480], + gridwidth:[1240,1024,778,480], + gridheight:[868,768,960,720], + lazyType:"none", + shadow:0, + shuffle:"off", + autoHeight:"off", + }); + // revolution slider end + + // feedback-carousel start + $(".feedback-carousel").owlCarousel({ + singleItem: true, + }); + $(".p-carousel").owlCarousel({ + items: 4 + }); + // feedback-carousel end + + // animated counter start + $('.counter-box').appear(function(){ + var datacount = $(this).attr('data-count'); + $(this).find('.counter').delay(6000).countTo({ + from: 0, + to: datacount, + speed: 5000, + refreshInterval: 50, + }); + }); + // animated counter end + + // bootstrap accordion start + $('#accordion1').collapse(); + // bootstrap accordion end + + // dropdown menu on mouse hover start + $(".dropdown").on('mouseenter',function() { + $('.nav > .dropdown-menu', this).not('.in .dropdown-menu').stop(true, true).show("400"); + $(this).addClass('open'); + }).on('mouseleave', function() { + $('.nav > .dropdown-menu', this).not('.in .dropdown-menu').stop(true, true).hide("400"); + $(this).removeClass('open'); + }); + // dropdown menu on mouse hover end + + // back to top start + $('#back-to-top').on('click', function(){ + $("html, body").animate({scrollTop: 0}, 500); + return false; + }); + // back to top end + + }); + //dom ready end + +})(jQuery); diff --git a/oldwebsite/assets/js/vendor/bootstrap-datepicker.min.js b/oldwebsite/assets/js/vendor/bootstrap-datepicker.min.js new file mode 100644 index 0000000..48cb452 --- /dev/null +++ b/oldwebsite/assets/js/vendor/bootstrap-datepicker.min.js @@ -0,0 +1,9 @@ +/*! + * Datepicker for Bootstrap v1.6.4 (https://github.com/eternicode/bootstrap-datepicker) + * + * Copyright 2012 Stefan Petre + * Improvements by Andrew Rowls + * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0) + */ +!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):jQuery)}(function(a,b){function c(){return new Date(Date.UTC.apply(Date,arguments))}function d(){var a=new Date;return c(a.getFullYear(),a.getMonth(),a.getDate())}function e(a,b){return a.getUTCFullYear()===b.getUTCFullYear()&&a.getUTCMonth()===b.getUTCMonth()&&a.getUTCDate()===b.getUTCDate()}function f(a){return function(){return this[a].apply(this,arguments)}}function g(a){return a&&!isNaN(a.getTime())}function h(b,c){function d(a,b){return b.toLowerCase()}var e,f=a(b).data(),g={},h=new RegExp("^"+c.toLowerCase()+"([A-Z])");c=new RegExp("^"+c.toLowerCase());for(var i in f)c.test(i)&&(e=i.replace(h,d),g[e]=f[i]);return g}function i(b){var c={};if(q[b]||(b=b.split("-")[0],q[b])){var d=q[b];return a.each(p,function(a,b){b in d&&(c[b]=d[b])}),c}}var j=function(){var b={get:function(a){return this.slice(a)[0]},contains:function(a){for(var b=a&&a.valueOf(),c=0,d=this.length;d>c;c++)if(this[c].valueOf()===b)return c;return-1},remove:function(a){this.splice(a,1)},replace:function(b){b&&(a.isArray(b)||(b=[b]),this.clear(),this.push.apply(this,b))},clear:function(){this.length=0},copy:function(){var a=new j;return a.replace(this),a}};return function(){var c=[];return c.push.apply(c,arguments),a.extend(c,b),c}}(),k=function(b,c){a(b).data("datepicker",this),this._process_options(c),this.dates=new j,this.viewDate=this.o.defaultViewDate,this.focusDate=null,this.element=a(b),this.isInput=this.element.is("input"),this.inputField=this.isInput?this.element:this.element.find("input"),this.component=this.element.hasClass("date")?this.element.find(".add-on, .input-group-addon, .btn"):!1,this.hasInput=this.component&&this.inputField.length,this.component&&0===this.component.length&&(this.component=!1),this.isInline=!this.component&&this.element.is("div"),this.picker=a(r.template),this._check_template(this.o.templates.leftArrow)&&this.picker.find(".prev").html(this.o.templates.leftArrow),this._check_template(this.o.templates.rightArrow)&&this.picker.find(".next").html(this.o.templates.rightArrow),this._buildEvents(),this._attachEvents(),this.isInline?this.picker.addClass("datepicker-inline").appendTo(this.element):this.picker.addClass("datepicker-dropdown dropdown-menu"),this.o.rtl&&this.picker.addClass("datepicker-rtl"),this.viewMode=this.o.startView,this.o.calendarWeeks&&this.picker.find("thead .datepicker-title, tfoot .today, tfoot .clear").attr("colspan",function(a,b){return parseInt(b)+1}),this._allow_update=!1,this.setStartDate(this._o.startDate),this.setEndDate(this._o.endDate),this.setDaysOfWeekDisabled(this.o.daysOfWeekDisabled),this.setDaysOfWeekHighlighted(this.o.daysOfWeekHighlighted),this.setDatesDisabled(this.o.datesDisabled),this.fillDow(),this.fillMonths(),this._allow_update=!0,this.update(),this.showMode(),this.isInline&&this.show()};k.prototype={constructor:k,_resolveViewName:function(a,c){return 0===a||"days"===a||"month"===a?0:1===a||"months"===a||"year"===a?1:2===a||"years"===a||"decade"===a?2:3===a||"decades"===a||"century"===a?3:4===a||"centuries"===a||"millennium"===a?4:c===b?!1:c},_check_template:function(c){try{if(c===b||""===c)return!1;if((c.match(/[<>]/g)||[]).length<=0)return!0;var d=a(c);return d.length>0}catch(e){return!1}},_process_options:function(b){this._o=a.extend({},this._o,b);var e=this.o=a.extend({},this._o),f=e.language;q[f]||(f=f.split("-")[0],q[f]||(f=o.language)),e.language=f,e.startView=this._resolveViewName(e.startView,0),e.minViewMode=this._resolveViewName(e.minViewMode,0),e.maxViewMode=this._resolveViewName(e.maxViewMode,4),e.startView=Math.min(e.startView,e.maxViewMode),e.startView=Math.max(e.startView,e.minViewMode),e.multidate!==!0&&(e.multidate=Number(e.multidate)||!1,e.multidate!==!1&&(e.multidate=Math.max(0,e.multidate))),e.multidateSeparator=String(e.multidateSeparator),e.weekStart%=7,e.weekEnd=(e.weekStart+6)%7;var g=r.parseFormat(e.format);e.startDate!==-(1/0)&&(e.startDate?e.startDate instanceof Date?e.startDate=this._local_to_utc(this._zero_time(e.startDate)):e.startDate=r.parseDate(e.startDate,g,e.language,e.assumeNearbyYear):e.startDate=-(1/0)),e.endDate!==1/0&&(e.endDate?e.endDate instanceof Date?e.endDate=this._local_to_utc(this._zero_time(e.endDate)):e.endDate=r.parseDate(e.endDate,g,e.language,e.assumeNearbyYear):e.endDate=1/0),e.daysOfWeekDisabled=e.daysOfWeekDisabled||[],a.isArray(e.daysOfWeekDisabled)||(e.daysOfWeekDisabled=e.daysOfWeekDisabled.split(/[,\s]*/)),e.daysOfWeekDisabled=a.map(e.daysOfWeekDisabled,function(a){return parseInt(a,10)}),e.daysOfWeekHighlighted=e.daysOfWeekHighlighted||[],a.isArray(e.daysOfWeekHighlighted)||(e.daysOfWeekHighlighted=e.daysOfWeekHighlighted.split(/[,\s]*/)),e.daysOfWeekHighlighted=a.map(e.daysOfWeekHighlighted,function(a){return parseInt(a,10)}),e.datesDisabled=e.datesDisabled||[],a.isArray(e.datesDisabled)||(e.datesDisabled=[e.datesDisabled]),e.datesDisabled=a.map(e.datesDisabled,function(a){return r.parseDate(a,g,e.language,e.assumeNearbyYear)});var h=String(e.orientation).toLowerCase().split(/\s+/g),i=e.orientation.toLowerCase();if(h=a.grep(h,function(a){return/^auto|left|right|top|bottom$/.test(a)}),e.orientation={x:"auto",y:"auto"},i&&"auto"!==i)if(1===h.length)switch(h[0]){case"top":case"bottom":e.orientation.y=h[0];break;case"left":case"right":e.orientation.x=h[0]}else i=a.grep(h,function(a){return/^left|right$/.test(a)}),e.orientation.x=i[0]||"auto",i=a.grep(h,function(a){return/^top|bottom$/.test(a)}),e.orientation.y=i[0]||"auto";else;if(e.defaultViewDate){var j=e.defaultViewDate.year||(new Date).getFullYear(),k=e.defaultViewDate.month||0,l=e.defaultViewDate.day||1;e.defaultViewDate=c(j,k,l)}else e.defaultViewDate=d()},_events:[],_secondaryEvents:[],_applyEvents:function(a){for(var c,d,e,f=0;ff?(this.picker.addClass("datepicker-orient-right"),n+=m-b):this.picker.addClass("datepicker-orient-left");var p,q=this.o.orientation.y;if("auto"===q&&(p=-g+o-c,q=0>p?"bottom":"top"),this.picker.addClass("datepicker-orient-"+q),"top"===q?o-=c+parseInt(this.picker.css("padding-top")):o+=l,this.o.rtl){var r=f-(n+m);this.picker.css({top:o,right:r,zIndex:j})}else this.picker.css({top:o,left:n,zIndex:j});return this},_allow_update:!0,update:function(){if(!this._allow_update)return this;var b=this.dates.copy(),c=[],d=!1;return arguments.length?(a.each(arguments,a.proxy(function(a,b){b instanceof Date&&(b=this._local_to_utc(b)),c.push(b)},this)),d=!0):(c=this.isInput?this.element.val():this.element.data("date")||this.inputField.val(),c=c&&this.o.multidate?c.split(this.o.multidateSeparator):[c],delete this.element.data().date),c=a.map(c,a.proxy(function(a){return r.parseDate(a,this.o.format,this.o.language,this.o.assumeNearbyYear)},this)),c=a.grep(c,a.proxy(function(a){return!this.dateWithinRange(a)||!a},this),!0),this.dates.replace(c),this.dates.length?this.viewDate=new Date(this.dates.get(-1)):this.viewDatethis.o.endDate?this.viewDate=new Date(this.o.endDate):this.viewDate=this.o.defaultViewDate,d?this.setValue():c.length&&String(b)!==String(this.dates)&&this._trigger("changeDate"),!this.dates.length&&b.length&&this._trigger("clearDate"),this.fill(),this.element.change(),this},fillDow:function(){var b=this.o.weekStart,c="";for(this.o.calendarWeeks&&(this.picker.find(".datepicker-days .datepicker-switch").attr("colspan",function(a,b){return parseInt(b)+1}),c+=' ');b";c+="",this.picker.find(".datepicker-days thead").append(c)},fillMonths:function(){for(var a=this._utc_to_local(this.viewDate),b="",c=0;12>c;){var d=a&&a.getMonth()===c?" focused":"";b+=''+q[this.o.language].monthsShort[c++]+""}this.picker.find(".datepicker-months td").html(b)},setRange:function(b){b&&b.length?this.range=a.map(b,function(a){return a.valueOf()}):delete this.range,this.fill()},getClassNames:function(b){var c=[],d=this.viewDate.getUTCFullYear(),e=this.viewDate.getUTCMonth(),f=new Date;return b.getUTCFullYear()d||b.getUTCFullYear()===d&&b.getUTCMonth()>e)&&c.push("new"),this.focusDate&&b.valueOf()===this.focusDate.valueOf()&&c.push("focused"),this.o.todayHighlight&&b.getUTCFullYear()===f.getFullYear()&&b.getUTCMonth()===f.getMonth()&&b.getUTCDate()===f.getDate()&&c.push("today"),-1!==this.dates.contains(b)&&c.push("active"),this.dateWithinRange(b)||c.push("disabled"),this.dateIsDisabled(b)&&c.push("disabled","disabled-date"),-1!==a.inArray(b.getUTCDay(),this.o.daysOfWeekHighlighted)&&c.push("highlighted"),this.range&&(b>this.range[0]&&br;r+=1)s=[d],t=null,-1===r?s.push("old"):10===r&&s.push("new"),-1!==a.inArray(q,n)&&s.push("active"),(o>q||q>p)&&s.push("disabled"),q===this.viewDate.getFullYear()&&s.push("focused"),j!==a.noop&&(u=j(new Date(q,0,1)),u===b?u={}:"boolean"==typeof u?u={enabled:u}:"string"==typeof u&&(u={classes:u}),u.enabled===!1&&s.push("disabled"),u.classes&&(s=s.concat(u.classes.split(/\s+/))),u.tooltip&&(t=u.tooltip)),k+='"+q+"",q+=f;l.find("td").html(k)},fill:function(){var d,e,f=new Date(this.viewDate),g=f.getUTCFullYear(),h=f.getUTCMonth(),i=this.o.startDate!==-(1/0)?this.o.startDate.getUTCFullYear():-(1/0),j=this.o.startDate!==-(1/0)?this.o.startDate.getUTCMonth():-(1/0),k=this.o.endDate!==1/0?this.o.endDate.getUTCFullYear():1/0,l=this.o.endDate!==1/0?this.o.endDate.getUTCMonth():1/0,m=q[this.o.language].today||q.en.today||"",n=q[this.o.language].clear||q.en.clear||"",o=q[this.o.language].titleFormat||q.en.titleFormat;if(!isNaN(g)&&!isNaN(h)){this.picker.find(".datepicker-days .datepicker-switch").text(r.formatDate(f,o,this.o.language)),this.picker.find("tfoot .today").text(m).toggle(this.o.todayBtn!==!1),this.picker.find("tfoot .clear").text(n).toggle(this.o.clearBtn!==!1),this.picker.find("thead .datepicker-title").text(this.o.title).toggle(""!==this.o.title),this.updateNavArrows(),this.fillMonths();var p=c(g,h-1,28),s=r.getDaysInMonth(p.getUTCFullYear(),p.getUTCMonth());p.setUTCDate(s),p.setUTCDate(s-(p.getUTCDay()-this.o.weekStart+7)%7);var t=new Date(p);p.getUTCFullYear()<100&&t.setUTCFullYear(p.getUTCFullYear()),t.setUTCDate(t.getUTCDate()+42),t=t.valueOf();for(var u,v=[];p.valueOf()"),this.o.calendarWeeks)){var w=new Date(+p+(this.o.weekStart-p.getUTCDay()-7)%7*864e5),x=new Date(Number(w)+(11-w.getUTCDay())%7*864e5),y=new Date(Number(y=c(x.getUTCFullYear(),0,1))+(11-y.getUTCDay())%7*864e5),z=(x-y)/864e5/7+1;v.push(''+z+"")}u=this.getClassNames(p),u.push("day"),this.o.beforeShowDay!==a.noop&&(e=this.o.beforeShowDay(this._utc_to_local(p)),e===b?e={}:"boolean"==typeof e?e={enabled:e}:"string"==typeof e&&(e={classes:e}),e.enabled===!1&&u.push("disabled"),e.classes&&(u=u.concat(e.classes.split(/\s+/))),e.tooltip&&(d=e.tooltip)),u=a.isFunction(a.uniqueSort)?a.uniqueSort(u):a.unique(u),v.push('"+p.getUTCDate()+""),d=null,p.getUTCDay()===this.o.weekEnd&&v.push(""),p.setUTCDate(p.getUTCDate()+1)}this.picker.find(".datepicker-days tbody").empty().append(v.join(""));var A=q[this.o.language].monthsTitle||q.en.monthsTitle||"Months",B=this.picker.find(".datepicker-months").find(".datepicker-switch").text(this.o.maxViewMode<2?A:g).end().find("span").removeClass("active");if(a.each(this.dates,function(a,b){b.getUTCFullYear()===g&&B.eq(b.getUTCMonth()).addClass("active")}),(i>g||g>k)&&B.addClass("disabled"),g===i&&B.slice(0,j).addClass("disabled"),g===k&&B.slice(l+1).addClass("disabled"),this.o.beforeShowMonth!==a.noop){var C=this;a.each(B,function(c,d){var e=new Date(g,c,1),f=C.o.beforeShowMonth(e);f===b?f={}:"boolean"==typeof f?f={enabled:f}:"string"==typeof f&&(f={classes:f}),f.enabled!==!1||a(d).hasClass("disabled")||a(d).addClass("disabled"),f.classes&&a(d).addClass(f.classes),f.tooltip&&a(d).prop("title",f.tooltip)})}this._fill_yearsView(".datepicker-years","year",10,1,g,i,k,this.o.beforeShowYear),this._fill_yearsView(".datepicker-decades","decade",100,10,g,i,k,this.o.beforeShowDecade),this._fill_yearsView(".datepicker-centuries","century",1e3,100,g,i,k,this.o.beforeShowCentury)}},updateNavArrows:function(){if(this._allow_update){var a=new Date(this.viewDate),b=a.getUTCFullYear(),c=a.getUTCMonth();switch(this.viewMode){case 0:this.o.startDate!==-(1/0)&&b<=this.o.startDate.getUTCFullYear()&&c<=this.o.startDate.getUTCMonth()?this.picker.find(".prev").css({visibility:"hidden"}):this.picker.find(".prev").css({visibility:"visible"}),this.o.endDate!==1/0&&b>=this.o.endDate.getUTCFullYear()&&c>=this.o.endDate.getUTCMonth()?this.picker.find(".next").css({visibility:"hidden"}):this.picker.find(".next").css({visibility:"visible"});break;case 1:case 2:case 3:case 4:this.o.startDate!==-(1/0)&&b<=this.o.startDate.getUTCFullYear()||this.o.maxViewMode<2?this.picker.find(".prev").css({visibility:"hidden"}):this.picker.find(".prev").css({visibility:"visible"}),this.o.endDate!==1/0&&b>=this.o.endDate.getUTCFullYear()||this.o.maxViewMode<2?this.picker.find(".next").css({visibility:"hidden"}):this.picker.find(".next").css({visibility:"visible"})}}},click:function(b){b.preventDefault(),b.stopPropagation();var e,f,g,h,i,j,k;e=a(b.target),e.hasClass("datepicker-switch")&&this.showMode(1);var l=e.closest(".prev, .next");l.length>0&&(f=r.modes[this.viewMode].navStep*(l.hasClass("prev")?-1:1),0===this.viewMode?(this.viewDate=this.moveMonth(this.viewDate,f),this._trigger("changeMonth",this.viewDate)):(this.viewDate=this.moveYear(this.viewDate,f),1===this.viewMode&&this._trigger("changeYear",this.viewDate)),this.fill()),e.hasClass("today")&&!e.hasClass("day")&&(this.showMode(-2),this._setDate(d(),"linked"===this.o.todayBtn?null:"view")),e.hasClass("clear")&&this.clearDates(),e.hasClass("disabled")||(e.hasClass("day")&&(g=parseInt(e.text(),10)||1,h=this.viewDate.getUTCFullYear(),i=this.viewDate.getUTCMonth(),e.hasClass("old")&&(0===i?(i=11,h-=1,j=!0,k=!0):(i-=1,j=!0)),e.hasClass("new")&&(11===i?(i=0,h+=1,j=!0,k=!0):(i+=1,j=!0)),this._setDate(c(h,i,g)),k&&this._trigger("changeYear",this.viewDate),j&&this._trigger("changeMonth",this.viewDate)),e.hasClass("month")&&(this.viewDate.setUTCDate(1),g=1,i=e.parent().find("span").index(e),h=this.viewDate.getUTCFullYear(),this.viewDate.setUTCMonth(i),this._trigger("changeMonth",this.viewDate),1===this.o.minViewMode?(this._setDate(c(h,i,g)),this.showMode()):this.showMode(-1),this.fill()),(e.hasClass("year")||e.hasClass("decade")||e.hasClass("century"))&&(this.viewDate.setUTCDate(1),g=1,i=0,h=parseInt(e.text(),10)||0,this.viewDate.setUTCFullYear(h),e.hasClass("year")&&(this._trigger("changeYear",this.viewDate),2===this.o.minViewMode&&this._setDate(c(h,i,g))),e.hasClass("decade")&&(this._trigger("changeDecade",this.viewDate),3===this.o.minViewMode&&this._setDate(c(h,i,g))),e.hasClass("century")&&(this._trigger("changeCentury",this.viewDate),4===this.o.minViewMode&&this._setDate(c(h,i,g))),this.showMode(-1),this.fill())),this.picker.is(":visible")&&this._focused_from&&a(this._focused_from).focus(),delete this._focused_from},_toggle_multidate:function(a){var b=this.dates.contains(a);if(a||this.dates.clear(),-1!==b?(this.o.multidate===!0||this.o.multidate>1||this.o.toggleActive)&&this.dates.remove(b):this.o.multidate===!1?(this.dates.clear(),this.dates.push(a)):this.dates.push(a),"number"==typeof this.o.multidate)for(;this.dates.length>this.o.multidate;)this.dates.remove(0)},_setDate:function(a,b){b&&"date"!==b||this._toggle_multidate(a&&new Date(a)),b&&"view"!==b||(this.viewDate=a&&new Date(a)),this.fill(),this.setValue(),b&&"view"===b||this._trigger("changeDate"),this.inputField&&this.inputField.change(),!this.o.autoclose||b&&"date"!==b||this.hide()},moveDay:function(a,b){var c=new Date(a);return c.setUTCDate(a.getUTCDate()+b),c},moveWeek:function(a,b){return this.moveDay(a,7*b)},moveMonth:function(a,b){if(!g(a))return this.o.defaultViewDate;if(!b)return a;var c,d,e=new Date(a.valueOf()),f=e.getUTCDate(),h=e.getUTCMonth(),i=Math.abs(b);if(b=b>0?1:-1,1===i)d=-1===b?function(){return e.getUTCMonth()===h}:function(){return e.getUTCMonth()!==c},c=h+b,e.setUTCMonth(c),(0>c||c>11)&&(c=(c+12)%12);else{for(var j=0;i>j;j++)e=this.moveMonth(e,b);c=e.getUTCMonth(),e.setUTCDate(f),d=function(){return c!==e.getUTCMonth()}}for(;d();)e.setUTCDate(--f),e.setUTCMonth(c);return e},moveYear:function(a,b){return this.moveMonth(a,12*b)},moveAvailableDate:function(a,b,c){do{if(a=this[c](a,b),!this.dateWithinRange(a))return!1;c="moveDay"}while(this.dateIsDisabled(a));return a},weekOfDateIsDisabled:function(b){return-1!==a.inArray(b.getUTCDay(),this.o.daysOfWeekDisabled)},dateIsDisabled:function(b){return this.weekOfDateIsDisabled(b)||a.grep(this.o.datesDisabled,function(a){return e(b,a)}).length>0},dateWithinRange:function(a){return a>=this.o.startDate&&a<=this.o.endDate},keydown:function(a){if(!this.picker.is(":visible"))return void((40===a.keyCode||27===a.keyCode)&&(this.show(),a.stopPropagation()));var b,c,d=!1,e=this.focusDate||this.viewDate;switch(a.keyCode){case 27:this.focusDate?(this.focusDate=null,this.viewDate=this.dates.get(-1)||this.viewDate,this.fill()):this.hide(),a.preventDefault(),a.stopPropagation();break;case 37:case 38:case 39:case 40:if(!this.o.keyboardNavigation||7===this.o.daysOfWeekDisabled.length)break;b=37===a.keyCode||38===a.keyCode?-1:1,0===this.viewMode?a.ctrlKey?(c=this.moveAvailableDate(e,b,"moveYear"),c&&this._trigger("changeYear",this.viewDate)):a.shiftKey?(c=this.moveAvailableDate(e,b,"moveMonth"),c&&this._trigger("changeMonth",this.viewDate)):37===a.keyCode||39===a.keyCode?c=this.moveAvailableDate(e,b,"moveDay"):this.weekOfDateIsDisabled(e)||(c=this.moveAvailableDate(e,b,"moveWeek")):1===this.viewMode?((38===a.keyCode||40===a.keyCode)&&(b=4*b),c=this.moveAvailableDate(e,b,"moveMonth")):2===this.viewMode&&((38===a.keyCode||40===a.keyCode)&&(b=4*b),c=this.moveAvailableDate(e,b,"moveYear")),c&&(this.focusDate=this.viewDate=c,this.setValue(),this.fill(),a.preventDefault());break;case 13:if(!this.o.forceParse)break;e=this.focusDate||this.dates.get(-1)||this.viewDate,this.o.keyboardNavigation&&(this._toggle_multidate(e),d=!0),this.focusDate=null,this.viewDate=this.dates.get(-1)||this.viewDate,this.setValue(),this.fill(),this.picker.is(":visible")&&(a.preventDefault(),a.stopPropagation(),this.o.autoclose&&this.hide());break;case 9:this.focusDate=null,this.viewDate=this.dates.get(-1)||this.viewDate,this.fill(),this.hide()}d&&(this.dates.length?this._trigger("changeDate"):this._trigger("clearDate"),this.inputField&&this.inputField.change())},showMode:function(a){a&&(this.viewMode=Math.max(this.o.minViewMode,Math.min(this.o.maxViewMode,this.viewMode+a))),this.picker.children("div").hide().filter(".datepicker-"+r.modes[this.viewMode].clsName).show(),this.updateNavArrows()}};var l=function(b,c){a(b).data("datepicker",this),this.element=a(b),this.inputs=a.map(c.inputs,function(a){return a.jquery?a[0]:a}),delete c.inputs,n.call(a(this.inputs),c).on("changeDate",a.proxy(this.dateUpdated,this)),this.pickers=a.map(this.inputs,function(b){return a(b).data("datepicker")}),this.updateDates()};l.prototype={updateDates:function(){this.dates=a.map(this.pickers,function(a){return a.getUTCDate()}),this.updateRanges()},updateRanges:function(){var b=a.map(this.dates,function(a){return a.valueOf()});a.each(this.pickers,function(a,c){c.setRange(b)})},dateUpdated:function(b){if(!this.updating){this.updating=!0;var c=a(b.target).data("datepicker");if("undefined"!=typeof c){var d=c.getUTCDate(),e=a.inArray(b.target,this.inputs),f=e-1,g=e+1,h=this.inputs.length;if(-1!==e){if(a.each(this.pickers,function(a,b){b.getUTCDate()||b.setUTCDate(d)}),d=0&&dthis.dates[g])for(;h>g&&d>this.dates[g];)this.pickers[g++].setUTCDate(d);this.updateDates(),delete this.updating}}}},remove:function(){a.map(this.pickers,function(a){a.remove()}),delete this.element.data().datepicker}};var m=a.fn.datepicker,n=function(c){var d=Array.apply(null,arguments);d.shift();var e;if(this.each(function(){var b=a(this),f=b.data("datepicker"),g="object"==typeof c&&c;if(!f){var j=h(this,"date"),m=a.extend({},o,j,g),n=i(m.language),p=a.extend({},o,n,j,g);b.hasClass("input-daterange")||p.inputs?(a.extend(p,{inputs:p.inputs||b.find("input").toArray()}),f=new l(this,p)):f=new k(this,p),b.data("datepicker",f)}"string"==typeof c&&"function"==typeof f[c]&&(e=f[c].apply(f,d))}),e===b||e instanceof k||e instanceof l)return this;if(this.length>1)throw new Error("Using only allowed for the collection of a single element ("+c+" function)");return e};a.fn.datepicker=n;var o=a.fn.datepicker.defaults={assumeNearbyYear:!1,autoclose:!1,beforeShowDay:a.noop,beforeShowMonth:a.noop,beforeShowYear:a.noop,beforeShowDecade:a.noop,beforeShowCentury:a.noop,calendarWeeks:!1,clearBtn:!1,toggleActive:!1,daysOfWeekDisabled:[],daysOfWeekHighlighted:[],datesDisabled:[],endDate:1/0,forceParse:!0,format:"mm/dd/yyyy",keyboardNavigation:!0,language:"en",minViewMode:0,maxViewMode:4,multidate:!1,multidateSeparator:",",orientation:"auto",rtl:!1,startDate:-(1/0),startView:0,todayBtn:!1,todayHighlight:!1,weekStart:0,disableTouchKeyboard:!1,enableOnReadonly:!0,showOnFocus:!0,zIndexOffset:10,container:"body",immediateUpdates:!1,title:"",templates:{leftArrow:"«",rightArrow:"»"}},p=a.fn.datepicker.locale_opts=["format","rtl","weekStart"];a.fn.datepicker.Constructor=k;var q=a.fn.datepicker.dates={en:{days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],today:"Today",clear:"Clear",titleFormat:"MM yyyy"}},r={modes:[{clsName:"days",navFnc:"Month",navStep:1},{clsName:"months",navFnc:"FullYear",navStep:1},{clsName:"years",navFnc:"FullYear",navStep:10},{clsName:"decades",navFnc:"FullDecade",navStep:100},{clsName:"centuries",navFnc:"FullCentury",navStep:1e3}],isLeapYear:function(a){return a%4===0&&a%100!==0||a%400===0},getDaysInMonth:function(a,b){return[31,r.isLeapYear(a)?29:28,31,30,31,30,31,31,30,31,30,31][b]},validParts:/dd?|DD?|mm?|MM?|yy(?:yy)?/g,nonpunctuation:/[^ -\/:-@\u5e74\u6708\u65e5\[-`{-~\t\n\r]+/g,parseFormat:function(a){if("function"==typeof a.toValue&&"function"==typeof a.toDisplay)return a;var b=a.replace(this.validParts,"\x00").split("\x00"),c=a.match(this.validParts);if(!b||!b.length||!c||0===c.length)throw new Error("Invalid date format.");return{separators:b,parts:c}},parseDate:function(e,f,g,h){function i(a,b){return b===!0&&(b=10),100>a&&(a+=2e3,a>(new Date).getFullYear()+b&&(a-=100)),a}function j(){var a=this.slice(0,s[n].length),b=s[n].slice(0,a.length);return a.toLowerCase()===b.toLowerCase()}if(!e)return b;if(e instanceof Date)return e;if("string"==typeof f&&(f=r.parseFormat(f)),f.toValue)return f.toValue(e,f,g);var l,m,n,o,p=/([\-+]\d+)([dmwy])/,s=e.match(/([\-+]\d+)([dmwy])/g),t={d:"moveDay",m:"moveMonth",w:"moveWeek",y:"moveYear"},u={yesterday:"-1d",today:"+0d",tomorrow:"+1d"};if(/^[\-+]\d+[dmwy]([\s,]+[\-+]\d+[dmwy])*$/.test(e)){for(e=new Date,n=0;nb;)b+=12;for(b%=12,a.setUTCMonth(b);a.getUTCMonth()!==b;)a.setUTCDate(a.getUTCDate()-1);return a},d:function(a,b){return a.setUTCDate(b)}};z.M=z.MM=z.mm=z.m,z.dd=z.d,e=d();var A=f.parts.slice();if(s.length!==A.length&&(A=a(A).filter(function(b,c){return-1!==a.inArray(c,y)}).toArray()),s.length===A.length){var B;for(n=0,B=A.length;B>n;n++){if(v=parseInt(s[n],10),l=A[n],isNaN(v))switch(l){case"MM":w=a(q[g].months).filter(j),v=a.inArray(w[0],q[g].months)+1;break;case"M":w=a(q[g].monthsShort).filter(j),v=a.inArray(w[0],q[g].monthsShort)+1}x[l]=v}var C,D;for(n=0;n=g;g++)f.length&&b.push(f.shift()),b.push(e[c.parts[g]]);return b.join("")},headTemplate:'«»',contTemplate:'',footTemplate:''};r.template='
'+r.headTemplate+""+r.footTemplate+'
'+r.headTemplate+r.contTemplate+r.footTemplate+'
'+r.headTemplate+r.contTemplate+r.footTemplate+'
'+r.headTemplate+r.contTemplate+r.footTemplate+'
'+r.headTemplate+r.contTemplate+r.footTemplate+"
",a.fn.datepicker.DPGlobal=r,a.fn.datepicker.noConflict=function(){return a.fn.datepicker=m,this},a.fn.datepicker.version="1.6.4",a(document).on("focus.datepicker.data-api click.datepicker.data-api",'[data-provide="datepicker"]',function(b){var c=a(this);c.data("datepicker")||(b.preventDefault(),n.call(c,"show"))}),a(function(){n.call(a('[data-provide="datepicker-inline"]'))})}); \ No newline at end of file diff --git a/oldwebsite/assets/js/vendor/bootstrap.min.js b/oldwebsite/assets/js/vendor/bootstrap.min.js new file mode 100644 index 0000000..9bcd2fc --- /dev/null +++ b/oldwebsite/assets/js/vendor/bootstrap.min.js @@ -0,0 +1,7 @@ +/*! + * Bootstrap v3.3.7 (http://getbootstrap.com) + * Copyright 2011-2016 Twitter, Inc. + * Licensed under the MIT license + */ +if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){if(a(b.target).is(this))return b.handleObj.handler.apply(this,arguments)}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.7",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a("#"===f?[]:f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.7",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c).prop(c,!0)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c).prop(c,!1))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target).closest(".btn");b.call(d,"toggle"),a(c.target).is('input[type="radio"], input[type="checkbox"]')||(c.preventDefault(),d.is("input,button")?d.trigger("focus"):d.find("input:visible,button:visible").first().trigger("focus"))}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(a>this.$items.length-1||a<0))return this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){if(!this.sliding)return this.slide("next")},c.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.7",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.7",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&jdocument.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth
',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);if(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),!c.isInStateTrue())return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-mo.width?"left":"left"==h&&k.left-lg.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;jg.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null,a.$element=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.7",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:''}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.7",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b=e[a]&&(void 0===e[a+1]||b .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.7",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return e=a-d&&"bottom"},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery); \ No newline at end of file diff --git a/oldwebsite/assets/js/vendor/jquery-3.1.1.min.js b/oldwebsite/assets/js/vendor/jquery-3.1.1.min.js new file mode 100644 index 0000000..4c5be4c --- /dev/null +++ b/oldwebsite/assets/js/vendor/jquery-3.1.1.min.js @@ -0,0 +1,4 @@ +/*! jQuery v3.1.1 | (c) jQuery Foundation | jquery.org/license */ +!function(a,b){"use strict";"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){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.1.1",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c0&&b-1 in a)}var x=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={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.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=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$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("fieldset");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=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;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 function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(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 qa(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},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=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),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){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.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===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(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,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):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(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!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&&C.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.escape=function(a){return(a+"").replace(ba,ca)},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:V,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(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===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 V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.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(_,aa).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("(^|"+K+")"+a+"("+K+"|$)"))&&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(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},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,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/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=I(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(P,"$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(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).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:oa(!1),disabled:oa(!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 X.test(a.nodeName)},input:function(a){return W.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:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(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}];i1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};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=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return 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){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext,B=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,C=/^.[^:#\[\.,]*$/;function D(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):C.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(D(this,a||[],!1))},not:function(a){return this.pushStack(D(this,a||[],!0))},is:function(a){return!!D(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var E,F=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,G=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||E,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:F.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),B.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};G.prototype=r.fn,E=r(d);var H=/^(?:parents|prev(?:Until|All))/,I={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function J(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return J(a,"nextSibling")},prev:function(a){return J(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return a.contentDocument||r.merge([],a.childNodes)}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(I[a]||r.uniqueSort(e),H.test(a)&&e.reverse()),this.pushStack(e)}});var K=/[^\x20\t\r\n\f]+/g;function L(a){var b={};return r.each(a.match(K)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?L(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function M(a){return a}function N(a){throw a}function O(a,b,c){var d;try{a&&r.isFunction(d=a.promise)?d.call(a).done(b).fail(c):a&&r.isFunction(d=a.then)?d.call(a,b,c):b.call(void 0,a)}catch(a){c.call(void 0,a)}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b=f&&(d!==N&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:M,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:M)),c[2][3].add(g(0,a,r.isFunction(d)?d:N))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(O(a,g.done(h(c)).resolve,g.reject),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)O(e[c],h(c),g.reject);return g.promise()}});var P=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&P.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var Q=r.Deferred();r.fn.ready=function(a){return Q.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,holdReady:function(a){a?r.readyWait++:r.ready(!0)},ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||Q.resolveWith(d,[r]))}}),r.ready.then=Q.then;function R(){d.removeEventListener("DOMContentLoaded",R), +a.removeEventListener("load",R),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",R),a.addEventListener("load",R));var S=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)S(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h1,null,!0)},removeData:function(a){return this.each(function(){W.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=V.get(a,b),c&&(!d||r.isArray(c)?d=V.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.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 V.get(a,c)||V.access(a,c,{empty:r.Callbacks("once memory").add(function(){V.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length\x20\t\r\n\f]+)/i,ka=/^$|\/(?:java|ecma)script/i,la={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};la.optgroup=la.option,la.tbody=la.tfoot=la.colgroup=la.caption=la.thead,la.th=la.td;function ma(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&r.nodeName(a,b)?r.merge([a],c):c}function na(a,b){for(var c=0,d=a.length;c-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=ma(l.appendChild(f),"script"),j&&na(g),c){k=0;while(f=g[k++])ka.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var qa=d.documentElement,ra=/^key/,sa=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ta=/^([^.]*)(?:\.(.+)|)/;function ua(){return!0}function va(){return!1}function wa(){try{return d.activeElement}catch(a){}}function xa(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)xa(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=va;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(qa,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(K)||[""],j=b.length;while(j--)h=ta.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),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),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.hasData(a)&&V.get(a);if(q&&(i=q.events)){b=(b||"").match(K)||[""],j=b.length;while(j--)if(h=ta.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==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,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&V.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(V.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i\x20\t\r\n\f]*)[^>]*)\/>/gi,za=/\s*$/g;function Da(a,b){return r.nodeName(a,"table")&&r.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a:a}function Ea(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Fa(a){var b=Ba.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ga(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(V.hasData(a)&&(f=V.access(a),g=V.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c1&&"string"==typeof q&&!o.checkClone&&Aa.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ia(f,b,c,d)});if(m&&(e=pa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(ma(e,"script"),Ea),i=h.length;l")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=ma(h),f=ma(a),d=0,e=f.length;d0&&na(g,!i&&ma(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(T(c)){if(b=c[V.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[V.expando]=void 0}c[W.expando]&&(c[W.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ja(this,a,!0)},remove:function(a){return Ja(this,a)},text:function(a){return S(this,function(a){return void 0===a?r.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 Ia(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Da(this,a);b.appendChild(a)}})},prepend:function(){return Ia(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Da(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ia(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ia(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(ma(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return S(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&&!za.test(a)&&!la[(ja.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c1)}});function Ya(a,b,c,d,e){return new Ya.prototype.init(a,b,c,d,e)}r.Tween=Ya,Ya.prototype={constructor:Ya,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=Ya.propHooks[this.prop];return a&&a.get?a.get(this):Ya.propHooks._default.get(this)},run:function(a){var b,c=Ya.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Ya.propHooks._default.set(this),this}},Ya.prototype.init.prototype=Ya.prototype,Ya.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},Ya.propHooks.scrollTop=Ya.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=Ya.prototype.init,r.fx.step={};var Za,$a,_a=/^(?:toggle|show|hide)$/,ab=/queueHooks$/;function bb(){$a&&(a.requestAnimationFrame(bb),r.fx.tick())}function cb(){return a.setTimeout(function(){Za=void 0}),Za=r.now()}function db(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=ba[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function eb(a,b,c){for(var d,e=(hb.tweeners[b]||[]).concat(hb.tweeners["*"]),f=0,g=e.length;f1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?ib:void 0)), +void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&r.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(K);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),ib={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=jb[b]||r.find.attr;jb[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=jb[g],jb[g]=e,e=null!=c(a,b,d)?g:null,jb[g]=f),e}});var kb=/^(?:input|select|textarea|button)$/i,lb=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return S(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):kb.test(a.nodeName)||lb.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function mb(a){var b=a.match(K)||[];return b.join(" ")}function nb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,nb(this)))});if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=nb(c),d=1===c.nodeType&&" "+mb(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=mb(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,nb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=nb(c),d=1===c.nodeType&&" "+mb(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=mb(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,nb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(K)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=nb(this),b&&V.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":V.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+mb(nb(c))+" ").indexOf(b)>-1)return!0;return!1}});var ob=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":r.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(ob,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:mb(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(r.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var pb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!pb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,pb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(V.get(h,"events")||{})[b.type]&&V.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&T(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!T(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=V.access(d,b);e||d.addEventListener(a,c,!0),V.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=V.access(d,b)-1;e?V.access(d,b,e):(d.removeEventListener(a,c,!0),V.remove(d,b))}}});var qb=a.location,rb=r.now(),sb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var tb=/\[\]$/,ub=/\r?\n/g,vb=/^(?:submit|button|image|reset|file)$/i,wb=/^(?:input|select|textarea|keygen)/i;function xb(a,b,c,d){var e;if(r.isArray(b))r.each(b,function(b,e){c||tb.test(a)?d(a,e):xb(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)xb(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(r.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)xb(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&wb.test(this.nodeName)&&!vb.test(a)&&(this.checked||!ia.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:r.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(ub,"\r\n")}}):{name:b.name,value:c.replace(ub,"\r\n")}}).get()}});var yb=/%20/g,zb=/#.*$/,Ab=/([?&])_=[^&]*/,Bb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Cb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Db=/^(?:GET|HEAD)$/,Eb=/^\/\//,Fb={},Gb={},Hb="*/".concat("*"),Ib=d.createElement("a");Ib.href=qb.href;function Jb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(K)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Kb(a,b,c,d){var e={},f=a===Gb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Lb(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Mb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Nb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:qb.href,type:"GET",isLocal:Cb.test(qb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Hb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Lb(Lb(a,r.ajaxSettings),b):Lb(r.ajaxSettings,a)},ajaxPrefilter:Jb(Fb),ajaxTransport:Jb(Gb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Bb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||qb.href)+"").replace(Eb,qb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(K)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Ib.protocol+"//"+Ib.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Kb(Fb,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Db.test(o.type),f=o.url.replace(zb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(yb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(sb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Ab,"$1"),n=(sb.test(f)?"&":"?")+"_="+rb++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Hb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Kb(Gb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Mb(o,y,d)),v=Nb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Ob={0:200,1223:204},Pb=r.ajaxSettings.xhr();o.cors=!!Pb&&"withCredentials"in Pb,o.ajax=Pb=!!Pb,r.ajaxTransport(function(b){var c,d;if(o.cors||Pb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Ob[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r(" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/oldwebsite/captcha.php b/oldwebsite/captcha.php new file mode 100644 index 0000000..bfb74d3 --- /dev/null +++ b/oldwebsite/captcha.php @@ -0,0 +1,19 @@ + + + + + diff --git a/oldwebsite/captcha_files/Thumbs.db b/oldwebsite/captcha_files/Thumbs.db new file mode 100644 index 0000000..403ca36 Binary files /dev/null and b/oldwebsite/captcha_files/Thumbs.db differ diff --git a/oldwebsite/captcha_files/background1.png b/oldwebsite/captcha_files/background1.png new file mode 100644 index 0000000..a1716dc Binary files /dev/null and b/oldwebsite/captcha_files/background1.png differ diff --git a/oldwebsite/captcha_files/background2.png b/oldwebsite/captcha_files/background2.png new file mode 100644 index 0000000..3ac0bb9 Binary files /dev/null and b/oldwebsite/captcha_files/background2.png differ diff --git a/oldwebsite/captcha_files/overlay1.png b/oldwebsite/captcha_files/overlay1.png new file mode 100644 index 0000000..8786e3e Binary files /dev/null and b/oldwebsite/captcha_files/overlay1.png differ diff --git a/oldwebsite/captcha_files/overlay2.png b/oldwebsite/captcha_files/overlay2.png new file mode 100644 index 0000000..27da960 Binary files /dev/null and b/oldwebsite/captcha_files/overlay2.png differ diff --git a/oldwebsite/captcha_files/truetype.ttf b/oldwebsite/captcha_files/truetype.ttf new file mode 100644 index 0000000..b2fd97e Binary files /dev/null and b/oldwebsite/captcha_files/truetype.ttf differ diff --git a/oldwebsite/coiffure.html b/oldwebsite/coiffure.html new file mode 100644 index 0000000..f57d255 --- /dev/null +++ b/oldwebsite/coiffure.html @@ -0,0 +1,389 @@ + + + + + + + Coiffure - Old Bell By Marc Den Barbir + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ +

Les coiffures classiques et/ou modernes

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

Services coiffure

+

De la coiffure homme classique à la coiffure moderne, nous offrons une large gamme de services

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

Bullet

+ 30 min +
+
+

Rasage du crâne au coûteau avec serviettes chaudes et huile

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

Coupe tondeuse

+ 15 min +
+
+

Coupe au sabo à une longueur désirée avec contours dégradés

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

Coupe homme 1

+ 30 min +
+
+

Coupe classique/moderne avec ou sans dégradé

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

Coupe homme 2

+ 30 min +
+
+

Coupe avec transformation / coupe avec dégradé américain à blanc

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

Coupe enfant

+ 30 min +
+
+

Coupe moderne/classique pour enfants jusqu'à 12 ans

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

Coupe étudiant 1

+ 30 min +
+
+

Coupe classique / moderne avec ou sans dégradé sur présentation d'une carte d'étudiant

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

Coupe étudiant 2

+ 30 min +
+
+

Coupe avec transformation / coupe avec dégradé américain à blanc sur présentation d'une carte d'étudiant

+ +
+
+
+ + +
+
+
+ + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/oldwebsite/contact.php b/oldwebsite/contact.php new file mode 100644 index 0000000..9d1ebdc --- /dev/null +++ b/oldwebsite/contact.php @@ -0,0 +1,472 @@ + + + + + + + + Contact - Old Bell By Marc Den Barbir + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+ +

Nous contacter

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

Contactez-nous

+
+
+
+
+
+
+
+
+

Esch-sur-Alzette

+

34, rue du fossé

+

+352 2653 2264

+

info@oldbell.lu

+

https://www.oldbell.lu

+

Vos données personnelles

+

+ Les données que vous envoyez avec ce formulaire ne sont pas enregistrées dans une banque de données et servent uniquement pour répondre à vos demandes. +

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



+ +
+
+
+ + +
+
+ +
+
+ +
+ '; + break; + + case 'fr_sendcontact': + + + + if ($fehler == ""){ + // Email zumsammensetzen + $email = $_SESSION['email']; + $from_name = $_SESSION['name']; + $betreff = $_SESSION['betreff']; + $headers = "MIME-Version: 1.0\r\n"; + $headers .= "From:".$email."\r\n"; + $headers .= "Content-Type: text/html; charset=utf-8\r\n"; + $headers.= "Reply-To: $reply\r\n"; + $headers.= "X-Mailer: PHP/" . phpversion(); + $headers2 = "MIME-Version: 1.0\r\n"; + $headers2 .= 'From: oldbell.lu ' . "\r\n"; + $headers2 .= "Content-Type: text/html; charset=utf-8\r\n"; + $headers2 .= "Reply-To: $reply\r\n"; + $headers2 .= "X-Mailer: PHP/" . phpversion(); + $message = ''; + $message .= ''; + $message .= '

Bonjour '; + $message .= $_SESSION['name']; + $message .= ',

'; + $message .= '

Merci de nous avoir contacté.

+

+ Nous reviendrons vers vous très bientôt.
Cordialement,
Votre équipe OLD BELL.

+ '; + $message .= ''; + $nachrichtfertig = "Bonjour chère équipe OLD BELL,

" .$_SESSION['name']. " wrote you a message from your website oldbell.lu:

" . $_SESSION['nachricht']. "

Phone:" . $_SESSION['phone']. "
EMail:" . $_SESSION['email']; + if(@mail("$empfaenger","$betreff","$nachrichtfertig","$headers")); + /*if(@mail("$email","$betreff","$message","$headers2"));*/ + echo '

+

Merci,

votre message a été envoyé.

'; + + // Sessionvariablen löschen + unset($_SESSION['name']); + unset($_SESSION['phone']); + unset($_SESSION['email']); + unset($_SESSION['betreff']); + unset($_SESSION['nachricht']); + } + + else { + echo ''; + echo $fehler; + echo '

Retour vers le message

'; + } + // Session unset + unset($_SESSION['CAPTCHA_RndText']); + + + + break; + } + ?> + +
+
+
+
+ + + +
+
+
+ + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/oldwebsite/favicon.ico b/oldwebsite/favicon.ico new file mode 100644 index 0000000..c15bc10 Binary files /dev/null and b/oldwebsite/favicon.ico differ diff --git a/oldwebsite/ffmpeg/GPLv3.txt b/oldwebsite/ffmpeg/GPLv3.txt new file mode 100644 index 0000000..94a9ed0 --- /dev/null +++ b/oldwebsite/ffmpeg/GPLv3.txt @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/oldwebsite/ffmpeg/ffmpeg b/oldwebsite/ffmpeg/ffmpeg new file mode 100644 index 0000000..8933eda Binary files /dev/null and b/oldwebsite/ffmpeg/ffmpeg differ diff --git a/oldwebsite/ffmpeg/ffprobe b/oldwebsite/ffmpeg/ffprobe new file mode 100644 index 0000000..77a4faa Binary files /dev/null and b/oldwebsite/ffmpeg/ffprobe differ diff --git a/oldwebsite/ffmpeg/manpages/ffmpeg-all.txt b/oldwebsite/ffmpeg/manpages/ffmpeg-all.txt new file mode 100644 index 0000000..ab5802c --- /dev/null +++ b/oldwebsite/ffmpeg/manpages/ffmpeg-all.txt @@ -0,0 +1,35878 @@ +FFMPEG-ALL(1) FFMPEG-ALL(1) + +NAME + ffmpeg - ffmpeg video converter + +SYNOPSIS + ffmpeg [global_options] {[input_file_options] -i input_url} ... + {[output_file_options] output_url} ... + +DESCRIPTION + ffmpeg is a very fast video and audio converter that can also grab from + a live audio/video source. It can also convert between arbitrary sample + rates and resize video on the fly with a high quality polyphase filter. + + ffmpeg reads from an arbitrary number of input "files" (which can be + regular files, pipes, network streams, grabbing devices, etc.), + specified by the "-i" option, and writes to an arbitrary number of + output "files", which are specified by a plain output url. Anything + found on the command line which cannot be interpreted as an option is + considered to be an output url. + + Each input or output url can, in principle, contain any number of + streams of different types (video/audio/subtitle/attachment/data). The + allowed number and/or types of streams may be limited by the container + format. Selecting which streams from which inputs will go into which + output is either done automatically or with the "-map" option (see the + Stream selection chapter). + + To refer to input files in options, you must use their indices + (0-based). E.g. the first input file is 0, the second is 1, etc. + Similarly, streams within a file are referred to by their indices. E.g. + "2:3" refers to the fourth stream in the third input file. Also see the + Stream specifiers chapter. + + As a general rule, options are applied to the next specified file. + Therefore, order is important, and you can have the same option on the + command line multiple times. Each occurrence is then applied to the + next input or output file. Exceptions from this rule are the global + options (e.g. verbosity level), which should be specified first. + + Do not mix input and output files -- first specify all input files, + then all output files. Also do not mix options which belong to + different files. All options apply ONLY to the next input or output + file and are reset between files. + + o To set the video bitrate of the output file to 64 kbit/s: + + ffmpeg -i input.avi -b:v 64k -bufsize 64k output.avi + + o To force the frame rate of the output file to 24 fps: + + ffmpeg -i input.avi -r 24 output.avi + + o To force the frame rate of the input file (valid for raw formats + only) to 1 fps and the frame rate of the output file to 24 fps: + + ffmpeg -r 1 -i input.m2v -r 24 output.avi + + The format option may be needed for raw input files. + +DETAILED DESCRIPTION + The transcoding process in ffmpeg for each output can be described by + the following diagram: + + _______ ______________ + | | | | + | input | demuxer | encoded data | decoder + | file | ---------> | packets | -----+ + |_______| |______________| | + v + _________ + | | + | decoded | + | frames | + |_________| + ________ ______________ | + | | | | | + | output | <-------- | encoded data | <----+ + | file | muxer | packets | encoder + |________| |______________| + + ffmpeg calls the libavformat library (containing demuxers) to read + input files and get packets containing encoded data from them. When + there are multiple input files, ffmpeg tries to keep them synchronized + by tracking lowest timestamp on any active input stream. + + Encoded packets are then passed to the decoder (unless streamcopy is + selected for the stream, see further for a description). The decoder + produces uncompressed frames (raw video/PCM audio/...) which can be + processed further by filtering (see next section). After filtering, the + frames are passed to the encoder, which encodes them and outputs + encoded packets. Finally those are passed to the muxer, which writes + the encoded packets to the output file. + + Filtering + Before encoding, ffmpeg can process raw audio and video frames using + filters from the libavfilter library. Several chained filters form a + filter graph. ffmpeg distinguishes between two types of filtergraphs: + simple and complex. + + Simple filtergraphs + + Simple filtergraphs are those that have exactly one input and output, + both of the same type. In the above diagram they can be represented by + simply inserting an additional step between decoding and encoding: + + _________ ______________ + | | | | + | decoded | | encoded data | + | frames |\ _ | packets | + |_________| \ /||______________| + \ __________ / + simple _\|| | / encoder + filtergraph | filtered |/ + | frames | + |__________| + + Simple filtergraphs are configured with the per-stream -filter option + (with -vf and -af aliases for video and audio respectively). A simple + filtergraph for video can look for example like this: + + _______ _____________ _______ ________ + | | | | | | | | + | input | ---> | deinterlace | ---> | scale | ---> | output | + |_______| |_____________| |_______| |________| + + Note that some filters change frame properties but not frame contents. + E.g. the "fps" filter in the example above changes number of frames, + but does not touch the frame contents. Another example is the "setpts" + filter, which only sets timestamps and otherwise passes the frames + unchanged. + + Complex filtergraphs + + Complex filtergraphs are those which cannot be described as simply a + linear processing chain applied to one stream. This is the case, for + example, when the graph has more than one input and/or output, or when + output stream type is different from input. They can be represented + with the following diagram: + + _________ + | | + | input 0 |\ __________ + |_________| \ | | + \ _________ /| output 0 | + \ | | / |__________| + _________ \| complex | / + | | | |/ + | input 1 |---->| filter |\ + |_________| | | \ __________ + /| graph | \ | | + / | | \| output 1 | + _________ / |_________| |__________| + | | / + | input 2 |/ + |_________| + + Complex filtergraphs are configured with the -filter_complex option. + Note that this option is global, since a complex filtergraph, by its + nature, cannot be unambiguously associated with a single stream or + file. + + The -lavfi option is equivalent to -filter_complex. + + A trivial example of a complex filtergraph is the "overlay" filter, + which has two video inputs and one video output, containing one video + overlaid on top of the other. Its audio counterpart is the "amix" + filter. + + Stream copy + Stream copy is a mode selected by supplying the "copy" parameter to the + -codec option. It makes ffmpeg omit the decoding and encoding step for + the specified stream, so it does only demuxing and muxing. It is useful + for changing the container format or modifying container-level + metadata. The diagram above will, in this case, simplify to this: + + _______ ______________ ________ + | | | | | | + | input | demuxer | encoded data | muxer | output | + | file | ---------> | packets | -------> | file | + |_______| |______________| |________| + + Since there is no decoding or encoding, it is very fast and there is no + quality loss. However, it might not work in some cases because of many + factors. Applying filters is obviously also impossible, since filters + work on uncompressed data. + +STREAM SELECTION + ffmpeg provides the "-map" option for manual control of stream + selection in each output file. Users can skip "-map" and let ffmpeg + perform automatic stream selection as described below. The "-vn / -an / + -sn / -dn" options can be used to skip inclusion of video, audio, + subtitle and data streams respectively, whether manually mapped or + automatically selected, except for those streams which are outputs of + complex filtergraphs. + + Description + The sub-sections that follow describe the various rules that are + involved in stream selection. The examples that follow next show how + these rules are applied in practice. + + While every effort is made to accurately reflect the behavior of the + program, FFmpeg is under continuous development and the code may have + changed since the time of this writing. + + Automatic stream selection + + In the absence of any map options for a particular output file, ffmpeg + inspects the output format to check which type of streams can be + included in it, viz. video, audio and/or subtitles. For each acceptable + stream type, ffmpeg will pick one stream, when available, from among + all the inputs. + + It will select that stream based upon the following criteria: + + o for video, it is the stream with the highest resolution, + + o for audio, it is the stream with the most channels, + + o for subtitles, it is the first subtitle stream found but there's a + caveat. The output format's default subtitle encoder can be either + text-based or image-based, and only a subtitle stream of the same + type will be chosen. + + In the case where several streams of the same type rate equally, the + stream with the lowest index is chosen. + + Data or attachment streams are not automatically selected and can only + be included using "-map". + + Manual stream selection + + When "-map" is used, only user-mapped streams are included in that + output file, with one possible exception for filtergraph outputs + described below. + + Complex filtergraphs + + If there are any complex filtergraph output streams with unlabeled + pads, they will be added to the first output file. This will lead to a + fatal error if the stream type is not supported by the output format. + In the absence of the map option, the inclusion of these streams leads + to the automatic stream selection of their types being skipped. If map + options are present, these filtergraph streams are included in addition + to the mapped streams. + + Complex filtergraph output streams with labeled pads must be mapped + once and exactly once. + + Stream handling + + Stream handling is independent of stream selection, with an exception + for subtitles described below. Stream handling is set via the "-codec" + option addressed to streams within a specific output file. In + particular, codec options are applied by ffmpeg after the stream + selection process and thus do not influence the latter. If no "-codec" + option is specified for a stream type, ffmpeg will select the default + encoder registered by the output file muxer. + + An exception exists for subtitles. If a subtitle encoder is specified + for an output file, the first subtitle stream found of any type, text + or image, will be included. ffmpeg does not validate if the specified + encoder can convert the selected stream or if the converted stream is + acceptable within the output format. This applies generally as well: + when the user sets an encoder manually, the stream selection process + cannot check if the encoded stream can be muxed into the output file. + If it cannot, ffmpeg will abort and all output files will fail to be + processed. + + Examples + The following examples illustrate the behavior, quirks and limitations + of ffmpeg's stream selection methods. + + They assume the following three input files. + + input file 'A.avi' + stream 0: video 640x360 + stream 1: audio 2 channels + + input file 'B.mp4' + stream 0: video 1920x1080 + stream 1: audio 2 channels + stream 2: subtitles (text) + stream 3: audio 5.1 channels + stream 4: subtitles (text) + + input file 'C.mkv' + stream 0: video 1280x720 + stream 1: audio 2 channels + stream 2: subtitles (image) + + Example: automatic stream selection + + ffmpeg -i A.avi -i B.mp4 out1.mkv out2.wav -map 1:a -c:a copy out3.mov + + There are three output files specified, and for the first two, no + "-map" options are set, so ffmpeg will select streams for these two + files automatically. + + out1.mkv is a Matroska container file and accepts video, audio and + subtitle streams, so ffmpeg will try to select one of each type.For + video, it will select "stream 0" from B.mp4, which has the highest + resolution among all the input video streams.For audio, it will select + "stream 3" from B.mp4, since it has the greatest number of channels.For + subtitles, it will select "stream 2" from B.mp4, which is the first + subtitle stream from among A.avi and B.mp4. + + out2.wav accepts only audio streams, so only "stream 3" from B.mp4 is + selected. + + For out3.mov, since a "-map" option is set, no automatic stream + selection will occur. The "-map 1:a" option will select all audio + streams from the second input B.mp4. No other streams will be included + in this output file. + + For the first two outputs, all included streams will be transcoded. The + encoders chosen will be the default ones registered by each output + format, which may not match the codec of the selected input streams. + + For the third output, codec option for audio streams has been set to + "copy", so no decoding-filtering-encoding operations will occur, or can + occur. Packets of selected streams shall be conveyed from the input + file and muxed within the output file. + + Example: automatic subtitles selection + + ffmpeg -i C.mkv out1.mkv -c:s dvdsub -an out2.mkv + + Although out1.mkv is a Matroska container file which accepts subtitle + streams, only a video and audio stream shall be selected. The subtitle + stream of C.mkv is image-based and the default subtitle encoder of the + Matroska muxer is text-based, so a transcode operation for the + subtitles is expected to fail and hence the stream isn't selected. + However, in out2.mkv, a subtitle encoder is specified in the command + and so, the subtitle stream is selected, in addition to the video + stream. The presence of "-an" disables audio stream selection for + out2.mkv. + + Example: unlabeled filtergraph outputs + + ffmpeg -i A.avi -i C.mkv -i B.mp4 -filter_complex "overlay" out1.mp4 out2.srt + + A filtergraph is setup here using the "-filter_complex" option and + consists of a single video filter. The "overlay" filter requires + exactly two video inputs, but none are specified, so the first two + available video streams are used, those of A.avi and C.mkv. The output + pad of the filter has no label and so is sent to the first output file + out1.mp4. Due to this, automatic selection of the video stream is + skipped, which would have selected the stream in B.mp4. The audio + stream with most channels viz. "stream 3" in B.mp4, is chosen + automatically. No subtitle stream is chosen however, since the MP4 + format has no default subtitle encoder registered, and the user hasn't + specified a subtitle encoder. + + The 2nd output file, out2.srt, only accepts text-based subtitle + streams. So, even though the first subtitle stream available belongs to + C.mkv, it is image-based and hence skipped. The selected stream, + "stream 2" in B.mp4, is the first text-based subtitle stream. + + Example: labeled filtergraph outputs + + ffmpeg -i A.avi -i B.mp4 -i C.mkv -filter_complex "[1:v]hue=s=0[outv];overlay;aresample" \ + -map '[outv]' -an out1.mp4 \ + out2.mkv \ + -map '[outv]' -map 1:a:0 out3.mkv + + The above command will fail, as the output pad labelled "[outv]" has + been mapped twice. None of the output files shall be processed. + + ffmpeg -i A.avi -i B.mp4 -i C.mkv -filter_complex "[1:v]hue=s=0[outv];overlay;aresample" \ + -an out1.mp4 \ + out2.mkv \ + -map 1:a:0 out3.mkv + + This command above will also fail as the hue filter output has a label, + "[outv]", and hasn't been mapped anywhere. + + The command should be modified as follows, + + ffmpeg -i A.avi -i B.mp4 -i C.mkv -filter_complex "[1:v]hue=s=0,split=2[outv1][outv2];overlay;aresample" \ + -map '[outv1]' -an out1.mp4 \ + out2.mkv \ + -map '[outv2]' -map 1:a:0 out3.mkv + + The video stream from B.mp4 is sent to the hue filter, whose output is + cloned once using the split filter, and both outputs labelled. Then a + copy each is mapped to the first and third output files. + + The overlay filter, requiring two video inputs, uses the first two + unused video streams. Those are the streams from A.avi and C.mkv. The + overlay output isn't labelled, so it is sent to the first output file + out1.mp4, regardless of the presence of the "-map" option. + + The aresample filter is sent the first unused audio stream, that of + A.avi. Since this filter output is also unlabelled, it too is mapped to + the first output file. The presence of "-an" only suppresses automatic + or manual stream selection of audio streams, not outputs sent from + filtergraphs. Both these mapped streams shall be ordered before the + mapped stream in out1.mp4. + + The video, audio and subtitle streams mapped to "out2.mkv" are entirely + determined by automatic stream selection. + + out3.mkv consists of the cloned video output from the hue filter and + the first audio stream from B.mp4. + +OPTIONS + All the numerical options, if not specified otherwise, accept a string + representing a number as input, which may be followed by one of the SI + unit prefixes, for example: 'K', 'M', or 'G'. + + If 'i' is appended to the SI unit prefix, the complete prefix will be + interpreted as a unit prefix for binary multiples, which are based on + powers of 1024 instead of powers of 1000. Appending 'B' to the SI unit + prefix multiplies the value by 8. This allows using, for example: 'KB', + 'MiB', 'G' and 'B' as number suffixes. + + Options which do not take arguments are boolean options, and set the + corresponding value to true. They can be set to false by prefixing the + option name with "no". For example using "-nofoo" will set the boolean + option with name "foo" to false. + + Stream specifiers + Some options are applied per-stream, e.g. bitrate or codec. Stream + specifiers are used to precisely specify which stream(s) a given option + belongs to. + + A stream specifier is a string generally appended to the option name + and separated from it by a colon. E.g. "-codec:a:1 ac3" contains the + "a:1" stream specifier, which matches the second audio stream. + Therefore, it would select the ac3 codec for the second audio stream. + + A stream specifier can match several streams, so that the option is + applied to all of them. E.g. the stream specifier in "-b:a 128k" + matches all audio streams. + + An empty stream specifier matches all streams. For example, "-codec + copy" or "-codec: copy" would copy all the streams without reencoding. + + Possible forms of stream specifiers are: + + stream_index + Matches the stream with this index. E.g. "-threads:1 4" would set + the thread count for the second stream to 4. If stream_index is + used as an additional stream specifier (see below), then it selects + stream number stream_index from the matching streams. Stream + numbering is based on the order of the streams as detected by + libavformat except when a program ID is also specified. In this + case it is based on the ordering of the streams in the program. + + stream_type[:additional_stream_specifier] + stream_type is one of following: 'v' or 'V' for video, 'a' for + audio, 's' for subtitle, 'd' for data, and 't' for attachments. 'v' + matches all video streams, 'V' only matches video streams which are + not attached pictures, video thumbnails or cover arts. If + additional_stream_specifier is used, then it matches streams which + both have this type and match the additional_stream_specifier. + Otherwise, it matches all streams of the specified type. + + p:program_id[:additional_stream_specifier] + Matches streams which are in the program with the id program_id. If + additional_stream_specifier is used, then it matches streams which + both are part of the program and match the + additional_stream_specifier. + + #stream_id or i:stream_id + Match the stream by stream id (e.g. PID in MPEG-TS container). + + m:key[:value] + Matches streams with the metadata tag key having the specified + value. If value is not given, matches streams that contain the + given tag with any value. + + u Matches streams with usable configuration, the codec must be + defined and the essential information such as video dimension or + audio sample rate must be present. + + Note that in ffmpeg, matching by metadata will only work properly + for input files. + + Generic options + These options are shared amongst the ff* tools. + + -L Show license. + + -h, -?, -help, --help [arg] + Show help. An optional parameter may be specified to print help + about a specific item. If no argument is specified, only basic (non + advanced) tool options are shown. + + Possible values of arg are: + + long + Print advanced tool options in addition to the basic tool + options. + + full + Print complete list of options, including shared and private + options for encoders, decoders, demuxers, muxers, filters, etc. + + decoder=decoder_name + Print detailed information about the decoder named + decoder_name. Use the -decoders option to get a list of all + decoders. + + encoder=encoder_name + Print detailed information about the encoder named + encoder_name. Use the -encoders option to get a list of all + encoders. + + demuxer=demuxer_name + Print detailed information about the demuxer named + demuxer_name. Use the -formats option to get a list of all + demuxers and muxers. + + muxer=muxer_name + Print detailed information about the muxer named muxer_name. + Use the -formats option to get a list of all muxers and + demuxers. + + filter=filter_name + Print detailed information about the filter name filter_name. + Use the -filters option to get a list of all filters. + + bsf=bitstream_filter_name + Print detailed information about the bitstream filter name + bitstream_filter_name. Use the -bsfs option to get a list of + all bitstream filters. + + -version + Show version. + + -formats + Show available formats (including devices). + + -demuxers + Show available demuxers. + + -muxers + Show available muxers. + + -devices + Show available devices. + + -codecs + Show all codecs known to libavcodec. + + Note that the term 'codec' is used throughout this documentation as + a shortcut for what is more correctly called a media bitstream + format. + + -decoders + Show available decoders. + + -encoders + Show all available encoders. + + -bsfs + Show available bitstream filters. + + -protocols + Show available protocols. + + -filters + Show available libavfilter filters. + + -pix_fmts + Show available pixel formats. + + -sample_fmts + Show available sample formats. + + -layouts + Show channel names and standard channel layouts. + + -colors + Show recognized color names. + + -sources device[,opt1=val1[,opt2=val2]...] + Show autodetected sources of the input device. Some devices may + provide system-dependent source names that cannot be autodetected. + The returned list cannot be assumed to be always complete. + + ffmpeg -sources pulse,server=192.168.0.4 + + -sinks device[,opt1=val1[,opt2=val2]...] + Show autodetected sinks of the output device. Some devices may + provide system-dependent sink names that cannot be autodetected. + The returned list cannot be assumed to be always complete. + + ffmpeg -sinks pulse,server=192.168.0.4 + + -loglevel [flags+]loglevel | -v [flags+]loglevel + Set logging level and flags used by the library. + + The optional flags prefix can consist of the following values: + + repeat + Indicates that repeated log output should not be compressed to + the first line and the "Last message repeated n times" line + will be omitted. + + level + Indicates that log output should add a "[level]" prefix to each + message line. This can be used as an alternative to log + coloring, e.g. when dumping the log to file. + + Flags can also be used alone by adding a '+'/'-' prefix to + set/reset a single flag without affecting other flags or changing + loglevel. When setting both flags and loglevel, a '+' separator is + expected between the last flags value and before loglevel. + + loglevel is a string or a number containing one of the following + values: + + quiet, -8 + Show nothing at all; be silent. + + panic, 0 + Only show fatal errors which could lead the process to crash, + such as an assertion failure. This is not currently used for + anything. + + fatal, 8 + Only show fatal errors. These are errors after which the + process absolutely cannot continue. + + error, 16 + Show all errors, including ones which can be recovered from. + + warning, 24 + Show all warnings and errors. Any message related to possibly + incorrect or unexpected events will be shown. + + info, 32 + Show informative messages during processing. This is in + addition to warnings and errors. This is the default value. + + verbose, 40 + Same as "info", except more verbose. + + debug, 48 + Show everything, including debugging information. + + trace, 56 + + For example to enable repeated log output, add the "level" prefix, + and set loglevel to "verbose": + + ffmpeg -loglevel repeat+level+verbose -i input output + + Another example that enables repeated log output without affecting + current state of "level" prefix flag or loglevel: + + ffmpeg [...] -loglevel +repeat + + By default the program logs to stderr. If coloring is supported by + the terminal, colors are used to mark errors and warnings. Log + coloring can be disabled setting the environment variable + AV_LOG_FORCE_NOCOLOR or NO_COLOR, or can be forced setting the + environment variable AV_LOG_FORCE_COLOR. The use of the + environment variable NO_COLOR is deprecated and will be dropped in + a future FFmpeg version. + + -report + Dump full command line and console output to a file named + "program-YYYYMMDD-HHMMSS.log" in the current directory. This file + can be useful for bug reports. It also implies "-loglevel debug". + + Setting the environment variable FFREPORT to any value has the same + effect. If the value is a ':'-separated key=value sequence, these + options will affect the report; option values must be escaped if + they contain special characters or the options delimiter ':' (see + the ``Quoting and escaping'' section in the ffmpeg-utils manual). + + The following options are recognized: + + file + set the file name to use for the report; %p is expanded to the + name of the program, %t is expanded to a timestamp, "%%" is + expanded to a plain "%" + + level + set the log verbosity level using a numerical value (see + "-loglevel"). + + For example, to output a report to a file named ffreport.log using + a log level of 32 (alias for log level "info"): + + FFREPORT=file=ffreport.log:level=32 ffmpeg -i input output + + Errors in parsing the environment variable are not fatal, and will + not appear in the report. + + -hide_banner + Suppress printing banner. + + All FFmpeg tools will normally show a copyright notice, build + options and library versions. This option can be used to suppress + printing this information. + + -cpuflags flags (global) + Allows setting and clearing cpu flags. This option is intended for + testing. Do not use it unless you know what you're doing. + + ffmpeg -cpuflags -sse+mmx ... + ffmpeg -cpuflags mmx ... + ffmpeg -cpuflags 0 ... + + Possible flags for this option are: + + x86 + mmx + mmxext + sse + sse2 + sse2slow + sse3 + sse3slow + ssse3 + atom + sse4.1 + sse4.2 + avx + avx2 + xop + fma3 + fma4 + 3dnow + 3dnowext + bmi1 + bmi2 + cmov + ARM + armv5te + armv6 + armv6t2 + vfp + vfpv3 + neon + setend + AArch64 + armv8 + vfp + neon + PowerPC + altivec + Specific Processors + pentium2 + pentium3 + pentium4 + k6 + k62 + athlon + athlonxp + k8 + + AVOptions + These options are provided directly by the libavformat, libavdevice and + libavcodec libraries. To see the list of available AVOptions, use the + -help option. They are separated into two categories: + + generic + These options can be set for any container, codec or device. + Generic options are listed under AVFormatContext options for + containers/devices and under AVCodecContext options for codecs. + + private + These options are specific to the given container, device or codec. + Private options are listed under their corresponding + containers/devices/codecs. + + For example to write an ID3v2.3 header instead of a default ID3v2.4 to + an MP3 file, use the id3v2_version private option of the MP3 muxer: + + ffmpeg -i input.flac -id3v2_version 3 out.mp3 + + All codec AVOptions are per-stream, and thus a stream specifier should + be attached to them: + + ffmpeg -i multichannel.mxf -map 0:v:0 -map 0:a:0 -map 0:a:0 -c:a:0 ac3 -b:a:0 640k -ac:a:1 2 -c:a:1 aac -b:2 128k out.mp4 + + In the above example, a multichannel audio stream is mapped twice for + output. The first instance is encoded with codec ac3 and bitrate 640k. + The second instance is downmixed to 2 channels and encoded with codec + aac. A bitrate of 128k is specified for it using absolute index of the + output stream. + + Note: the -nooption syntax cannot be used for boolean AVOptions, use + -option 0/-option 1. + + Note: the old undocumented way of specifying per-stream AVOptions by + prepending v/a/s to the options name is now obsolete and will be + removed soon. + + Main options + -f fmt (input/output) + Force input or output file format. The format is normally auto + detected for input files and guessed from the file extension for + output files, so this option is not needed in most cases. + + -i url (input) + input file url + + -y (global) + Overwrite output files without asking. + + -n (global) + Do not overwrite output files, and exit immediately if a specified + output file already exists. + + -stream_loop number (input) + Set number of times input stream shall be looped. Loop 0 means no + loop, loop -1 means infinite loop. + + -c[:stream_specifier] codec (input/output,per-stream) + -codec[:stream_specifier] codec (input/output,per-stream) + Select an encoder (when used before an output file) or a decoder + (when used before an input file) for one or more streams. codec is + the name of a decoder/encoder or a special value "copy" (output + only) to indicate that the stream is not to be re-encoded. + + For example + + ffmpeg -i INPUT -map 0 -c:v libx264 -c:a copy OUTPUT + + encodes all video streams with libx264 and copies all audio + streams. + + For each stream, the last matching "c" option is applied, so + + ffmpeg -i INPUT -map 0 -c copy -c:v:1 libx264 -c:a:137 libvorbis OUTPUT + + will copy all the streams except the second video, which will be + encoded with libx264, and the 138th audio, which will be encoded + with libvorbis. + + -t duration (input/output) + When used as an input option (before "-i"), limit the duration of + data read from the input file. + + When used as an output option (before an output url), stop writing + the output after its duration reaches duration. + + duration must be a time duration specification, see the Time + duration section in the ffmpeg-utils(1) manual. + + -to and -t are mutually exclusive and -t has priority. + + -to position (input/output) + Stop writing the output or reading the input at position. position + must be a time duration specification, see the Time duration + section in the ffmpeg-utils(1) manual. + + -to and -t are mutually exclusive and -t has priority. + + -fs limit_size (output) + Set the file size limit, expressed in bytes. No further chunk of + bytes is written after the limit is exceeded. The size of the + output file is slightly more than the requested file size. + + -ss position (input/output) + When used as an input option (before "-i"), seeks in this input + file to position. Note that in most formats it is not possible to + seek exactly, so ffmpeg will seek to the closest seek point before + position. When transcoding and -accurate_seek is enabled (the + default), this extra segment between the seek point and position + will be decoded and discarded. When doing stream copy or when + -noaccurate_seek is used, it will be preserved. + + When used as an output option (before an output url), decodes but + discards input until the timestamps reach position. + + position must be a time duration specification, see the Time + duration section in the ffmpeg-utils(1) manual. + + -sseof position (input) + Like the "-ss" option but relative to the "end of file". That is + negative values are earlier in the file, 0 is at EOF. + + -itsoffset offset (input) + Set the input time offset. + + offset must be a time duration specification, see the Time duration + section in the ffmpeg-utils(1) manual. + + The offset is added to the timestamps of the input files. + Specifying a positive offset means that the corresponding streams + are delayed by the time duration specified in offset. + + -itsscale scale (input,per-stream) + Rescale input timestamps. scale should be a floating point number. + + -timestamp date (output) + Set the recording timestamp in the container. + + date must be a date specification, see the Date section in the + ffmpeg-utils(1) manual. + + -metadata[:metadata_specifier] key=value (output,per-metadata) + Set a metadata key/value pair. + + An optional metadata_specifier may be given to set metadata on + streams, chapters or programs. See "-map_metadata" documentation + for details. + + This option overrides metadata set with "-map_metadata". It is also + possible to delete metadata by using an empty value. + + For example, for setting the title in the output file: + + ffmpeg -i in.avi -metadata title="my title" out.flv + + To set the language of the first audio stream: + + ffmpeg -i INPUT -metadata:s:a:0 language=eng OUTPUT + + -disposition[:stream_specifier] value (output,per-stream) + Sets the disposition for a stream. + + This option overrides the disposition copied from the input stream. + It is also possible to delete the disposition by setting it to 0. + + The following dispositions are recognized: + + default + dub + original + comment + lyrics + karaoke + forced + hearing_impaired + visual_impaired + clean_effects + attached_pic + captions + descriptions + dependent + metadata + + For example, to make the second audio stream the default stream: + + ffmpeg -i in.mkv -c copy -disposition:a:1 default out.mkv + + To make the second subtitle stream the default stream and remove + the default disposition from the first subtitle stream: + + ffmpeg -i in.mkv -c copy -disposition:s:0 0 -disposition:s:1 default out.mkv + + To add an embedded cover/thumbnail: + + ffmpeg -i in.mp4 -i IMAGE -map 0 -map 1 -c copy -c:v:1 png -disposition:v:1 attached_pic out.mp4 + + Not all muxers support embedded thumbnails, and those who do, only + support a few formats, like JPEG or PNG. + + -program + [title=title:][program_num=program_num:]st=stream[:st=stream...] + (output) + Creates a program with the specified title, program_num and adds + the specified stream(s) to it. + + -target type (output) + Specify target file type ("vcd", "svcd", "dvd", "dv", "dv50"). type + may be prefixed with "pal-", "ntsc-" or "film-" to use the + corresponding standard. All the format options (bitrate, codecs, + buffer sizes) are then set automatically. You can just type: + + ffmpeg -i myfile.avi -target vcd /tmp/vcd.mpg + + Nevertheless you can specify additional options as long as you know + they do not conflict with the standard, as in: + + ffmpeg -i myfile.avi -target vcd -bf 2 /tmp/vcd.mpg + + -dn (input/output) + As an input option, blocks all data streams of a file from being + filtered or being automatically selected or mapped for any output. + See "-discard" option to disable streams individually. + + As an output option, disables data recording i.e. automatic + selection or mapping of any data stream. For full manual control + see the "-map" option. + + -dframes number (output) + Set the number of data frames to output. This is an obsolete alias + for "-frames:d", which you should use instead. + + -frames[:stream_specifier] framecount (output,per-stream) + Stop writing to the stream after framecount frames. + + -q[:stream_specifier] q (output,per-stream) + -qscale[:stream_specifier] q (output,per-stream) + Use fixed quality scale (VBR). The meaning of q/qscale is codec- + dependent. If qscale is used without a stream_specifier then it + applies only to the video stream, this is to maintain compatibility + with previous behavior and as specifying the same codec specific + value to 2 different codecs that is audio and video generally is + not what is intended when no stream_specifier is used. + + -filter[:stream_specifier] filtergraph (output,per-stream) + Create the filtergraph specified by filtergraph and use it to + filter the stream. + + filtergraph is a description of the filtergraph to apply to the + stream, and must have a single input and a single output of the + same type of the stream. In the filtergraph, the input is + associated to the label "in", and the output to the label "out". + See the ffmpeg-filters manual for more information about the + filtergraph syntax. + + See the -filter_complex option if you want to create filtergraphs + with multiple inputs and/or outputs. + + -filter_script[:stream_specifier] filename (output,per-stream) + This option is similar to -filter, the only difference is that its + argument is the name of the file from which a filtergraph + description is to be read. + + -filter_threads nb_threads (global) + Defines how many threads are used to process a filter pipeline. + Each pipeline will produce a thread pool with this many threads + available for parallel processing. The default is the number of + available CPUs. + + -pre[:stream_specifier] preset_name (output,per-stream) + Specify the preset for matching stream(s). + + -stats (global) + Print encoding progress/statistics. It is on by default, to + explicitly disable it you need to specify "-nostats". + + -progress url (global) + Send program-friendly progress information to url. + + Progress information is written approximately every second and at + the end of the encoding process. It is made of "key=value" lines. + key consists of only alphanumeric characters. The last key of a + sequence of progress information is always "progress". + + -stdin + Enable interaction on standard input. On by default unless standard + input is used as an input. To explicitly disable interaction you + need to specify "-nostdin". + + Disabling interaction on standard input is useful, for example, if + ffmpeg is in the background process group. Roughly the same result + can be achieved with "ffmpeg ... < /dev/null" but it requires a + shell. + + -debug_ts (global) + Print timestamp information. It is off by default. This option is + mostly useful for testing and debugging purposes, and the output + format may change from one version to another, so it should not be + employed by portable scripts. + + See also the option "-fdebug ts". + + -attach filename (output) + Add an attachment to the output file. This is supported by a few + formats like Matroska for e.g. fonts used in rendering subtitles. + Attachments are implemented as a specific type of stream, so this + option will add a new stream to the file. It is then possible to + use per-stream options on this stream in the usual way. Attachment + streams created with this option will be created after all the + other streams (i.e. those created with "-map" or automatic + mappings). + + Note that for Matroska you also have to set the mimetype metadata + tag: + + ffmpeg -i INPUT -attach DejaVuSans.ttf -metadata:s:2 mimetype=application/x-truetype-font out.mkv + + (assuming that the attachment stream will be third in the output + file). + + -dump_attachment[:stream_specifier] filename (input,per-stream) + Extract the matching attachment stream into a file named filename. + If filename is empty, then the value of the "filename" metadata tag + will be used. + + E.g. to extract the first attachment to a file named 'out.ttf': + + ffmpeg -dump_attachment:t:0 out.ttf -i INPUT + + To extract all attachments to files determined by the "filename" + tag: + + ffmpeg -dump_attachment:t "" -i INPUT + + Technical note -- attachments are implemented as codec extradata, + so this option can actually be used to extract extradata from any + stream, not just attachments. + + -noautorotate + Disable automatically rotating video based on file metadata. + + Video Options + -vframes number (output) + Set the number of video frames to output. This is an obsolete alias + for "-frames:v", which you should use instead. + + -r[:stream_specifier] fps (input/output,per-stream) + Set frame rate (Hz value, fraction or abbreviation). + + As an input option, ignore any timestamps stored in the file and + instead generate timestamps assuming constant frame rate fps. This + is not the same as the -framerate option used for some input + formats like image2 or v4l2 (it used to be the same in older + versions of FFmpeg). If in doubt use -framerate instead of the + input option -r. + + As an output option, duplicate or drop input frames to achieve + constant output frame rate fps. + + -s[:stream_specifier] size (input/output,per-stream) + Set frame size. + + As an input option, this is a shortcut for the video_size private + option, recognized by some demuxers for which the frame size is + either not stored in the file or is configurable -- e.g. raw video + or video grabbers. + + As an output option, this inserts the "scale" video filter to the + end of the corresponding filtergraph. Please use the "scale" filter + directly to insert it at the beginning or some other place. + + The format is wxh (default - same as source). + + -aspect[:stream_specifier] aspect (output,per-stream) + Set the video display aspect ratio specified by aspect. + + aspect can be a floating point number string, or a string of the + form num:den, where num and den are the numerator and denominator + of the aspect ratio. For example "4:3", "16:9", "1.3333", and + "1.7777" are valid argument values. + + If used together with -vcodec copy, it will affect the aspect ratio + stored at container level, but not the aspect ratio stored in + encoded frames, if it exists. + + -vn (input/output) + As an input option, blocks all video streams of a file from being + filtered or being automatically selected or mapped for any output. + See "-discard" option to disable streams individually. + + As an output option, disables video recording i.e. automatic + selection or mapping of any video stream. For full manual control + see the "-map" option. + + -vcodec codec (output) + Set the video codec. This is an alias for "-codec:v". + + -pass[:stream_specifier] n (output,per-stream) + Select the pass number (1 or 2). It is used to do two-pass video + encoding. The statistics of the video are recorded in the first + pass into a log file (see also the option -passlogfile), and in the + second pass that log file is used to generate the video at the + exact requested bitrate. On pass 1, you may just deactivate audio + and set output to null, examples for Windows and Unix: + + ffmpeg -i foo.mov -c:v libxvid -pass 1 -an -f rawvideo -y NUL + ffmpeg -i foo.mov -c:v libxvid -pass 1 -an -f rawvideo -y /dev/null + + -passlogfile[:stream_specifier] prefix (output,per-stream) + Set two-pass log file name prefix to prefix, the default file name + prefix is ``ffmpeg2pass''. The complete file name will be + PREFIX-N.log, where N is a number specific to the output stream + + -vf filtergraph (output) + Create the filtergraph specified by filtergraph and use it to + filter the stream. + + This is an alias for "-filter:v", see the -filter option. + + Advanced Video options + -pix_fmt[:stream_specifier] format (input/output,per-stream) + Set pixel format. Use "-pix_fmts" to show all the supported pixel + formats. If the selected pixel format can not be selected, ffmpeg + will print a warning and select the best pixel format supported by + the encoder. If pix_fmt is prefixed by a "+", ffmpeg will exit + with an error if the requested pixel format can not be selected, + and automatic conversions inside filtergraphs are disabled. If + pix_fmt is a single "+", ffmpeg selects the same pixel format as + the input (or graph output) and automatic conversions are disabled. + + -sws_flags flags (input/output) + Set SwScaler flags. + + -rc_override[:stream_specifier] override (output,per-stream) + Rate control override for specific intervals, formatted as + "int,int,int" list separated with slashes. Two first values are the + beginning and end frame numbers, last one is quantizer to use if + positive, or quality factor if negative. + + -ilme + Force interlacing support in encoder (MPEG-2 and MPEG-4 only). Use + this option if your input file is interlaced and you want to keep + the interlaced format for minimum losses. The alternative is to + deinterlace the input stream with -deinterlace, but deinterlacing + introduces losses. + + -psnr + Calculate PSNR of compressed frames. + + -vstats + Dump video coding statistics to vstats_HHMMSS.log. + + -vstats_file file + Dump video coding statistics to file. + + -vstats_version file + Specifies which version of the vstats format to use. Default is 2. + + version = 1 : + + "frame= %5d q= %2.1f PSNR= %6.2f f_size= %6d s_size= %8.0fkB time= + %0.3f br= %7.1fkbits/s avg_br= %7.1fkbits/s" + + version > 1: + + "out= %2d st= %2d frame= %5d q= %2.1f PSNR= %6.2f f_size= %6d + s_size= %8.0fkB time= %0.3f br= %7.1fkbits/s avg_br= %7.1fkbits/s" + + -top[:stream_specifier] n (output,per-stream) + top=1/bottom=0/auto=-1 field first + + -dc precision + Intra_dc_precision. + + -vtag fourcc/tag (output) + Force video tag/fourcc. This is an alias for "-tag:v". + + -qphist (global) + Show QP histogram + + -vbsf bitstream_filter + Deprecated see -bsf + + -force_key_frames[:stream_specifier] time[,time...] (output,per-stream) + -force_key_frames[:stream_specifier] expr:expr (output,per-stream) + Force key frames at the specified timestamps, more precisely at the + first frames after each specified time. + + If the argument is prefixed with "expr:", the string expr is + interpreted like an expression and is evaluated for each frame. A + key frame is forced in case the evaluation is non-zero. + + If one of the times is ""chapters"[delta]", it is expanded into the + time of the beginning of all chapters in the file, shifted by + delta, expressed as a time in seconds. This option can be useful + to ensure that a seek point is present at a chapter mark or any + other designated place in the output file. + + For example, to insert a key frame at 5 minutes, plus key frames + 0.1 second before the beginning of every chapter: + + -force_key_frames 0:05:00,chapters-0.1 + + The expression in expr can contain the following constants: + + n the number of current processed frame, starting from 0 + + n_forced + the number of forced frames + + prev_forced_n + the number of the previous forced frame, it is "NAN" when no + keyframe was forced yet + + prev_forced_t + the time of the previous forced frame, it is "NAN" when no + keyframe was forced yet + + t the time of the current processed frame + + For example to force a key frame every 5 seconds, you can specify: + + -force_key_frames expr:gte(t,n_forced*5) + + To force a key frame 5 seconds after the time of the last forced + one, starting from second 13: + + -force_key_frames expr:if(isnan(prev_forced_t),gte(t,13),gte(t,prev_forced_t+5)) + + Note that forcing too many keyframes is very harmful for the + lookahead algorithms of certain encoders: using fixed-GOP options + or similar would be more efficient. + + -copyinkf[:stream_specifier] (output,per-stream) + When doing stream copy, copy also non-key frames found at the + beginning. + + -init_hw_device type[=name][:device[,key=value...]] + Initialise a new hardware device of type type called name, using + the given device parameters. If no name is specified it will + receive a default name of the form "type%d". + + The meaning of device and the following arguments depends on the + device type: + + cuda + device is the number of the CUDA device. + + dxva2 + device is the number of the Direct3D 9 display adapter. + + vaapi + device is either an X11 display name or a DRM render node. If + not specified, it will attempt to open the default X11 display + ($DISPLAY) and then the first DRM render node + (/dev/dri/renderD128). + + vdpau + device is an X11 display name. If not specified, it will + attempt to open the default X11 display ($DISPLAY). + + qsv device selects a value in MFX_IMPL_*. Allowed values are: + + auto + sw + hw + auto_any + hw_any + hw2 + hw3 + hw4 + + If not specified, auto_any is used. (Note that it may be + easier to achieve the desired result for QSV by creating the + platform-appropriate subdevice (dxva2 or vaapi) and then + deriving a QSV device from that.) + + opencl + device selects the platform and device as + platform_index.device_index. + + The set of devices can also be filtered using the key-value + pairs to find only devices matching particular platform or + device strings. + + The strings usable as filters are: + + platform_profile + platform_version + platform_name + platform_vendor + platform_extensions + device_name + device_vendor + driver_version + device_version + device_profile + device_extensions + device_type + + The indices and filters must together uniquely select a device. + + Examples: + + -init_hw_device opencl:0.1 + Choose the second device on the first platform. + + -init_hw_device opencl:,device_name=Foo9000 + Choose the device with a name containing the string + Foo9000. + + -init_hw_device + opencl:1,device_type=gpu,device_extensions=cl_khr_fp16 + Choose the GPU device on the second platform supporting the + cl_khr_fp16 extension. + + -init_hw_device type[=name]@source + Initialise a new hardware device of type type called name, deriving + it from the existing device with the name source. + + -init_hw_device list + List all hardware device types supported in this build of ffmpeg. + + -filter_hw_device name + Pass the hardware device called name to all filters in any filter + graph. This can be used to set the device to upload to with the + "hwupload" filter, or the device to map to with the "hwmap" filter. + Other filters may also make use of this parameter when they require + a hardware device. Note that this is typically only required when + the input is not already in hardware frames - when it is, filters + will derive the device they require from the context of the frames + they receive as input. + + This is a global setting, so all filters will receive the same + device. + + -hwaccel[:stream_specifier] hwaccel (input,per-stream) + Use hardware acceleration to decode the matching stream(s). The + allowed values of hwaccel are: + + none + Do not use any hardware acceleration (the default). + + auto + Automatically select the hardware acceleration method. + + vdpau + Use VDPAU (Video Decode and Presentation API for Unix) hardware + acceleration. + + dxva2 + Use DXVA2 (DirectX Video Acceleration) hardware acceleration. + + vaapi + Use VAAPI (Video Acceleration API) hardware acceleration. + + qsv Use the Intel QuickSync Video acceleration for video + transcoding. + + Unlike most other values, this option does not enable + accelerated decoding (that is used automatically whenever a qsv + decoder is selected), but accelerated transcoding, without + copying the frames into the system memory. + + For it to work, both the decoder and the encoder must support + QSV acceleration and no filters must be used. + + This option has no effect if the selected hwaccel is not available + or not supported by the chosen decoder. + + Note that most acceleration methods are intended for playback and + will not be faster than software decoding on modern CPUs. + Additionally, ffmpeg will usually need to copy the decoded frames + from the GPU memory into the system memory, resulting in further + performance loss. This option is thus mainly useful for testing. + + -hwaccel_device[:stream_specifier] hwaccel_device (input,per-stream) + Select a device to use for hardware acceleration. + + This option only makes sense when the -hwaccel option is also + specified. It can either refer to an existing device created with + -init_hw_device by name, or it can create a new device as if + -init_hw_device type:hwaccel_device were called immediately before. + + -hwaccels + List all hardware acceleration methods supported in this build of + ffmpeg. + + Audio Options + -aframes number (output) + Set the number of audio frames to output. This is an obsolete alias + for "-frames:a", which you should use instead. + + -ar[:stream_specifier] freq (input/output,per-stream) + Set the audio sampling frequency. For output streams it is set by + default to the frequency of the corresponding input stream. For + input streams this option only makes sense for audio grabbing + devices and raw demuxers and is mapped to the corresponding demuxer + options. + + -aq q (output) + Set the audio quality (codec-specific, VBR). This is an alias for + -q:a. + + -ac[:stream_specifier] channels (input/output,per-stream) + Set the number of audio channels. For output streams it is set by + default to the number of input audio channels. For input streams + this option only makes sense for audio grabbing devices and raw + demuxers and is mapped to the corresponding demuxer options. + + -an (input/output) + As an input option, blocks all audio streams of a file from being + filtered or being automatically selected or mapped for any output. + See "-discard" option to disable streams individually. + + As an output option, disables audio recording i.e. automatic + selection or mapping of any audio stream. For full manual control + see the "-map" option. + + -acodec codec (input/output) + Set the audio codec. This is an alias for "-codec:a". + + -sample_fmt[:stream_specifier] sample_fmt (output,per-stream) + Set the audio sample format. Use "-sample_fmts" to get a list of + supported sample formats. + + -af filtergraph (output) + Create the filtergraph specified by filtergraph and use it to + filter the stream. + + This is an alias for "-filter:a", see the -filter option. + + Advanced Audio options + -atag fourcc/tag (output) + Force audio tag/fourcc. This is an alias for "-tag:a". + + -absf bitstream_filter + Deprecated, see -bsf + + -guess_layout_max channels (input,per-stream) + If some input channel layout is not known, try to guess only if it + corresponds to at most the specified number of channels. For + example, 2 tells to ffmpeg to recognize 1 channel as mono and 2 + channels as stereo but not 6 channels as 5.1. The default is to + always try to guess. Use 0 to disable all guessing. + + Subtitle options + -scodec codec (input/output) + Set the subtitle codec. This is an alias for "-codec:s". + + -sn (input/output) + As an input option, blocks all subtitle streams of a file from + being filtered or being automatically selected or mapped for any + output. See "-discard" option to disable streams individually. + + As an output option, disables subtitle recording i.e. automatic + selection or mapping of any subtitle stream. For full manual + control see the "-map" option. + + -sbsf bitstream_filter + Deprecated, see -bsf + + Advanced Subtitle options + -fix_sub_duration + Fix subtitles durations. For each subtitle, wait for the next + packet in the same stream and adjust the duration of the first to + avoid overlap. This is necessary with some subtitles codecs, + especially DVB subtitles, because the duration in the original + packet is only a rough estimate and the end is actually marked by + an empty subtitle frame. Failing to use this option when necessary + can result in exaggerated durations or muxing failures due to non- + monotonic timestamps. + + Note that this option will delay the output of all data until the + next subtitle packet is decoded: it may increase memory consumption + and latency a lot. + + -canvas_size size + Set the size of the canvas used to render subtitles. + + Advanced options + -map + [-]input_file_id[:stream_specifier][?][,sync_file_id[:stream_specifier]] + | [linklabel] (output) + Designate one or more input streams as a source for the output + file. Each input stream is identified by the input file index + input_file_id and the input stream index input_stream_id within the + input file. Both indices start at 0. If specified, + sync_file_id:stream_specifier sets which input stream is used as a + presentation sync reference. + + The first "-map" option on the command line specifies the source + for output stream 0, the second "-map" option specifies the source + for output stream 1, etc. + + A "-" character before the stream identifier creates a "negative" + mapping. It disables matching streams from already created + mappings. + + A trailing "?" after the stream index will allow the map to be + optional: if the map matches no streams the map will be ignored + instead of failing. Note the map will still fail if an invalid + input file index is used; such as if the map refers to a non- + existent input. + + An alternative [linklabel] form will map outputs from complex + filter graphs (see the -filter_complex option) to the output file. + linklabel must correspond to a defined output link label in the + graph. + + For example, to map ALL streams from the first input file to output + + ffmpeg -i INPUT -map 0 output + + For example, if you have two audio streams in the first input file, + these streams are identified by "0:0" and "0:1". You can use "-map" + to select which streams to place in an output file. For example: + + ffmpeg -i INPUT -map 0:1 out.wav + + will map the input stream in INPUT identified by "0:1" to the + (single) output stream in out.wav. + + For example, to select the stream with index 2 from input file + a.mov (specified by the identifier "0:2"), and stream with index 6 + from input b.mov (specified by the identifier "1:6"), and copy them + to the output file out.mov: + + ffmpeg -i a.mov -i b.mov -c copy -map 0:2 -map 1:6 out.mov + + To select all video and the third audio stream from an input file: + + ffmpeg -i INPUT -map 0:v -map 0:a:2 OUTPUT + + To map all the streams except the second audio, use negative + mappings + + ffmpeg -i INPUT -map 0 -map -0:a:1 OUTPUT + + To map the video and audio streams from the first input, and using + the trailing "?", ignore the audio mapping if no audio streams + exist in the first input: + + ffmpeg -i INPUT -map 0:v -map 0:a? OUTPUT + + To pick the English audio stream: + + ffmpeg -i INPUT -map 0:m:language:eng OUTPUT + + Note that using this option disables the default mappings for this + output file. + + -ignore_unknown + Ignore input streams with unknown type instead of failing if + copying such streams is attempted. + + -copy_unknown + Allow input streams with unknown type to be copied instead of + failing if copying such streams is attempted. + + -map_channel + [input_file_id.stream_specifier.channel_id|-1][?][:output_file_id.stream_specifier] + Map an audio channel from a given input to an output. If + output_file_id.stream_specifier is not set, the audio channel will + be mapped on all the audio streams. + + Using "-1" instead of input_file_id.stream_specifier.channel_id + will map a muted channel. + + A trailing "?" will allow the map_channel to be optional: if the + map_channel matches no channel the map_channel will be ignored + instead of failing. + + For example, assuming INPUT is a stereo audio file, you can switch + the two audio channels with the following command: + + ffmpeg -i INPUT -map_channel 0.0.1 -map_channel 0.0.0 OUTPUT + + If you want to mute the first channel and keep the second: + + ffmpeg -i INPUT -map_channel -1 -map_channel 0.0.1 OUTPUT + + The order of the "-map_channel" option specifies the order of the + channels in the output stream. The output channel layout is guessed + from the number of channels mapped (mono if one "-map_channel", + stereo if two, etc.). Using "-ac" in combination of "-map_channel" + makes the channel gain levels to be updated if input and output + channel layouts don't match (for instance two "-map_channel" + options and "-ac 6"). + + You can also extract each channel of an input to specific outputs; + the following command extracts two channels of the INPUT audio + stream (file 0, stream 0) to the respective OUTPUT_CH0 and + OUTPUT_CH1 outputs: + + ffmpeg -i INPUT -map_channel 0.0.0 OUTPUT_CH0 -map_channel 0.0.1 OUTPUT_CH1 + + The following example splits the channels of a stereo input into + two separate streams, which are put into the same output file: + + ffmpeg -i stereo.wav -map 0:0 -map 0:0 -map_channel 0.0.0:0.0 -map_channel 0.0.1:0.1 -y out.ogg + + Note that currently each output stream can only contain channels + from a single input stream; you can't for example use + "-map_channel" to pick multiple input audio channels contained in + different streams (from the same or different files) and merge them + into a single output stream. It is therefore not currently + possible, for example, to turn two separate mono streams into a + single stereo stream. However splitting a stereo stream into two + single channel mono streams is possible. + + If you need this feature, a possible workaround is to use the + amerge filter. For example, if you need to merge a media (here + input.mkv) with 2 mono audio streams into one single stereo channel + audio stream (and keep the video stream), you can use the following + command: + + ffmpeg -i input.mkv -filter_complex "[0:1] [0:2] amerge" -c:a pcm_s16le -c:v copy output.mkv + + To map the first two audio channels from the first input, and using + the trailing "?", ignore the audio channel mapping if the first + input is mono instead of stereo: + + ffmpeg -i INPUT -map_channel 0.0.0 -map_channel 0.0.1? OUTPUT + + -map_metadata[:metadata_spec_out] infile[:metadata_spec_in] + (output,per-metadata) + Set metadata information of the next output file from infile. Note + that those are file indices (zero-based), not filenames. Optional + metadata_spec_in/out parameters specify, which metadata to copy. A + metadata specifier can have the following forms: + + g global metadata, i.e. metadata that applies to the whole file + + s[:stream_spec] + per-stream metadata. stream_spec is a stream specifier as + described in the Stream specifiers chapter. In an input + metadata specifier, the first matching stream is copied from. + In an output metadata specifier, all matching streams are + copied to. + + c:chapter_index + per-chapter metadata. chapter_index is the zero-based chapter + index. + + p:program_index + per-program metadata. program_index is the zero-based program + index. + + If metadata specifier is omitted, it defaults to global. + + By default, global metadata is copied from the first input file, + per-stream and per-chapter metadata is copied along with + streams/chapters. These default mappings are disabled by creating + any mapping of the relevant type. A negative file index can be used + to create a dummy mapping that just disables automatic copying. + + For example to copy metadata from the first stream of the input + file to global metadata of the output file: + + ffmpeg -i in.ogg -map_metadata 0:s:0 out.mp3 + + To do the reverse, i.e. copy global metadata to all audio streams: + + ffmpeg -i in.mkv -map_metadata:s:a 0:g out.mkv + + Note that simple 0 would work as well in this example, since global + metadata is assumed by default. + + -map_chapters input_file_index (output) + Copy chapters from input file with index input_file_index to the + next output file. If no chapter mapping is specified, then chapters + are copied from the first input file with at least one chapter. Use + a negative file index to disable any chapter copying. + + -benchmark (global) + Show benchmarking information at the end of an encode. Shows real, + system and user time used and maximum memory consumption. Maximum + memory consumption is not supported on all systems, it will usually + display as 0 if not supported. + + -benchmark_all (global) + Show benchmarking information during the encode. Shows real, + system and user time used in various steps (audio/video + encode/decode). + + -timelimit duration (global) + Exit after ffmpeg has been running for duration seconds. + + -dump (global) + Dump each input packet to stderr. + + -hex (global) + When dumping packets, also dump the payload. + + -re (input) + Read input at native frame rate. Mainly used to simulate a grab + device, or live input stream (e.g. when reading from a file). + Should not be used with actual grab devices or live input streams + (where it can cause packet loss). By default ffmpeg attempts to + read the input(s) as fast as possible. This option will slow down + the reading of the input(s) to the native frame rate of the + input(s). It is useful for real-time output (e.g. live streaming). + + -vsync parameter + Video sync method. For compatibility reasons old values can be + specified as numbers. Newly added values will have to be specified + as strings always. + + 0, passthrough + Each frame is passed with its timestamp from the demuxer to the + muxer. + + 1, cfr + Frames will be duplicated and dropped to achieve exactly the + requested constant frame rate. + + 2, vfr + Frames are passed through with their timestamp or dropped so as + to prevent 2 frames from having the same timestamp. + + drop + As passthrough but destroys all timestamps, making the muxer + generate fresh timestamps based on frame-rate. + + -1, auto + Chooses between 1 and 2 depending on muxer capabilities. This + is the default method. + + Note that the timestamps may be further modified by the muxer, + after this. For example, in the case that the format option + avoid_negative_ts is enabled. + + With -map you can select from which stream the timestamps should be + taken. You can leave either video or audio unchanged and sync the + remaining stream(s) to the unchanged one. + + -frame_drop_threshold parameter + Frame drop threshold, which specifies how much behind video frames + can be before they are dropped. In frame rate units, so 1.0 is one + frame. The default is -1.1. One possible usecase is to avoid + framedrops in case of noisy timestamps or to increase frame drop + precision in case of exact timestamps. + + -async samples_per_second + Audio sync method. "Stretches/squeezes" the audio stream to match + the timestamps, the parameter is the maximum samples per second by + which the audio is changed. -async 1 is a special case where only + the start of the audio stream is corrected without any later + correction. + + Note that the timestamps may be further modified by the muxer, + after this. For example, in the case that the format option + avoid_negative_ts is enabled. + + This option has been deprecated. Use the "aresample" audio filter + instead. + + -copyts + Do not process input timestamps, but keep their values without + trying to sanitize them. In particular, do not remove the initial + start time offset value. + + Note that, depending on the vsync option or on specific muxer + processing (e.g. in case the format option avoid_negative_ts is + enabled) the output timestamps may mismatch with the input + timestamps even when this option is selected. + + -start_at_zero + When used with copyts, shift input timestamps so they start at + zero. + + This means that using e.g. "-ss 50" will make output timestamps + start at 50 seconds, regardless of what timestamp the input file + started at. + + -copytb mode + Specify how to set the encoder timebase when stream copying. mode + is an integer numeric value, and can assume one of the following + values: + + 1 Use the demuxer timebase. + + The time base is copied to the output encoder from the + corresponding input demuxer. This is sometimes required to + avoid non monotonically increasing timestamps when copying + video streams with variable frame rate. + + 0 Use the decoder timebase. + + The time base is copied to the output encoder from the + corresponding input decoder. + + -1 Try to make the choice automatically, in order to generate a + sane output. + + Default value is -1. + + -enc_time_base[:stream_specifier] timebase (output,per-stream) + Set the encoder timebase. timebase is a floating point number, and + can assume one of the following values: + + 0 Assign a default value according to the media type. + + For video - use 1/framerate, for audio - use 1/samplerate. + + -1 Use the input stream timebase when possible. + + If an input stream is not available, the default timebase will + be used. + + >0 Use the provided number as the timebase. + + This field can be provided as a ratio of two integers (e.g. + 1:24, 1:48000) or as a floating point number (e.g. 0.04166, + 2.0833e-5) + + Default value is 0. + + -bitexact (input/output) + Enable bitexact mode for (de)muxer and (de/en)coder + + -shortest (output) + Finish encoding when the shortest input stream ends. + + -dts_delta_threshold + Timestamp discontinuity delta threshold. + + -muxdelay seconds (output) + Set the maximum demux-decode delay. + + -muxpreload seconds (output) + Set the initial demux-decode delay. + + -streamid output-stream-index:new-value (output) + Assign a new stream-id value to an output stream. This option + should be specified prior to the output filename to which it + applies. For the situation where multiple output files exist, a + streamid may be reassigned to a different value. + + For example, to set the stream 0 PID to 33 and the stream 1 PID to + 36 for an output mpegts file: + + ffmpeg -i inurl -streamid 0:33 -streamid 1:36 out.ts + + -bsf[:stream_specifier] bitstream_filters (output,per-stream) + Set bitstream filters for matching streams. bitstream_filters is a + comma-separated list of bitstream filters. Use the "-bsfs" option + to get the list of bitstream filters. + + ffmpeg -i h264.mp4 -c:v copy -bsf:v h264_mp4toannexb -an out.h264 + + ffmpeg -i file.mov -an -vn -bsf:s mov2textsub -c:s copy -f rawvideo sub.txt + + -tag[:stream_specifier] codec_tag (input/output,per-stream) + Force a tag/fourcc for matching streams. + + -timecode hh:mm:ssSEPff + Specify Timecode for writing. SEP is ':' for non drop timecode and + ';' (or '.') for drop. + + ffmpeg -i input.mpg -timecode 01:02:03.04 -r 30000/1001 -s ntsc output.mpg + + -filter_complex filtergraph (global) + Define a complex filtergraph, i.e. one with arbitrary number of + inputs and/or outputs. For simple graphs -- those with one input + and one output of the same type -- see the -filter options. + filtergraph is a description of the filtergraph, as described in + the ``Filtergraph syntax'' section of the ffmpeg-filters manual. + + Input link labels must refer to input streams using the + "[file_index:stream_specifier]" syntax (i.e. the same as -map + uses). If stream_specifier matches multiple streams, the first one + will be used. An unlabeled input will be connected to the first + unused input stream of the matching type. + + Output link labels are referred to with -map. Unlabeled outputs are + added to the first output file. + + Note that with this option it is possible to use only lavfi sources + without normal input files. + + For example, to overlay an image over video + + ffmpeg -i video.mkv -i image.png -filter_complex '[0:v][1:v]overlay[out]' -map + '[out]' out.mkv + + Here "[0:v]" refers to the first video stream in the first input + file, which is linked to the first (main) input of the overlay + filter. Similarly the first video stream in the second input is + linked to the second (overlay) input of overlay. + + Assuming there is only one video stream in each input file, we can + omit input labels, so the above is equivalent to + + ffmpeg -i video.mkv -i image.png -filter_complex 'overlay[out]' -map + '[out]' out.mkv + + Furthermore we can omit the output label and the single output from + the filter graph will be added to the output file automatically, so + we can simply write + + ffmpeg -i video.mkv -i image.png -filter_complex 'overlay' out.mkv + + To generate 5 seconds of pure red video using lavfi "color" source: + + ffmpeg -filter_complex 'color=c=red' -t 5 out.mkv + + -filter_complex_threads nb_threads (global) + Defines how many threads are used to process a filter_complex + graph. Similar to filter_threads but used for "-filter_complex" + graphs only. The default is the number of available CPUs. + + -lavfi filtergraph (global) + Define a complex filtergraph, i.e. one with arbitrary number of + inputs and/or outputs. Equivalent to -filter_complex. + + -filter_complex_script filename (global) + This option is similar to -filter_complex, the only difference is + that its argument is the name of the file from which a complex + filtergraph description is to be read. + + -accurate_seek (input) + This option enables or disables accurate seeking in input files + with the -ss option. It is enabled by default, so seeking is + accurate when transcoding. Use -noaccurate_seek to disable it, + which may be useful e.g. when copying some streams and transcoding + the others. + + -seek_timestamp (input) + This option enables or disables seeking by timestamp in input files + with the -ss option. It is disabled by default. If enabled, the + argument to the -ss option is considered an actual timestamp, and + is not offset by the start time of the file. This matters only for + files which do not start from timestamp 0, such as transport + streams. + + -thread_queue_size size (input) + This option sets the maximum number of queued packets when reading + from the file or device. With low latency / high rate live streams, + packets may be discarded if they are not read in a timely manner; + raising this value can avoid it. + + -sdp_file file (global) + Print sdp information for an output stream to file. This allows + dumping sdp information when at least one output isn't an rtp + stream. (Requires at least one of the output formats to be rtp). + + -discard (input) + Allows discarding specific streams or frames from streams. Any + input stream can be fully discarded, using value "all" whereas + selective discarding of frames from a stream occurs at the demuxer + and is not supported by all demuxers. + + none + Discard no frame. + + default + Default, which discards no frames. + + noref + Discard all non-reference frames. + + bidir + Discard all bidirectional frames. + + nokey + Discard all frames excepts keyframes. + + all Discard all frames. + + -abort_on flags (global) + Stop and abort on various conditions. The following flags are + available: + + empty_output + No packets were passed to the muxer, the output is empty. + + -xerror (global) + Stop and exit on error + + -max_muxing_queue_size packets (output,per-stream) + When transcoding audio and/or video streams, ffmpeg will not begin + writing into the output until it has one packet for each such + stream. While waiting for that to happen, packets for other streams + are buffered. This option sets the size of this buffer, in packets, + for the matching output stream. + + The default value of this option should be high enough for most + uses, so only touch this option if you are sure that you need it. + + As a special exception, you can use a bitmap subtitle stream as input: + it will be converted into a video with the same size as the largest + video in the file, or 720x576 if no video is present. Note that this is + an experimental and temporary solution. It will be removed once + libavfilter has proper support for subtitles. + + For example, to hardcode subtitles on top of a DVB-T recording stored + in MPEG-TS format, delaying the subtitles by 1 second: + + ffmpeg -i input.ts -filter_complex \ + '[#0x2ef] setpts=PTS+1/TB [sub] ; [#0x2d0] [sub] overlay' \ + -sn -map '#0x2dc' output.mkv + + (0x2d0, 0x2dc and 0x2ef are the MPEG-TS PIDs of respectively the video, + audio and subtitles streams; 0:0, 0:3 and 0:7 would have worked too) + + Preset files + A preset file contains a sequence of option=value pairs, one for each + line, specifying a sequence of options which would be awkward to + specify on the command line. Lines starting with the hash ('#') + character are ignored and are used to provide comments. Check the + presets directory in the FFmpeg source tree for examples. + + There are two types of preset files: ffpreset and avpreset files. + + ffpreset files + + ffpreset files are specified with the "vpre", "apre", "spre", and + "fpre" options. The "fpre" option takes the filename of the preset + instead of a preset name as input and can be used for any kind of + codec. For the "vpre", "apre", and "spre" options, the options + specified in a preset file are applied to the currently selected codec + of the same type as the preset option. + + The argument passed to the "vpre", "apre", and "spre" preset options + identifies the preset file to use according to the following rules: + + First ffmpeg searches for a file named arg.ffpreset in the directories + $FFMPEG_DATADIR (if set), and $HOME/.ffmpeg, and in the datadir defined + at configuration time (usually PREFIX/share/ffmpeg) or in a ffpresets + folder along the executable on win32, in that order. For example, if + the argument is "libvpx-1080p", it will search for the file + libvpx-1080p.ffpreset. + + If no such file is found, then ffmpeg will search for a file named + codec_name-arg.ffpreset in the above-mentioned directories, where + codec_name is the name of the codec to which the preset file options + will be applied. For example, if you select the video codec with + "-vcodec libvpx" and use "-vpre 1080p", then it will search for the + file libvpx-1080p.ffpreset. + + avpreset files + + avpreset files are specified with the "pre" option. They work similar + to ffpreset files, but they only allow encoder- specific options. + Therefore, an option=value pair specifying an encoder cannot be used. + + When the "pre" option is specified, ffmpeg will look for files with the + suffix .avpreset in the directories $AVCONV_DATADIR (if set), and + $HOME/.avconv, and in the datadir defined at configuration time + (usually PREFIX/share/ffmpeg), in that order. + + First ffmpeg searches for a file named codec_name-arg.avpreset in the + above-mentioned directories, where codec_name is the name of the codec + to which the preset file options will be applied. For example, if you + select the video codec with "-vcodec libvpx" and use "-pre 1080p", then + it will search for the file libvpx-1080p.avpreset. + + If no such file is found, then ffmpeg will search for a file named + arg.avpreset in the same directories. + +EXAMPLES + Video and Audio grabbing + If you specify the input format and device then ffmpeg can grab video + and audio directly. + + ffmpeg -f oss -i /dev/dsp -f video4linux2 -i /dev/video0 /tmp/out.mpg + + Or with an ALSA audio source (mono input, card id 1) instead of OSS: + + ffmpeg -f alsa -ac 1 -i hw:1 -f video4linux2 -i /dev/video0 /tmp/out.mpg + + Note that you must activate the right video source and channel before + launching ffmpeg with any TV viewer such as + by Gerd Knorr. You also have to set + the audio recording levels correctly with a standard mixer. + + X11 grabbing + Grab the X11 display with ffmpeg via + + ffmpeg -f x11grab -video_size cif -framerate 25 -i :0.0 /tmp/out.mpg + + 0.0 is display.screen number of your X11 server, same as the DISPLAY + environment variable. + + ffmpeg -f x11grab -video_size cif -framerate 25 -i :0.0+10,20 /tmp/out.mpg + + 0.0 is display.screen number of your X11 server, same as the DISPLAY + environment variable. 10 is the x-offset and 20 the y-offset for the + grabbing. + + Video and Audio file format conversion + Any supported file format and protocol can serve as input to ffmpeg: + + Examples: + + o You can use YUV files as input: + + ffmpeg -i /tmp/test%d.Y /tmp/out.mpg + + It will use the files: + + /tmp/test0.Y, /tmp/test0.U, /tmp/test0.V, + /tmp/test1.Y, /tmp/test1.U, /tmp/test1.V, etc... + + The Y files use twice the resolution of the U and V files. They are + raw files, without header. They can be generated by all decent + video decoders. You must specify the size of the image with the -s + option if ffmpeg cannot guess it. + + o You can input from a raw YUV420P file: + + ffmpeg -i /tmp/test.yuv /tmp/out.avi + + test.yuv is a file containing raw YUV planar data. Each frame is + composed of the Y plane followed by the U and V planes at half + vertical and horizontal resolution. + + o You can output to a raw YUV420P file: + + ffmpeg -i mydivx.avi hugefile.yuv + + o You can set several input files and output files: + + ffmpeg -i /tmp/a.wav -s 640x480 -i /tmp/a.yuv /tmp/a.mpg + + Converts the audio file a.wav and the raw YUV video file a.yuv to + MPEG file a.mpg. + + o You can also do audio and video conversions at the same time: + + ffmpeg -i /tmp/a.wav -ar 22050 /tmp/a.mp2 + + Converts a.wav to MPEG audio at 22050 Hz sample rate. + + o You can encode to several formats at the same time and define a + mapping from input stream to output streams: + + ffmpeg -i /tmp/a.wav -map 0:a -b:a 64k /tmp/a.mp2 -map 0:a -b:a 128k /tmp/b.mp2 + + Converts a.wav to a.mp2 at 64 kbits and to b.mp2 at 128 kbits. + '-map file:index' specifies which input stream is used for each + output stream, in the order of the definition of output streams. + + o You can transcode decrypted VOBs: + + ffmpeg -i snatch_1.vob -f avi -c:v mpeg4 -b:v 800k -g 300 -bf 2 -c:a libmp3lame -b:a 128k snatch.avi + + This is a typical DVD ripping example; the input is a VOB file, the + output an AVI file with MPEG-4 video and MP3 audio. Note that in + this command we use B-frames so the MPEG-4 stream is DivX5 + compatible, and GOP size is 300 which means one intra frame every + 10 seconds for 29.97fps input video. Furthermore, the audio stream + is MP3-encoded so you need to enable LAME support by passing + "--enable-libmp3lame" to configure. The mapping is particularly + useful for DVD transcoding to get the desired audio language. + + NOTE: To see the supported input formats, use "ffmpeg -demuxers". + + o You can extract images from a video, or create a video from many + images: + + For extracting images from a video: + + ffmpeg -i foo.avi -r 1 -s WxH -f image2 foo-%03d.jpeg + + This will extract one video frame per second from the video and + will output them in files named foo-001.jpeg, foo-002.jpeg, etc. + Images will be rescaled to fit the new WxH values. + + If you want to extract just a limited number of frames, you can use + the above command in combination with the "-frames:v" or "-t" + option, or in combination with -ss to start extracting from a + certain point in time. + + For creating a video from many images: + + ffmpeg -f image2 -framerate 12 -i foo-%03d.jpeg -s WxH foo.avi + + The syntax "foo-%03d.jpeg" specifies to use a decimal number + composed of three digits padded with zeroes to express the sequence + number. It is the same syntax supported by the C printf function, + but only formats accepting a normal integer are suitable. + + When importing an image sequence, -i also supports expanding shell- + like wildcard patterns (globbing) internally, by selecting the + image2-specific "-pattern_type glob" option. + + For example, for creating a video from filenames matching the glob + pattern "foo-*.jpeg": + + ffmpeg -f image2 -pattern_type glob -framerate 12 -i 'foo-*.jpeg' -s WxH foo.avi + + o You can put many streams of the same type in the output: + + ffmpeg -i test1.avi -i test2.avi -map 1:1 -map 1:0 -map 0:1 -map 0:0 -c copy -y test12.nut + + The resulting output file test12.nut will contain the first four + streams from the input files in reverse order. + + o To force CBR video output: + + ffmpeg -i myfile.avi -b 4000k -minrate 4000k -maxrate 4000k -bufsize 1835k out.m2v + + o The four options lmin, lmax, mblmin and mblmax use 'lambda' units, + but you may use the QP2LAMBDA constant to easily convert from 'q' + units: + + ffmpeg -i src.ext -lmax 21*QP2LAMBDA dst.ext + +SYNTAX + This section documents the syntax and formats employed by the FFmpeg + libraries and tools. + + Quoting and escaping + FFmpeg adopts the following quoting and escaping mechanism, unless + explicitly specified. The following rules are applied: + + o ' and \ are special characters (respectively used for quoting and + escaping). In addition to them, there might be other special + characters depending on the specific syntax where the escaping and + quoting are employed. + + o A special character is escaped by prefixing it with a \. + + o All characters enclosed between '' are included literally in the + parsed string. The quote character ' itself cannot be quoted, so + you may need to close the quote and escape it. + + o Leading and trailing whitespaces, unless escaped or quoted, are + removed from the parsed string. + + Note that you may need to add a second level of escaping when using the + command line or a script, which depends on the syntax of the adopted + shell language. + + The function "av_get_token" defined in libavutil/avstring.h can be used + to parse a token quoted or escaped according to the rules defined + above. + + The tool tools/ffescape in the FFmpeg source tree can be used to + automatically quote or escape a string in a script. + + Examples + + o Escape the string "Crime d'Amour" containing the "'" special + character: + + Crime d\'Amour + + o The string above contains a quote, so the "'" needs to be escaped + when quoting it: + + 'Crime d'\''Amour' + + o Include leading or trailing whitespaces using quoting: + + ' this string starts and ends with whitespaces ' + + o Escaping and quoting can be mixed together: + + ' The string '\'string\'' is a string ' + + o To include a literal \ you can use either escaping or quoting: + + 'c:\foo' can be written as c:\\foo + + Date + The accepted syntax is: + + [(YYYY-MM-DD|YYYYMMDD)[T|t| ]]((HH:MM:SS[.m...]]])|(HHMMSS[.m...]]]))[Z] + now + + If the value is "now" it takes the current time. + + Time is local time unless Z is appended, in which case it is + interpreted as UTC. If the year-month-day part is not specified it + takes the current year-month-day. + + Time duration + There are two accepted syntaxes for expressing time duration. + + [-][:]:[....] + + HH expresses the number of hours, MM the number of minutes for a + maximum of 2 digits, and SS the number of seconds for a maximum of 2 + digits. The m at the end expresses decimal value for SS. + + or + + [-]+[....] + + S expresses the number of seconds, with the optional decimal part m. + + In both expressions, the optional - indicates negative duration. + + Examples + + The following examples are all valid time duration: + + 55 55 seconds + + 12:03:45 + 12 hours, 03 minutes and 45 seconds + + 23.189 + 23.189 seconds + + Video size + Specify the size of the sourced video, it may be a string of the form + widthxheight, or the name of a size abbreviation. + + The following abbreviations are recognized: + + ntsc + 720x480 + + pal 720x576 + + qntsc + 352x240 + + qpal + 352x288 + + sntsc + 640x480 + + spal + 768x576 + + film + 352x240 + + ntsc-film + 352x240 + + sqcif + 128x96 + + qcif + 176x144 + + cif 352x288 + + 4cif + 704x576 + + 16cif + 1408x1152 + + qqvga + 160x120 + + qvga + 320x240 + + vga 640x480 + + svga + 800x600 + + xga 1024x768 + + uxga + 1600x1200 + + qxga + 2048x1536 + + sxga + 1280x1024 + + qsxga + 2560x2048 + + hsxga + 5120x4096 + + wvga + 852x480 + + wxga + 1366x768 + + wsxga + 1600x1024 + + wuxga + 1920x1200 + + woxga + 2560x1600 + + wqsxga + 3200x2048 + + wquxga + 3840x2400 + + whsxga + 6400x4096 + + whuxga + 7680x4800 + + cga 320x200 + + ega 640x350 + + hd480 + 852x480 + + hd720 + 1280x720 + + hd1080 + 1920x1080 + + 2k 2048x1080 + + 2kflat + 1998x1080 + + 2kscope + 2048x858 + + 4k 4096x2160 + + 4kflat + 3996x2160 + + 4kscope + 4096x1716 + + nhd 640x360 + + hqvga + 240x160 + + wqvga + 400x240 + + fwqvga + 432x240 + + hvga + 480x320 + + qhd 960x540 + + 2kdci + 2048x1080 + + 4kdci + 4096x2160 + + uhd2160 + 3840x2160 + + uhd4320 + 7680x4320 + + Video rate + Specify the frame rate of a video, expressed as the number of frames + generated per second. It has to be a string in the format + frame_rate_num/frame_rate_den, an integer number, a float number or a + valid video frame rate abbreviation. + + The following abbreviations are recognized: + + ntsc + 30000/1001 + + pal 25/1 + + qntsc + 30000/1001 + + qpal + 25/1 + + sntsc + 30000/1001 + + spal + 25/1 + + film + 24/1 + + ntsc-film + 24000/1001 + + Ratio + A ratio can be expressed as an expression, or in the form + numerator:denominator. + + Note that a ratio with infinite (1/0) or negative value is considered + valid, so you should check on the returned value if you want to exclude + those values. + + The undefined value can be expressed using the "0:0" string. + + Color + It can be the name of a color as defined below (case insensitive match) + or a "[0x|#]RRGGBB[AA]" sequence, possibly followed by @ and a string + representing the alpha component. + + The alpha component may be a string composed by "0x" followed by an + hexadecimal number or a decimal number between 0.0 and 1.0, which + represents the opacity value (0x00 or 0.0 means completely transparent, + 0xff or 1.0 completely opaque). If the alpha component is not specified + then 0xff is assumed. + + The string random will result in a random color. + + The following names of colors are recognized: + + AliceBlue + 0xF0F8FF + + AntiqueWhite + 0xFAEBD7 + + Aqua + 0x00FFFF + + Aquamarine + 0x7FFFD4 + + Azure + 0xF0FFFF + + Beige + 0xF5F5DC + + Bisque + 0xFFE4C4 + + Black + 0x000000 + + BlanchedAlmond + 0xFFEBCD + + Blue + 0x0000FF + + BlueViolet + 0x8A2BE2 + + Brown + 0xA52A2A + + BurlyWood + 0xDEB887 + + CadetBlue + 0x5F9EA0 + + Chartreuse + 0x7FFF00 + + Chocolate + 0xD2691E + + Coral + 0xFF7F50 + + CornflowerBlue + 0x6495ED + + Cornsilk + 0xFFF8DC + + Crimson + 0xDC143C + + Cyan + 0x00FFFF + + DarkBlue + 0x00008B + + DarkCyan + 0x008B8B + + DarkGoldenRod + 0xB8860B + + DarkGray + 0xA9A9A9 + + DarkGreen + 0x006400 + + DarkKhaki + 0xBDB76B + + DarkMagenta + 0x8B008B + + DarkOliveGreen + 0x556B2F + + Darkorange + 0xFF8C00 + + DarkOrchid + 0x9932CC + + DarkRed + 0x8B0000 + + DarkSalmon + 0xE9967A + + DarkSeaGreen + 0x8FBC8F + + DarkSlateBlue + 0x483D8B + + DarkSlateGray + 0x2F4F4F + + DarkTurquoise + 0x00CED1 + + DarkViolet + 0x9400D3 + + DeepPink + 0xFF1493 + + DeepSkyBlue + 0x00BFFF + + DimGray + 0x696969 + + DodgerBlue + 0x1E90FF + + FireBrick + 0xB22222 + + FloralWhite + 0xFFFAF0 + + ForestGreen + 0x228B22 + + Fuchsia + 0xFF00FF + + Gainsboro + 0xDCDCDC + + GhostWhite + 0xF8F8FF + + Gold + 0xFFD700 + + GoldenRod + 0xDAA520 + + Gray + 0x808080 + + Green + 0x008000 + + GreenYellow + 0xADFF2F + + HoneyDew + 0xF0FFF0 + + HotPink + 0xFF69B4 + + IndianRed + 0xCD5C5C + + Indigo + 0x4B0082 + + Ivory + 0xFFFFF0 + + Khaki + 0xF0E68C + + Lavender + 0xE6E6FA + + LavenderBlush + 0xFFF0F5 + + LawnGreen + 0x7CFC00 + + LemonChiffon + 0xFFFACD + + LightBlue + 0xADD8E6 + + LightCoral + 0xF08080 + + LightCyan + 0xE0FFFF + + LightGoldenRodYellow + 0xFAFAD2 + + LightGreen + 0x90EE90 + + LightGrey + 0xD3D3D3 + + LightPink + 0xFFB6C1 + + LightSalmon + 0xFFA07A + + LightSeaGreen + 0x20B2AA + + LightSkyBlue + 0x87CEFA + + LightSlateGray + 0x778899 + + LightSteelBlue + 0xB0C4DE + + LightYellow + 0xFFFFE0 + + Lime + 0x00FF00 + + LimeGreen + 0x32CD32 + + Linen + 0xFAF0E6 + + Magenta + 0xFF00FF + + Maroon + 0x800000 + + MediumAquaMarine + 0x66CDAA + + MediumBlue + 0x0000CD + + MediumOrchid + 0xBA55D3 + + MediumPurple + 0x9370D8 + + MediumSeaGreen + 0x3CB371 + + MediumSlateBlue + 0x7B68EE + + MediumSpringGreen + 0x00FA9A + + MediumTurquoise + 0x48D1CC + + MediumVioletRed + 0xC71585 + + MidnightBlue + 0x191970 + + MintCream + 0xF5FFFA + + MistyRose + 0xFFE4E1 + + Moccasin + 0xFFE4B5 + + NavajoWhite + 0xFFDEAD + + Navy + 0x000080 + + OldLace + 0xFDF5E6 + + Olive + 0x808000 + + OliveDrab + 0x6B8E23 + + Orange + 0xFFA500 + + OrangeRed + 0xFF4500 + + Orchid + 0xDA70D6 + + PaleGoldenRod + 0xEEE8AA + + PaleGreen + 0x98FB98 + + PaleTurquoise + 0xAFEEEE + + PaleVioletRed + 0xD87093 + + PapayaWhip + 0xFFEFD5 + + PeachPuff + 0xFFDAB9 + + Peru + 0xCD853F + + Pink + 0xFFC0CB + + Plum + 0xDDA0DD + + PowderBlue + 0xB0E0E6 + + Purple + 0x800080 + + Red 0xFF0000 + + RosyBrown + 0xBC8F8F + + RoyalBlue + 0x4169E1 + + SaddleBrown + 0x8B4513 + + Salmon + 0xFA8072 + + SandyBrown + 0xF4A460 + + SeaGreen + 0x2E8B57 + + SeaShell + 0xFFF5EE + + Sienna + 0xA0522D + + Silver + 0xC0C0C0 + + SkyBlue + 0x87CEEB + + SlateBlue + 0x6A5ACD + + SlateGray + 0x708090 + + Snow + 0xFFFAFA + + SpringGreen + 0x00FF7F + + SteelBlue + 0x4682B4 + + Tan 0xD2B48C + + Teal + 0x008080 + + Thistle + 0xD8BFD8 + + Tomato + 0xFF6347 + + Turquoise + 0x40E0D0 + + Violet + 0xEE82EE + + Wheat + 0xF5DEB3 + + White + 0xFFFFFF + + WhiteSmoke + 0xF5F5F5 + + Yellow + 0xFFFF00 + + YellowGreen + 0x9ACD32 + + Channel Layout + A channel layout specifies the spatial disposition of the channels in a + multi-channel audio stream. To specify a channel layout, FFmpeg makes + use of a special syntax. + + Individual channels are identified by an id, as given by the table + below: + + FL front left + + FR front right + + FC front center + + LFE low frequency + + BL back left + + BR back right + + FLC front left-of-center + + FRC front right-of-center + + BC back center + + SL side left + + SR side right + + TC top center + + TFL top front left + + TFC top front center + + TFR top front right + + TBL top back left + + TBC top back center + + TBR top back right + + DL downmix left + + DR downmix right + + WL wide left + + WR wide right + + SDL surround direct left + + SDR surround direct right + + LFE2 + low frequency 2 + + Standard channel layout compositions can be specified by using the + following identifiers: + + mono + FC + + stereo + FL+FR + + 2.1 FL+FR+LFE + + 3.0 FL+FR+FC + + 3.0(back) + FL+FR+BC + + 4.0 FL+FR+FC+BC + + quad + FL+FR+BL+BR + + quad(side) + FL+FR+SL+SR + + 3.1 FL+FR+FC+LFE + + 5.0 FL+FR+FC+BL+BR + + 5.0(side) + FL+FR+FC+SL+SR + + 4.1 FL+FR+FC+LFE+BC + + 5.1 FL+FR+FC+LFE+BL+BR + + 5.1(side) + FL+FR+FC+LFE+SL+SR + + 6.0 FL+FR+FC+BC+SL+SR + + 6.0(front) + FL+FR+FLC+FRC+SL+SR + + hexagonal + FL+FR+FC+BL+BR+BC + + 6.1 FL+FR+FC+LFE+BC+SL+SR + + 6.1 FL+FR+FC+LFE+BL+BR+BC + + 6.1(front) + FL+FR+LFE+FLC+FRC+SL+SR + + 7.0 FL+FR+FC+BL+BR+SL+SR + + 7.0(front) + FL+FR+FC+FLC+FRC+SL+SR + + 7.1 FL+FR+FC+LFE+BL+BR+SL+SR + + 7.1(wide) + FL+FR+FC+LFE+BL+BR+FLC+FRC + + 7.1(wide-side) + FL+FR+FC+LFE+FLC+FRC+SL+SR + + octagonal + FL+FR+FC+BL+BR+BC+SL+SR + + downmix + DL+DR + + A custom channel layout can be specified as a sequence of terms, + separated by '+' or '|'. Each term can be: + + o the name of a standard channel layout (e.g. mono, stereo, 4.0, + quad, 5.0, etc.) + + o the name of a single channel (e.g. FL, FR, FC, LFE, etc.) + + o a number of channels, in decimal, followed by 'c', yielding the + default channel layout for that number of channels (see the + function "av_get_default_channel_layout"). Note that not all + channel counts have a default layout. + + o a number of channels, in decimal, followed by 'C', yielding an + unknown channel layout with the specified number of channels. Note + that not all channel layout specification strings support unknown + channel layouts. + + o a channel layout mask, in hexadecimal starting with "0x" (see the + "AV_CH_*" macros in libavutil/channel_layout.h. + + Before libavutil version 53 the trailing character "c" to specify a + number of channels was optional, but now it is required, while a + channel layout mask can also be specified as a decimal number (if and + only if not followed by "c" or "C"). + + See also the function "av_get_channel_layout" defined in + libavutil/channel_layout.h. + +EXPRESSION EVALUATION + When evaluating an arithmetic expression, FFmpeg uses an internal + formula evaluator, implemented through the libavutil/eval.h interface. + + An expression may contain unary, binary operators, constants, and + functions. + + Two expressions expr1 and expr2 can be combined to form another + expression "expr1;expr2". expr1 and expr2 are evaluated in turn, and + the new expression evaluates to the value of expr2. + + The following binary operators are available: "+", "-", "*", "/", "^". + + The following unary operators are available: "+", "-". + + The following functions are available: + + abs(x) + Compute absolute value of x. + + acos(x) + Compute arccosine of x. + + asin(x) + Compute arcsine of x. + + atan(x) + Compute arctangent of x. + + atan2(x, y) + Compute principal value of the arc tangent of y/x. + + between(x, min, max) + Return 1 if x is greater than or equal to min and lesser than or + equal to max, 0 otherwise. + + bitand(x, y) + bitor(x, y) + Compute bitwise and/or operation on x and y. + + The results of the evaluation of x and y are converted to integers + before executing the bitwise operation. + + Note that both the conversion to integer and the conversion back to + floating point can lose precision. Beware of unexpected results for + large numbers (usually 2^53 and larger). + + ceil(expr) + Round the value of expression expr upwards to the nearest integer. + For example, "ceil(1.5)" is "2.0". + + clip(x, min, max) + Return the value of x clipped between min and max. + + cos(x) + Compute cosine of x. + + cosh(x) + Compute hyperbolic cosine of x. + + eq(x, y) + Return 1 if x and y are equivalent, 0 otherwise. + + exp(x) + Compute exponential of x (with base "e", the Euler's number). + + floor(expr) + Round the value of expression expr downwards to the nearest + integer. For example, "floor(-1.5)" is "-2.0". + + gauss(x) + Compute Gauss function of x, corresponding to "exp(-x*x/2) / + sqrt(2*PI)". + + gcd(x, y) + Return the greatest common divisor of x and y. If both x and y are + 0 or either or both are less than zero then behavior is undefined. + + gt(x, y) + Return 1 if x is greater than y, 0 otherwise. + + gte(x, y) + Return 1 if x is greater than or equal to y, 0 otherwise. + + hypot(x, y) + This function is similar to the C function with the same name; it + returns "sqrt(x*x + y*y)", the length of the hypotenuse of a right + triangle with sides of length x and y, or the distance of the point + (x, y) from the origin. + + if(x, y) + Evaluate x, and if the result is non-zero return the result of the + evaluation of y, return 0 otherwise. + + if(x, y, z) + Evaluate x, and if the result is non-zero return the evaluation + result of y, otherwise the evaluation result of z. + + ifnot(x, y) + Evaluate x, and if the result is zero return the result of the + evaluation of y, return 0 otherwise. + + ifnot(x, y, z) + Evaluate x, and if the result is zero return the evaluation result + of y, otherwise the evaluation result of z. + + isinf(x) + Return 1.0 if x is +/-INFINITY, 0.0 otherwise. + + isnan(x) + Return 1.0 if x is NAN, 0.0 otherwise. + + ld(var) + Load the value of the internal variable with number var, which was + previously stored with st(var, expr). The function returns the + loaded value. + + lerp(x, y, z) + Return linear interpolation between x and y by amount of z. + + log(x) + Compute natural logarithm of x. + + lt(x, y) + Return 1 if x is lesser than y, 0 otherwise. + + lte(x, y) + Return 1 if x is lesser than or equal to y, 0 otherwise. + + max(x, y) + Return the maximum between x and y. + + min(x, y) + Return the minimum between x and y. + + mod(x, y) + Compute the remainder of division of x by y. + + not(expr) + Return 1.0 if expr is zero, 0.0 otherwise. + + pow(x, y) + Compute the power of x elevated y, it is equivalent to "(x)^(y)". + + print(t) + print(t, l) + Print the value of expression t with loglevel l. If l is not + specified then a default log level is used. Returns the value of + the expression printed. + + Prints t with loglevel l + + random(x) + Return a pseudo random value between 0.0 and 1.0. x is the index of + the internal variable which will be used to save the seed/state. + + root(expr, max) + Find an input value for which the function represented by expr with + argument ld(0) is 0 in the interval 0..max. + + The expression in expr must denote a continuous function or the + result is undefined. + + ld(0) is used to represent the function input value, which means + that the given expression will be evaluated multiple times with + various input values that the expression can access through ld(0). + When the expression evaluates to 0 then the corresponding input + value will be returned. + + round(expr) + Round the value of expression expr to the nearest integer. For + example, "round(1.5)" is "2.0". + + sin(x) + Compute sine of x. + + sinh(x) + Compute hyperbolic sine of x. + + sqrt(expr) + Compute the square root of expr. This is equivalent to "(expr)^.5". + + squish(x) + Compute expression "1/(1 + exp(4*x))". + + st(var, expr) + Store the value of the expression expr in an internal variable. var + specifies the number of the variable where to store the value, and + it is a value ranging from 0 to 9. The function returns the value + stored in the internal variable. Note, Variables are currently not + shared between expressions. + + tan(x) + Compute tangent of x. + + tanh(x) + Compute hyperbolic tangent of x. + + taylor(expr, x) + taylor(expr, x, id) + Evaluate a Taylor series at x, given an expression representing the + "ld(id)"-th derivative of a function at 0. + + When the series does not converge the result is undefined. + + ld(id) is used to represent the derivative order in expr, which + means that the given expression will be evaluated multiple times + with various input values that the expression can access through + "ld(id)". If id is not specified then 0 is assumed. + + Note, when you have the derivatives at y instead of 0, + "taylor(expr, x-y)" can be used. + + time(0) + Return the current (wallclock) time in seconds. + + trunc(expr) + Round the value of expression expr towards zero to the nearest + integer. For example, "trunc(-1.5)" is "-1.0". + + while(cond, expr) + Evaluate expression expr while the expression cond is non-zero, and + returns the value of the last expr evaluation, or NAN if cond was + always false. + + The following constants are available: + + PI area of the unit disc, approximately 3.14 + + E exp(1) (Euler's number), approximately 2.718 + + PHI golden ratio (1+sqrt(5))/2, approximately 1.618 + + Assuming that an expression is considered "true" if it has a non-zero + value, note that: + + "*" works like AND + + "+" works like OR + + For example the construct: + + if (A AND B) then C + + is equivalent to: + + if(A*B, C) + + In your C code, you can extend the list of unary and binary functions, + and define recognized constants, so that they are available for your + expressions. + + The evaluator also recognizes the International System unit prefixes. + If 'i' is appended after the prefix, binary prefixes are used, which + are based on powers of 1024 instead of powers of 1000. The 'B' postfix + multiplies the value by 8, and can be appended after a unit prefix or + used alone. This allows using for example 'KB', 'MiB', 'G' and 'B' as + number postfix. + + The list of available International System prefixes follows, with + indication of the corresponding powers of 10 and of 2. + + y 10^-24 / 2^-80 + + z 10^-21 / 2^-70 + + a 10^-18 / 2^-60 + + f 10^-15 / 2^-50 + + p 10^-12 / 2^-40 + + n 10^-9 / 2^-30 + + u 10^-6 / 2^-20 + + m 10^-3 / 2^-10 + + c 10^-2 + + d 10^-1 + + h 10^2 + + k 10^3 / 2^10 + + K 10^3 / 2^10 + + M 10^6 / 2^20 + + G 10^9 / 2^30 + + T 10^12 / 2^40 + + P 10^15 / 2^40 + + E 10^18 / 2^50 + + Z 10^21 / 2^60 + + Y 10^24 / 2^70 + +CODEC OPTIONS + libavcodec provides some generic global options, which can be set on + all the encoders and decoders. In addition each codec may support so- + called private options, which are specific for a given codec. + + Sometimes, a global option may only affect a specific kind of codec, + and may be nonsensical or ignored by another, so you need to be aware + of the meaning of the specified options. Also some options are meant + only for decoding or encoding. + + Options may be set by specifying -option value in the FFmpeg tools, or + by setting the value explicitly in the "AVCodecContext" options or + using the libavutil/opt.h API for programmatic use. + + The list of supported options follow: + + b integer (encoding,audio,video) + Set bitrate in bits/s. Default value is 200K. + + ab integer (encoding,audio) + Set audio bitrate (in bits/s). Default value is 128K. + + bt integer (encoding,video) + Set video bitrate tolerance (in bits/s). In 1-pass mode, bitrate + tolerance specifies how far ratecontrol is willing to deviate from + the target average bitrate value. This is not related to min/max + bitrate. Lowering tolerance too much has an adverse effect on + quality. + + flags flags (decoding/encoding,audio,video,subtitles) + Set generic flags. + + Possible values: + + mv4 Use four motion vector by macroblock (mpeg4). + + qpel + Use 1/4 pel motion compensation. + + loop + Use loop filter. + + qscale + Use fixed qscale. + + pass1 + Use internal 2pass ratecontrol in first pass mode. + + pass2 + Use internal 2pass ratecontrol in second pass mode. + + gray + Only decode/encode grayscale. + + emu_edge + Do not draw edges. + + psnr + Set error[?] variables during encoding. + + truncated + drop_changed + Don't output frames whose parameters differ from first decoded + frame in stream. Error AVERROR_INPUT_CHANGED is returned when + a frame is dropped. + + ildct + Use interlaced DCT. + + low_delay + Force low delay. + + global_header + Place global headers in extradata instead of every keyframe. + + bitexact + Only write platform-, build- and time-independent data. (except + (I)DCT). This ensures that file and data checksums are + reproducible and match between platforms. Its primary use is + for regression testing. + + aic Apply H263 advanced intra coding / mpeg4 ac prediction. + + cbp Deprecated, use mpegvideo private options instead. + + qprd + Deprecated, use mpegvideo private options instead. + + ilme + Apply interlaced motion estimation. + + cgop + Use closed gop. + + me_method integer (encoding,video) + Set motion estimation method. + + Possible values: + + zero + zero motion estimation (fastest) + + full + full motion estimation (slowest) + + epzs + EPZS motion estimation (default) + + esa esa motion estimation (alias for full) + + tesa + tesa motion estimation + + dia dia motion estimation (alias for epzs) + + log log motion estimation + + phods + phods motion estimation + + x1 X1 motion estimation + + hex hex motion estimation + + umh umh motion estimation + + iter + iter motion estimation + + extradata_size integer + Set extradata size. + + time_base rational number + Set codec time base. + + It is the fundamental unit of time (in seconds) in terms of which + frame timestamps are represented. For fixed-fps content, timebase + should be "1 / frame_rate" and timestamp increments should be + identically 1. + + g integer (encoding,video) + Set the group of picture (GOP) size. Default value is 12. + + ar integer (decoding/encoding,audio) + Set audio sampling rate (in Hz). + + ac integer (decoding/encoding,audio) + Set number of audio channels. + + cutoff integer (encoding,audio) + Set cutoff bandwidth. (Supported only by selected encoders, see + their respective documentation sections.) + + frame_size integer (encoding,audio) + Set audio frame size. + + Each submitted frame except the last must contain exactly + frame_size samples per channel. May be 0 when the codec has + CODEC_CAP_VARIABLE_FRAME_SIZE set, in that case the frame size is + not restricted. It is set by some decoders to indicate constant + frame size. + + frame_number integer + Set the frame number. + + delay integer + qcomp float (encoding,video) + Set video quantizer scale compression (VBR). It is used as a + constant in the ratecontrol equation. Recommended range for default + rc_eq: 0.0-1.0. + + qblur float (encoding,video) + Set video quantizer scale blur (VBR). + + qmin integer (encoding,video) + Set min video quantizer scale (VBR). Must be included between -1 + and 69, default value is 2. + + qmax integer (encoding,video) + Set max video quantizer scale (VBR). Must be included between -1 + and 1024, default value is 31. + + qdiff integer (encoding,video) + Set max difference between the quantizer scale (VBR). + + bf integer (encoding,video) + Set max number of B frames between non-B-frames. + + Must be an integer between -1 and 16. 0 means that B-frames are + disabled. If a value of -1 is used, it will choose an automatic + value depending on the encoder. + + Default value is 0. + + b_qfactor float (encoding,video) + Set qp factor between P and B frames. + + rc_strategy integer (encoding,video) + Set ratecontrol method. + + b_strategy integer (encoding,video) + Set strategy to choose between I/P/B-frames. + + ps integer (encoding,video) + Set RTP payload size in bytes. + + mv_bits integer + header_bits integer + i_tex_bits integer + p_tex_bits integer + i_count integer + p_count integer + skip_count integer + misc_bits integer + frame_bits integer + codec_tag integer + bug flags (decoding,video) + Workaround not auto detected encoder bugs. + + Possible values: + + autodetect + old_msmpeg4 + some old lavc generated msmpeg4v3 files (no autodetection) + + xvid_ilace + Xvid interlacing bug (autodetected if fourcc==XVIX) + + ump4 + (autodetected if fourcc==UMP4) + + no_padding + padding bug (autodetected) + + amv + ac_vlc + illegal vlc bug (autodetected per fourcc) + + qpel_chroma + std_qpel + old standard qpel (autodetected per fourcc/version) + + qpel_chroma2 + direct_blocksize + direct-qpel-blocksize bug (autodetected per fourcc/version) + + edge + edge padding bug (autodetected per fourcc/version) + + hpel_chroma + dc_clip + ms Workaround various bugs in microsoft broken decoders. + + trunc + trancated frames + + lelim integer (encoding,video) + Set single coefficient elimination threshold for luminance + (negative values also consider DC coefficient). + + celim integer (encoding,video) + Set single coefficient elimination threshold for chrominance + (negative values also consider dc coefficient) + + strict integer (decoding/encoding,audio,video) + Specify how strictly to follow the standards. + + Possible values: + + very + strictly conform to an older more strict version of the spec or + reference software + + strict + strictly conform to all the things in the spec no matter what + consequences + + normal + unofficial + allow unofficial extensions + + experimental + allow non standardized experimental things, experimental + (unfinished/work in progress/not well tested) decoders and + encoders. Note: experimental decoders can pose a security + risk, do not use this for decoding untrusted input. + + b_qoffset float (encoding,video) + Set QP offset between P and B frames. + + err_detect flags (decoding,audio,video) + Set error detection flags. + + Possible values: + + crccheck + verify embedded CRCs + + bitstream + detect bitstream specification deviations + + buffer + detect improper bitstream length + + explode + abort decoding on minor error detection + + ignore_err + ignore decoding errors, and continue decoding. This is useful + if you want to analyze the content of a video and thus want + everything to be decoded no matter what. This option will not + result in a video that is pleasing to watch in case of errors. + + careful + consider things that violate the spec and have not been seen in + the wild as errors + + compliant + consider all spec non compliancies as errors + + aggressive + consider things that a sane encoder should not do as an error + + has_b_frames integer + block_align integer + mpeg_quant integer (encoding,video) + Use MPEG quantizers instead of H.263. + + qsquish float (encoding,video) + How to keep quantizer between qmin and qmax (0 = clip, 1 = use + differentiable function). + + rc_qmod_amp float (encoding,video) + Set experimental quantizer modulation. + + rc_qmod_freq integer (encoding,video) + Set experimental quantizer modulation. + + rc_override_count integer + rc_eq string (encoding,video) + Set rate control equation. When computing the expression, besides + the standard functions defined in the section 'Expression + Evaluation', the following functions are available: bits2qp(bits), + qp2bits(qp). Also the following constants are available: iTex pTex + tex mv fCode iCount mcVar var isI isP isB avgQP qComp avgIITex + avgPITex avgPPTex avgBPTex avgTex. + + maxrate integer (encoding,audio,video) + Set max bitrate tolerance (in bits/s). Requires bufsize to be set. + + minrate integer (encoding,audio,video) + Set min bitrate tolerance (in bits/s). Most useful in setting up a + CBR encode. It is of little use elsewise. + + bufsize integer (encoding,audio,video) + Set ratecontrol buffer size (in bits). + + rc_buf_aggressivity float (encoding,video) + Currently useless. + + i_qfactor float (encoding,video) + Set QP factor between P and I frames. + + i_qoffset float (encoding,video) + Set QP offset between P and I frames. + + rc_init_cplx float (encoding,video) + Set initial complexity for 1-pass encoding. + + dct integer (encoding,video) + Set DCT algorithm. + + Possible values: + + auto + autoselect a good one (default) + + fastint + fast integer + + int accurate integer + + mmx + altivec + faan + floating point AAN DCT + + lumi_mask float (encoding,video) + Compress bright areas stronger than medium ones. + + tcplx_mask float (encoding,video) + Set temporal complexity masking. + + scplx_mask float (encoding,video) + Set spatial complexity masking. + + p_mask float (encoding,video) + Set inter masking. + + dark_mask float (encoding,video) + Compress dark areas stronger than medium ones. + + idct integer (decoding/encoding,video) + Select IDCT implementation. + + Possible values: + + auto + int + simple + simplemmx + simpleauto + Automatically pick a IDCT compatible with the simple one + + arm + altivec + sh4 + simplearm + simplearmv5te + simplearmv6 + simpleneon + simplealpha + ipp + xvidmmx + faani + floating point AAN IDCT + + slice_count integer + ec flags (decoding,video) + Set error concealment strategy. + + Possible values: + + guess_mvs + iterative motion vector (MV) search (slow) + + deblock + use strong deblock filter for damaged MBs + + favor_inter + favor predicting from the previous frame instead of the current + + bits_per_coded_sample integer + pred integer (encoding,video) + Set prediction method. + + Possible values: + + left + plane + median + aspect rational number (encoding,video) + Set sample aspect ratio. + + sar rational number (encoding,video) + Set sample aspect ratio. Alias to aspect. + + debug flags (decoding/encoding,audio,video,subtitles) + Print specific debug info. + + Possible values: + + pict + picture info + + rc rate control + + bitstream + mb_type + macroblock (MB) type + + qp per-block quantization parameter (QP) + + dct_coeff + green_metadata + display complexity metadata for the upcoming frame, GoP or for + a given duration. + + skip + startcode + er error recognition + + mmco + memory management control operations (H.264) + + bugs + buffers + picture buffer allocations + + thread_ops + threading operations + + nomc + skip motion compensation + + cmp integer (encoding,video) + Set full pel me compare function. + + Possible values: + + sad sum of absolute differences, fast (default) + + sse sum of squared errors + + satd + sum of absolute Hadamard transformed differences + + dct sum of absolute DCT transformed differences + + psnr + sum of squared quantization errors (avoid, low quality) + + bit number of bits needed for the block + + rd rate distortion optimal, slow + + zero + 0 + + vsad + sum of absolute vertical differences + + vsse + sum of squared vertical differences + + nsse + noise preserving sum of squared differences + + w53 5/3 wavelet, only used in snow + + w97 9/7 wavelet, only used in snow + + dctmax + chroma + subcmp integer (encoding,video) + Set sub pel me compare function. + + Possible values: + + sad sum of absolute differences, fast (default) + + sse sum of squared errors + + satd + sum of absolute Hadamard transformed differences + + dct sum of absolute DCT transformed differences + + psnr + sum of squared quantization errors (avoid, low quality) + + bit number of bits needed for the block + + rd rate distortion optimal, slow + + zero + 0 + + vsad + sum of absolute vertical differences + + vsse + sum of squared vertical differences + + nsse + noise preserving sum of squared differences + + w53 5/3 wavelet, only used in snow + + w97 9/7 wavelet, only used in snow + + dctmax + chroma + mbcmp integer (encoding,video) + Set macroblock compare function. + + Possible values: + + sad sum of absolute differences, fast (default) + + sse sum of squared errors + + satd + sum of absolute Hadamard transformed differences + + dct sum of absolute DCT transformed differences + + psnr + sum of squared quantization errors (avoid, low quality) + + bit number of bits needed for the block + + rd rate distortion optimal, slow + + zero + 0 + + vsad + sum of absolute vertical differences + + vsse + sum of squared vertical differences + + nsse + noise preserving sum of squared differences + + w53 5/3 wavelet, only used in snow + + w97 9/7 wavelet, only used in snow + + dctmax + chroma + ildctcmp integer (encoding,video) + Set interlaced dct compare function. + + Possible values: + + sad sum of absolute differences, fast (default) + + sse sum of squared errors + + satd + sum of absolute Hadamard transformed differences + + dct sum of absolute DCT transformed differences + + psnr + sum of squared quantization errors (avoid, low quality) + + bit number of bits needed for the block + + rd rate distortion optimal, slow + + zero + 0 + + vsad + sum of absolute vertical differences + + vsse + sum of squared vertical differences + + nsse + noise preserving sum of squared differences + + w53 5/3 wavelet, only used in snow + + w97 9/7 wavelet, only used in snow + + dctmax + chroma + dia_size integer (encoding,video) + Set diamond type & size for motion estimation. + + last_pred integer (encoding,video) + Set amount of motion predictors from the previous frame. + + preme integer (encoding,video) + Set pre motion estimation. + + precmp integer (encoding,video) + Set pre motion estimation compare function. + + Possible values: + + sad sum of absolute differences, fast (default) + + sse sum of squared errors + + satd + sum of absolute Hadamard transformed differences + + dct sum of absolute DCT transformed differences + + psnr + sum of squared quantization errors (avoid, low quality) + + bit number of bits needed for the block + + rd rate distortion optimal, slow + + zero + 0 + + vsad + sum of absolute vertical differences + + vsse + sum of squared vertical differences + + nsse + noise preserving sum of squared differences + + w53 5/3 wavelet, only used in snow + + w97 9/7 wavelet, only used in snow + + dctmax + chroma + pre_dia_size integer (encoding,video) + Set diamond type & size for motion estimation pre-pass. + + subq integer (encoding,video) + Set sub pel motion estimation quality. + + dtg_active_format integer + me_range integer (encoding,video) + Set limit motion vectors range (1023 for DivX player). + + ibias integer (encoding,video) + Set intra quant bias. + + pbias integer (encoding,video) + Set inter quant bias. + + color_table_id integer + global_quality integer (encoding,audio,video) + coder integer (encoding,video) + Possible values: + + vlc variable length coder / huffman coder + + ac arithmetic coder + + raw raw (no encoding) + + rle run-length coder + + deflate + deflate-based coder + + context integer (encoding,video) + Set context model. + + slice_flags integer + mbd integer (encoding,video) + Set macroblock decision algorithm (high quality mode). + + Possible values: + + simple + use mbcmp (default) + + bits + use fewest bits + + rd use best rate distortion + + stream_codec_tag integer + sc_threshold integer (encoding,video) + Set scene change threshold. + + lmin integer (encoding,video) + Set min lagrange factor (VBR). + + lmax integer (encoding,video) + Set max lagrange factor (VBR). + + nr integer (encoding,video) + Set noise reduction. + + rc_init_occupancy integer (encoding,video) + Set number of bits which should be loaded into the rc buffer before + decoding starts. + + flags2 flags (decoding/encoding,audio,video) + Possible values: + + fast + Allow non spec compliant speedup tricks. + + sgop + Deprecated, use mpegvideo private options instead. + + noout + Skip bitstream encoding. + + ignorecrop + Ignore cropping information from sps. + + local_header + Place global headers at every keyframe instead of in extradata. + + chunks + Frame data might be split into multiple chunks. + + showall + Show all frames before the first keyframe. + + export_mvs + Export motion vectors into frame side-data (see + "AV_FRAME_DATA_MOTION_VECTORS") for codecs that support it. See + also doc/examples/export_mvs.c. + + error integer (encoding,video) + qns integer (encoding,video) + Deprecated, use mpegvideo private options instead. + + threads integer (decoding/encoding,video) + Set the number of threads to be used, in case the selected codec + implementation supports multi-threading. + + Possible values: + + auto, 0 + automatically select the number of threads to set + + Default value is auto. + + me_threshold integer (encoding,video) + Set motion estimation threshold. + + mb_threshold integer (encoding,video) + Set macroblock threshold. + + dc integer (encoding,video) + Set intra_dc_precision. + + nssew integer (encoding,video) + Set nsse weight. + + skip_top integer (decoding,video) + Set number of macroblock rows at the top which are skipped. + + skip_bottom integer (decoding,video) + Set number of macroblock rows at the bottom which are skipped. + + profile integer (encoding,audio,video) + Possible values: + + unknown + aac_main + aac_low + aac_ssr + aac_ltp + aac_he + aac_he_v2 + aac_ld + aac_eld + mpeg2_aac_low + mpeg2_aac_he + mpeg4_sp + mpeg4_core + mpeg4_main + mpeg4_asp + dts + dts_es + dts_96_24 + dts_hd_hra + dts_hd_ma + level integer (encoding,audio,video) + Possible values: + + unknown + lowres integer (decoding,audio,video) + Decode at 1= 1/2, 2=1/4, 3=1/8 resolutions. + + skip_threshold integer (encoding,video) + Set frame skip threshold. + + skip_factor integer (encoding,video) + Set frame skip factor. + + skip_exp integer (encoding,video) + Set frame skip exponent. Negative values behave identical to the + corresponding positive ones, except that the score is normalized. + Positive values exist primarily for compatibility reasons and are + not so useful. + + skipcmp integer (encoding,video) + Set frame skip compare function. + + Possible values: + + sad sum of absolute differences, fast (default) + + sse sum of squared errors + + satd + sum of absolute Hadamard transformed differences + + dct sum of absolute DCT transformed differences + + psnr + sum of squared quantization errors (avoid, low quality) + + bit number of bits needed for the block + + rd rate distortion optimal, slow + + zero + 0 + + vsad + sum of absolute vertical differences + + vsse + sum of squared vertical differences + + nsse + noise preserving sum of squared differences + + w53 5/3 wavelet, only used in snow + + w97 9/7 wavelet, only used in snow + + dctmax + chroma + border_mask float (encoding,video) + Increase the quantizer for macroblocks close to borders. + + mblmin integer (encoding,video) + Set min macroblock lagrange factor (VBR). + + mblmax integer (encoding,video) + Set max macroblock lagrange factor (VBR). + + mepc integer (encoding,video) + Set motion estimation bitrate penalty compensation (1.0 = 256). + + skip_loop_filter integer (decoding,video) + skip_idct integer (decoding,video) + skip_frame integer (decoding,video) + Make decoder discard processing depending on the frame type + selected by the option value. + + skip_loop_filter skips frame loop filtering, skip_idct skips frame + IDCT/dequantization, skip_frame skips decoding. + + Possible values: + + none + Discard no frame. + + default + Discard useless frames like 0-sized frames. + + noref + Discard all non-reference frames. + + bidir + Discard all bidirectional frames. + + nokey + Discard all frames excepts keyframes. + + nointra + Discard all frames except I frames. + + all Discard all frames. + + Default value is default. + + bidir_refine integer (encoding,video) + Refine the two motion vectors used in bidirectional macroblocks. + + brd_scale integer (encoding,video) + Downscale frames for dynamic B-frame decision. + + keyint_min integer (encoding,video) + Set minimum interval between IDR-frames. + + refs integer (encoding,video) + Set reference frames to consider for motion compensation. + + chromaoffset integer (encoding,video) + Set chroma qp offset from luma. + + trellis integer (encoding,audio,video) + Set rate-distortion optimal quantization. + + mv0_threshold integer (encoding,video) + b_sensitivity integer (encoding,video) + Adjust sensitivity of b_frame_strategy 1. + + compression_level integer (encoding,audio,video) + min_prediction_order integer (encoding,audio) + max_prediction_order integer (encoding,audio) + timecode_frame_start integer (encoding,video) + Set GOP timecode frame start number, in non drop frame format. + + request_channels integer (decoding,audio) + Set desired number of audio channels. + + bits_per_raw_sample integer + channel_layout integer (decoding/encoding,audio) + Possible values: + + request_channel_layout integer (decoding,audio) + Possible values: + + rc_max_vbv_use float (encoding,video) + rc_min_vbv_use float (encoding,video) + ticks_per_frame integer (decoding/encoding,audio,video) + color_primaries integer (decoding/encoding,video) + Possible values: + + bt709 + BT.709 + + bt470m + BT.470 M + + bt470bg + BT.470 BG + + smpte170m + SMPTE 170 M + + smpte240m + SMPTE 240 M + + film + Film + + bt2020 + BT.2020 + + smpte428 + smpte428_1 + SMPTE ST 428-1 + + smpte431 + SMPTE 431-2 + + smpte432 + SMPTE 432-1 + + jedec-p22 + JEDEC P22 + + color_trc integer (decoding/encoding,video) + Possible values: + + bt709 + BT.709 + + gamma22 + BT.470 M + + gamma28 + BT.470 BG + + smpte170m + SMPTE 170 M + + smpte240m + SMPTE 240 M + + linear + Linear + + log + log100 + Log + + log_sqrt + log316 + Log square root + + iec61966_2_4 + iec61966-2-4 + IEC 61966-2-4 + + bt1361 + bt1361e + BT.1361 + + iec61966_2_1 + iec61966-2-1 + IEC 61966-2-1 + + bt2020_10 + bt2020_10bit + BT.2020 - 10 bit + + bt2020_12 + bt2020_12bit + BT.2020 - 12 bit + + smpte2084 + SMPTE ST 2084 + + smpte428 + smpte428_1 + SMPTE ST 428-1 + + arib-std-b67 + ARIB STD-B67 + + colorspace integer (decoding/encoding,video) + Possible values: + + rgb RGB + + bt709 + BT.709 + + fcc FCC + + bt470bg + BT.470 BG + + smpte170m + SMPTE 170 M + + smpte240m + SMPTE 240 M + + ycocg + YCOCG + + bt2020nc + bt2020_ncl + BT.2020 NCL + + bt2020c + bt2020_cl + BT.2020 CL + + smpte2085 + SMPTE 2085 + + color_range integer (decoding/encoding,video) + If used as input parameter, it serves as a hint to the decoder, + which color_range the input has. Possible values: + + tv + mpeg + MPEG (219*2^(n-8)) + + pc + jpeg + JPEG (2^n-1) + + chroma_sample_location integer (decoding/encoding,video) + Possible values: + + left + center + topleft + top + bottomleft + bottom + log_level_offset integer + Set the log level offset. + + slices integer (encoding,video) + Number of slices, used in parallelized encoding. + + thread_type flags (decoding/encoding,video) + Select which multithreading methods to use. + + Use of frame will increase decoding delay by one frame per thread, + so clients which cannot provide future frames should not use it. + + Possible values: + + slice + Decode more than one part of a single frame at once. + + Multithreading using slices works only when the video was + encoded with slices. + + frame + Decode more than one frame at once. + + Default value is slice+frame. + + audio_service_type integer (encoding,audio) + Set audio service type. + + Possible values: + + ma Main Audio Service + + ef Effects + + vi Visually Impaired + + hi Hearing Impaired + + di Dialogue + + co Commentary + + em Emergency + + vo Voice Over + + ka Karaoke + + request_sample_fmt sample_fmt (decoding,audio) + Set sample format audio decoders should prefer. Default value is + "none". + + pkt_timebase rational number + sub_charenc encoding (decoding,subtitles) + Set the input subtitles character encoding. + + field_order field_order (video) + Set/override the field order of the video. Possible values: + + progressive + Progressive video + + tt Interlaced video, top field coded and displayed first + + bb Interlaced video, bottom field coded and displayed first + + tb Interlaced video, top coded first, bottom displayed first + + bt Interlaced video, bottom coded first, top displayed first + + skip_alpha bool (decoding,video) + Set to 1 to disable processing alpha (transparency). This works + like the gray flag in the flags option which skips chroma + information instead of alpha. Default is 0. + + codec_whitelist list (input) + "," separated list of allowed decoders. By default all are allowed. + + dump_separator string (input) + Separator used to separate the fields printed on the command line + about the Stream parameters. For example, to separate the fields + with newlines and indentation: + + ffprobe -dump_separator " + " -i ~/videos/matrixbench_mpeg2.mpg + + max_pixels integer (decoding/encoding,video) + Maximum number of pixels per image. This value can be used to avoid + out of memory failures due to large images. + + apply_cropping bool (decoding,video) + Enable cropping if cropping parameters are multiples of the + required alignment for the left and top parameters. If the + alignment is not met the cropping will be partially applied to + maintain alignment. Default is 1 (enabled). Note: The required + alignment depends on if "AV_CODEC_FLAG_UNALIGNED" is set and the + CPU. "AV_CODEC_FLAG_UNALIGNED" cannot be changed from the command + line. Also hardware decoders will not apply left/top Cropping. + +DECODERS + Decoders are configured elements in FFmpeg which allow the decoding of + multimedia streams. + + When you configure your FFmpeg build, all the supported native decoders + are enabled by default. Decoders requiring an external library must be + enabled manually via the corresponding "--enable-lib" option. You can + list all available decoders using the configure option + "--list-decoders". + + You can disable all the decoders with the configure option + "--disable-decoders" and selectively enable / disable single decoders + with the options "--enable-decoder=DECODER" / + "--disable-decoder=DECODER". + + The option "-decoders" of the ff* tools will display the list of + enabled decoders. + +VIDEO DECODERS + A description of some of the currently available video decoders + follows. + + rawvideo + Raw video decoder. + + This decoder decodes rawvideo streams. + + Options + + top top_field_first + Specify the assumed field type of the input video. + + -1 the video is assumed to be progressive (default) + + 0 bottom-field-first is assumed + + 1 top-field-first is assumed + + libdav1d + dav1d AV1 decoder. + + libdav1d allows libavcodec to decode the AOMedia Video 1 (AV1) codec. + Requires the presence of the libdav1d headers and library during + configuration. You need to explicitly configure the build with + "--enable-libdav1d". + + Options + + The following option is supported by the libdav1d wrapper. + + framethreads + Set amount of frame threads to use during decoding. The default + value is 0 (autodetect). + + tilethreads + Set amount of tile threads to use during decoding. The default + value is 0 (autodetect). + + filmgrain + Apply film grain to the decoded video if present in the bitstream. + The default value is true. + + libdavs2 + AVS2-P2/IEEE1857.4 video decoder wrapper. + + This decoder allows libavcodec to decode AVS2 streams with davs2 + library. + +AUDIO DECODERS + A description of some of the currently available audio decoders + follows. + + ac3 + AC-3 audio decoder. + + This decoder implements part of ATSC A/52:2010 and ETSI TS 102 366, as + well as the undocumented RealAudio 3 (a.k.a. dnet). + + AC-3 Decoder Options + + -drc_scale value + Dynamic Range Scale Factor. The factor to apply to dynamic range + values from the AC-3 stream. This factor is applied exponentially. + There are 3 notable scale factor ranges: + + drc_scale == 0 + DRC disabled. Produces full range audio. + + 0 < drc_scale <= 1 + DRC enabled. Applies a fraction of the stream DRC value. + Audio reproduction is between full range and full compression. + + drc_scale > 1 + DRC enabled. Applies drc_scale asymmetrically. Loud sounds are + fully compressed. Soft sounds are enhanced. + + flac + FLAC audio decoder. + + This decoder aims to implement the complete FLAC specification from + Xiph. + + FLAC Decoder options + + -use_buggy_lpc + The lavc FLAC encoder used to produce buggy streams with high lpc + values (like the default value). This option makes it possible to + decode such streams correctly by using lavc's old buggy lpc logic + for decoding. + + ffwavesynth + Internal wave synthesizer. + + This decoder generates wave patterns according to predefined sequences. + Its use is purely internal and the format of the data it accepts is not + publicly documented. + + libcelt + libcelt decoder wrapper. + + libcelt allows libavcodec to decode the Xiph CELT ultra-low delay audio + codec. Requires the presence of the libcelt headers and library during + configuration. You need to explicitly configure the build with + "--enable-libcelt". + + libgsm + libgsm decoder wrapper. + + libgsm allows libavcodec to decode the GSM full rate audio codec. + Requires the presence of the libgsm headers and library during + configuration. You need to explicitly configure the build with + "--enable-libgsm". + + This decoder supports both the ordinary GSM and the Microsoft variant. + + libilbc + libilbc decoder wrapper. + + libilbc allows libavcodec to decode the Internet Low Bitrate Codec + (iLBC) audio codec. Requires the presence of the libilbc headers and + library during configuration. You need to explicitly configure the + build with "--enable-libilbc". + + Options + + The following option is supported by the libilbc wrapper. + + enhance + Enable the enhancement of the decoded audio when set to 1. The + default value is 0 (disabled). + + libopencore-amrnb + libopencore-amrnb decoder wrapper. + + libopencore-amrnb allows libavcodec to decode the Adaptive Multi-Rate + Narrowband audio codec. Using it requires the presence of the + libopencore-amrnb headers and library during configuration. You need to + explicitly configure the build with "--enable-libopencore-amrnb". + + An FFmpeg native decoder for AMR-NB exists, so users can decode AMR-NB + without this library. + + libopencore-amrwb + libopencore-amrwb decoder wrapper. + + libopencore-amrwb allows libavcodec to decode the Adaptive Multi-Rate + Wideband audio codec. Using it requires the presence of the + libopencore-amrwb headers and library during configuration. You need to + explicitly configure the build with "--enable-libopencore-amrwb". + + An FFmpeg native decoder for AMR-WB exists, so users can decode AMR-WB + without this library. + + libopus + libopus decoder wrapper. + + libopus allows libavcodec to decode the Opus Interactive Audio Codec. + Requires the presence of the libopus headers and library during + configuration. You need to explicitly configure the build with + "--enable-libopus". + + An FFmpeg native decoder for Opus exists, so users can decode Opus + without this library. + +SUBTITLES DECODERS + libaribb24 + ARIB STD-B24 caption decoder. + + Implements profiles A and C of the ARIB STD-B24 standard. + + libaribb24 Decoder Options + + -aribb24-base-path path + Sets the base path for the libaribb24 library. This is utilized for + reading of configuration files (for custom unicode conversions), + and for dumping of non-text symbols as images under that location. + + Unset by default. + + -aribb24-skip-ruby-text boolean + Tells the decoder wrapper to skip text blocks that contain half- + height ruby text. + + Enabled by default. + + dvbsub + Options + + compute_clut + -1 Compute clut if no matching CLUT is in the stream. + + 0 Never compute CLUT + + 1 Always compute CLUT and override the one provided in the + stream. + + dvb_substream + Selects the dvb substream, or all substreams if -1 which is + default. + + dvdsub + This codec decodes the bitmap subtitles used in DVDs; the same + subtitles can also be found in VobSub file pairs and in some Matroska + files. + + Options + + palette + Specify the global palette used by the bitmaps. When stored in + VobSub, the palette is normally specified in the index file; in + Matroska, the palette is stored in the codec extra-data in the same + format as in VobSub. In DVDs, the palette is stored in the IFO + file, and therefore not available when reading from dumped VOB + files. + + The format for this option is a string containing 16 24-bits + hexadecimal numbers (without 0x prefix) separated by comas, for + example "0d00ee, ee450d, 101010, eaeaea, 0ce60b, ec14ed, ebff0b, + 0d617a, 7b7b7b, d1d1d1, 7b2a0e, 0d950c, 0f007b, cf0dec, cfa80c, + 7c127b". + + ifo_palette + Specify the IFO file from which the global palette is obtained. + (experimental) + + forced_subs_only + Only decode subtitle entries marked as forced. Some titles have + forced and non-forced subtitles in the same track. Setting this + flag to 1 will only keep the forced subtitles. Default value is 0. + + libzvbi-teletext + Libzvbi allows libavcodec to decode DVB teletext pages and DVB teletext + subtitles. Requires the presence of the libzvbi headers and library + during configuration. You need to explicitly configure the build with + "--enable-libzvbi". + + Options + + txt_page + List of teletext page numbers to decode. Pages that do not match + the specified list are dropped. You may use the special "*" string + to match all pages, or "subtitle" to match all subtitle pages. + Default value is *. + + txt_chop_top + Discards the top teletext line. Default value is 1. + + txt_format + Specifies the format of the decoded subtitles. + + bitmap + The default format, you should use this for teletext pages, + because certain graphics and colors cannot be expressed in + simple text or even ASS. + + text + Simple text based output without formatting. + + ass Formatted ASS output, subtitle pages and teletext pages are + returned in different styles, subtitle pages are stripped down + to text, but an effort is made to keep the text alignment and + the formatting. + + txt_left + X offset of generated bitmaps, default is 0. + + txt_top + Y offset of generated bitmaps, default is 0. + + txt_chop_spaces + Chops leading and trailing spaces and removes empty lines from the + generated text. This option is useful for teletext based subtitles + where empty spaces may be present at the start or at the end of the + lines or empty lines may be present between the subtitle lines + because of double-sized teletext characters. Default value is 1. + + txt_duration + Sets the display duration of the decoded teletext pages or + subtitles in milliseconds. Default value is -1 which means infinity + or until the next subtitle event comes. + + txt_transparent + Force transparent background of the generated teletext bitmaps. + Default value is 0 which means an opaque background. + + txt_opacity + Sets the opacity (0-255) of the teletext background. If + txt_transparent is not set, it only affects characters between a + start box and an end box, typically subtitles. Default value is 0 + if txt_transparent is set, 255 otherwise. + +ENCODERS + Encoders are configured elements in FFmpeg which allow the encoding of + multimedia streams. + + When you configure your FFmpeg build, all the supported native encoders + are enabled by default. Encoders requiring an external library must be + enabled manually via the corresponding "--enable-lib" option. You can + list all available encoders using the configure option + "--list-encoders". + + You can disable all the encoders with the configure option + "--disable-encoders" and selectively enable / disable single encoders + with the options "--enable-encoder=ENCODER" / + "--disable-encoder=ENCODER". + + The option "-encoders" of the ff* tools will display the list of + enabled encoders. + +AUDIO ENCODERS + A description of some of the currently available audio encoders + follows. + + aac + Advanced Audio Coding (AAC) encoder. + + This encoder is the default AAC encoder, natively implemented into + FFmpeg. Its quality is on par or better than libfdk_aac at the default + bitrate of 128kbps. This encoder also implements more options, + profiles and samplerates than other encoders (with only the AAC-HE + profile pending to be implemented) so this encoder has become the + default and is the recommended choice. + + Options + + b Set bit rate in bits/s. Setting this automatically activates + constant bit rate (CBR) mode. If this option is unspecified it is + set to 128kbps. + + q Set quality for variable bit rate (VBR) mode. This option is valid + only using the ffmpeg command-line tool. For library interface + users, use global_quality. + + cutoff + Set cutoff frequency. If unspecified will allow the encoder to + dynamically adjust the cutoff to improve clarity on low bitrates. + + aac_coder + Set AAC encoder coding method. Possible values: + + twoloop + Two loop searching (TLS) method. + + This method first sets quantizers depending on band thresholds + and then tries to find an optimal combination by adding or + subtracting a specific value from all quantizers and adjusting + some individual quantizer a little. Will tune itself based on + whether aac_is, aac_ms and aac_pns are enabled. + + anmr + Average noise to mask ratio (ANMR) trellis-based solution. + + This is an experimental coder which currently produces a lower + quality, is more unstable and is slower than the default + twoloop coder but has potential. Currently has no support for + the aac_is or aac_pns options. Not currently recommended. + + fast + Constant quantizer method. + + Uses a cheaper version of twoloop algorithm that doesn't try to + do as many clever adjustments. Worse with low bitrates (less + than 64kbps), but is better and much faster at higher bitrates. + This is the default choice for a coder + + aac_ms + Sets mid/side coding mode. The default value of "auto" will + automatically use M/S with bands which will benefit from such + coding. Can be forced for all bands using the value "enable", which + is mainly useful for debugging or disabled using "disable". + + aac_is + Sets intensity stereo coding tool usage. By default, it's enabled + and will automatically toggle IS for similar pairs of stereo bands + if it's beneficial. Can be disabled for debugging by setting the + value to "disable". + + aac_pns + Uses perceptual noise substitution to replace low entropy high + frequency bands with imperceptible white noise during the decoding + process. By default, it's enabled, but can be disabled for + debugging purposes by using "disable". + + aac_tns + Enables the use of a multitap FIR filter which spans through the + high frequency bands to hide quantization noise during the encoding + process and is reverted by the decoder. As well as decreasing + unpleasant artifacts in the high range this also reduces the + entropy in the high bands and allows for more bits to be used by + the mid-low bands. By default it's enabled but can be disabled for + debugging by setting the option to "disable". + + aac_ltp + Enables the use of the long term prediction extension which + increases coding efficiency in very low bandwidth situations such + as encoding of voice or solo piano music by extending constant + harmonic peaks in bands throughout frames. This option is implied + by profile:a aac_low and is incompatible with aac_pred. Use in + conjunction with -ar to decrease the samplerate. + + aac_pred + Enables the use of a more traditional style of prediction where the + spectral coefficients transmitted are replaced by the difference of + the current coefficients minus the previous "predicted" + coefficients. In theory and sometimes in practice this can improve + quality for low to mid bitrate audio. This option implies the + aac_main profile and is incompatible with aac_ltp. + + profile + Sets the encoding profile, possible values: + + aac_low + The default, AAC "Low-complexity" profile. Is the most + compatible and produces decent quality. + + mpeg2_aac_low + Equivalent to "-profile:a aac_low -aac_pns 0". PNS was + introduced with the MPEG4 specifications. + + aac_ltp + Long term prediction profile, is enabled by and will enable the + aac_ltp option. Introduced in MPEG4. + + aac_main + Main-type prediction profile, is enabled by and will enable the + aac_pred option. Introduced in MPEG2. + + If this option is unspecified it is set to aac_low. + + ac3 and ac3_fixed + AC-3 audio encoders. + + These encoders implement part of ATSC A/52:2010 and ETSI TS 102 366, as + well as the undocumented RealAudio 3 (a.k.a. dnet). + + The ac3 encoder uses floating-point math, while the ac3_fixed encoder + only uses fixed-point integer math. This does not mean that one is + always faster, just that one or the other may be better suited to a + particular system. The floating-point encoder will generally produce + better quality audio for a given bitrate. The ac3_fixed encoder is not + the default codec for any of the output formats, so it must be + specified explicitly using the option "-acodec ac3_fixed" in order to + use it. + + AC-3 Metadata + + The AC-3 metadata options are used to set parameters that describe the + audio, but in most cases do not affect the audio encoding itself. Some + of the options do directly affect or influence the decoding and + playback of the resulting bitstream, while others are just for + informational purposes. A few of the options will add bits to the + output stream that could otherwise be used for audio data, and will + thus affect the quality of the output. Those will be indicated + accordingly with a note in the option list below. + + These parameters are described in detail in several publicly-available + documents. + + *<> + *<> + *<> + *<> + + Metadata Control Options + + -per_frame_metadata boolean + Allow Per-Frame Metadata. Specifies if the encoder should check for + changing metadata for each frame. + + 0 The metadata values set at initialization will be used for + every frame in the stream. (default) + + 1 Metadata values can be changed before encoding each frame. + + Downmix Levels + + -center_mixlev level + Center Mix Level. The amount of gain the decoder should apply to + the center channel when downmixing to stereo. This field will only + be written to the bitstream if a center channel is present. The + value is specified as a scale factor. There are 3 valid values: + + 0.707 + Apply -3dB gain + + 0.595 + Apply -4.5dB gain (default) + + 0.500 + Apply -6dB gain + + -surround_mixlev level + Surround Mix Level. The amount of gain the decoder should apply to + the surround channel(s) when downmixing to stereo. This field will + only be written to the bitstream if one or more surround channels + are present. The value is specified as a scale factor. There are 3 + valid values: + + 0.707 + Apply -3dB gain + + 0.500 + Apply -6dB gain (default) + + 0.000 + Silence Surround Channel(s) + + Audio Production Information + + Audio Production Information is optional information describing the + mixing environment. Either none or both of the fields are written to + the bitstream. + + -mixing_level number + Mixing Level. Specifies peak sound pressure level (SPL) in the + production environment when the mix was mastered. Valid values are + 80 to 111, or -1 for unknown or not indicated. The default value is + -1, but that value cannot be used if the Audio Production + Information is written to the bitstream. Therefore, if the + "room_type" option is not the default value, the "mixing_level" + option must not be -1. + + -room_type type + Room Type. Describes the equalization used during the final mixing + session at the studio or on the dubbing stage. A large room is a + dubbing stage with the industry standard X-curve equalization; a + small room has flat equalization. This field will not be written + to the bitstream if both the "mixing_level" option and the + "room_type" option have the default values. + + 0 + notindicated + Not Indicated (default) + + 1 + large + Large Room + + 2 + small + Small Room + + Other Metadata Options + + -copyright boolean + Copyright Indicator. Specifies whether a copyright exists for this + audio. + + 0 + off No Copyright Exists (default) + + 1 + on Copyright Exists + + -dialnorm value + Dialogue Normalization. Indicates how far the average dialogue + level of the program is below digital 100% full scale (0 dBFS). + This parameter determines a level shift during audio reproduction + that sets the average volume of the dialogue to a preset level. The + goal is to match volume level between program sources. A value of + -31dB will result in no volume level change, relative to the source + volume, during audio reproduction. Valid values are whole numbers + in the range -31 to -1, with -31 being the default. + + -dsur_mode mode + Dolby Surround Mode. Specifies whether the stereo signal uses Dolby + Surround (Pro Logic). This field will only be written to the + bitstream if the audio stream is stereo. Using this option does NOT + mean the encoder will actually apply Dolby Surround processing. + + 0 + notindicated + Not Indicated (default) + + 1 + off Not Dolby Surround Encoded + + 2 + on Dolby Surround Encoded + + -original boolean + Original Bit Stream Indicator. Specifies whether this audio is from + the original source and not a copy. + + 0 + off Not Original Source + + 1 + on Original Source (default) + + Extended Bitstream Information + + The extended bitstream options are part of the Alternate Bit Stream + Syntax as specified in Annex D of the A/52:2010 standard. It is grouped + into 2 parts. If any one parameter in a group is specified, all values + in that group will be written to the bitstream. Default values are + used for those that are written but have not been specified. If the + mixing levels are written, the decoder will use these values instead of + the ones specified in the "center_mixlev" and "surround_mixlev" options + if it supports the Alternate Bit Stream Syntax. + + Extended Bitstream Information - Part 1 + + -dmix_mode mode + Preferred Stereo Downmix Mode. Allows the user to select either + Lt/Rt (Dolby Surround) or Lo/Ro (normal stereo) as the preferred + stereo downmix mode. + + 0 + notindicated + Not Indicated (default) + + 1 + ltrt + Lt/Rt Downmix Preferred + + 2 + loro + Lo/Ro Downmix Preferred + + -ltrt_cmixlev level + Lt/Rt Center Mix Level. The amount of gain the decoder should apply + to the center channel when downmixing to stereo in Lt/Rt mode. + + 1.414 + Apply +3dB gain + + 1.189 + Apply +1.5dB gain + + 1.000 + Apply 0dB gain + + 0.841 + Apply -1.5dB gain + + 0.707 + Apply -3.0dB gain + + 0.595 + Apply -4.5dB gain (default) + + 0.500 + Apply -6.0dB gain + + 0.000 + Silence Center Channel + + -ltrt_surmixlev level + Lt/Rt Surround Mix Level. The amount of gain the decoder should + apply to the surround channel(s) when downmixing to stereo in Lt/Rt + mode. + + 0.841 + Apply -1.5dB gain + + 0.707 + Apply -3.0dB gain + + 0.595 + Apply -4.5dB gain + + 0.500 + Apply -6.0dB gain (default) + + 0.000 + Silence Surround Channel(s) + + -loro_cmixlev level + Lo/Ro Center Mix Level. The amount of gain the decoder should apply + to the center channel when downmixing to stereo in Lo/Ro mode. + + 1.414 + Apply +3dB gain + + 1.189 + Apply +1.5dB gain + + 1.000 + Apply 0dB gain + + 0.841 + Apply -1.5dB gain + + 0.707 + Apply -3.0dB gain + + 0.595 + Apply -4.5dB gain (default) + + 0.500 + Apply -6.0dB gain + + 0.000 + Silence Center Channel + + -loro_surmixlev level + Lo/Ro Surround Mix Level. The amount of gain the decoder should + apply to the surround channel(s) when downmixing to stereo in Lo/Ro + mode. + + 0.841 + Apply -1.5dB gain + + 0.707 + Apply -3.0dB gain + + 0.595 + Apply -4.5dB gain + + 0.500 + Apply -6.0dB gain (default) + + 0.000 + Silence Surround Channel(s) + + Extended Bitstream Information - Part 2 + + -dsurex_mode mode + Dolby Surround EX Mode. Indicates whether the stream uses Dolby + Surround EX (7.1 matrixed to 5.1). Using this option does NOT mean + the encoder will actually apply Dolby Surround EX processing. + + 0 + notindicated + Not Indicated (default) + + 1 + on Dolby Surround EX Off + + 2 + off Dolby Surround EX On + + -dheadphone_mode mode + Dolby Headphone Mode. Indicates whether the stream uses Dolby + Headphone encoding (multi-channel matrixed to 2.0 for use with + headphones). Using this option does NOT mean the encoder will + actually apply Dolby Headphone processing. + + 0 + notindicated + Not Indicated (default) + + 1 + on Dolby Headphone Off + + 2 + off Dolby Headphone On + + -ad_conv_type type + A/D Converter Type. Indicates whether the audio has passed through + HDCD A/D conversion. + + 0 + standard + Standard A/D Converter (default) + + 1 + hdcd + HDCD A/D Converter + + Other AC-3 Encoding Options + + -stereo_rematrixing boolean + Stereo Rematrixing. Enables/Disables use of rematrixing for stereo + input. This is an optional AC-3 feature that increases quality by + selectively encoding the left/right channels as mid/side. This + option is enabled by default, and it is highly recommended that it + be left as enabled except for testing purposes. + + cutoff frequency + Set lowpass cutoff frequency. If unspecified, the encoder selects a + default determined by various other encoding parameters. + + Floating-Point-Only AC-3 Encoding Options + + These options are only valid for the floating-point encoder and do not + exist for the fixed-point encoder due to the corresponding features not + being implemented in fixed-point. + + -channel_coupling boolean + Enables/Disables use of channel coupling, which is an optional AC-3 + feature that increases quality by combining high frequency + information from multiple channels into a single channel. The per- + channel high frequency information is sent with less accuracy in + both the frequency and time domains. This allows more bits to be + used for lower frequencies while preserving enough information to + reconstruct the high frequencies. This option is enabled by default + for the floating-point encoder and should generally be left as + enabled except for testing purposes or to increase encoding speed. + + -1 + auto + Selected by Encoder (default) + + 0 + off Disable Channel Coupling + + 1 + on Enable Channel Coupling + + -cpl_start_band number + Coupling Start Band. Sets the channel coupling start band, from 1 + to 15. If a value higher than the bandwidth is used, it will be + reduced to 1 less than the coupling end band. If auto is used, the + start band will be determined by the encoder based on the bit rate, + sample rate, and channel layout. This option has no effect if + channel coupling is disabled. + + -1 + auto + Selected by Encoder (default) + + flac + FLAC (Free Lossless Audio Codec) Encoder + + Options + + The following options are supported by FFmpeg's flac encoder. + + compression_level + Sets the compression level, which chooses defaults for many other + options if they are not set explicitly. Valid values are from 0 to + 12, 5 is the default. + + frame_size + Sets the size of the frames in samples per channel. + + lpc_coeff_precision + Sets the LPC coefficient precision, valid values are from 1 to 15, + 15 is the default. + + lpc_type + Sets the first stage LPC algorithm + + none + LPC is not used + + fixed + fixed LPC coefficients + + levinson + cholesky + lpc_passes + Number of passes to use for Cholesky factorization during LPC + analysis + + min_partition_order + The minimum partition order + + max_partition_order + The maximum partition order + + prediction_order_method + estimation + 2level + 4level + 8level + search + Bruteforce search + + log + ch_mode + Channel mode + + auto + The mode is chosen automatically for each frame + + indep + Channels are independently coded + + left_side + right_side + mid_side + exact_rice_parameters + Chooses if rice parameters are calculated exactly or approximately. + if set to 1 then they are chosen exactly, which slows the code down + slightly and improves compression slightly. + + multi_dim_quant + Multi Dimensional Quantization. If set to 1 then a 2nd stage LPC + algorithm is applied after the first stage to finetune the + coefficients. This is quite slow and slightly improves compression. + + opus + Opus encoder. + + This is a native FFmpeg encoder for the Opus format. Currently its in + development and only implements the CELT part of the codec. Its quality + is usually worse and at best is equal to the libopus encoder. + + Options + + b Set bit rate in bits/s. If unspecified it uses the number of + channels and the layout to make a good guess. + + opus_delay + Sets the maximum delay in milliseconds. Lower delays than 20ms will + very quickly decrease quality. + + libfdk_aac + libfdk-aac AAC (Advanced Audio Coding) encoder wrapper. + + The libfdk-aac library is based on the Fraunhofer FDK AAC code from the + Android project. + + Requires the presence of the libfdk-aac headers and library during + configuration. You need to explicitly configure the build with + "--enable-libfdk-aac". The library is also incompatible with GPL, so if + you allow the use of GPL, you should configure with "--enable-gpl + --enable-nonfree --enable-libfdk-aac". + + This encoder is considered to produce output on par or worse at 128kbps + to the the native FFmpeg AAC encoder but can often produce better + sounding audio at identical or lower bitrates and has support for the + AAC-HE profiles. + + VBR encoding, enabled through the vbr or flags +qscale options, is + experimental and only works with some combinations of parameters. + + Support for encoding 7.1 audio is only available with libfdk-aac 0.1.3 + or higher. + + For more information see the fdk-aac project at + . + + Options + + The following options are mapped on the shared FFmpeg codec options. + + b Set bit rate in bits/s. If the bitrate is not explicitly specified, + it is automatically set to a suitable value depending on the + selected profile. + + In case VBR mode is enabled the option is ignored. + + ar Set audio sampling rate (in Hz). + + channels + Set the number of audio channels. + + flags +qscale + Enable fixed quality, VBR (Variable Bit Rate) mode. Note that VBR + is implicitly enabled when the vbr value is positive. + + cutoff + Set cutoff frequency. If not specified (or explicitly set to 0) it + will use a value automatically computed by the library. Default + value is 0. + + profile + Set audio profile. + + The following profiles are recognized: + + aac_low + Low Complexity AAC (LC) + + aac_he + High Efficiency AAC (HE-AAC) + + aac_he_v2 + High Efficiency AAC version 2 (HE-AACv2) + + aac_ld + Low Delay AAC (LD) + + aac_eld + Enhanced Low Delay AAC (ELD) + + If not specified it is set to aac_low. + + The following are private options of the libfdk_aac encoder. + + afterburner + Enable afterburner feature if set to 1, disabled if set to 0. This + improves the quality but also the required processing power. + + Default value is 1. + + eld_sbr + Enable SBR (Spectral Band Replication) for ELD if set to 1, + disabled if set to 0. + + Default value is 0. + + eld_v2 + Enable ELDv2 (LD-MPS extension for ELD stereo signals) for ELDv2 if + set to 1, disabled if set to 0. + + Note that option is available when fdk-aac version + (AACENCODER_LIB_VL0.AACENCODER_LIB_VL1.AACENCODER_LIB_VL2) > + (4.0.0). + + Default value is 0. + + signaling + Set SBR/PS signaling style. + + It can assume one of the following values: + + default + choose signaling implicitly (explicit hierarchical by default, + implicit if global header is disabled) + + implicit + implicit backwards compatible signaling + + explicit_sbr + explicit SBR, implicit PS signaling + + explicit_hierarchical + explicit hierarchical signaling + + Default value is default. + + latm + Output LATM/LOAS encapsulated data if set to 1, disabled if set to + 0. + + Default value is 0. + + header_period + Set StreamMuxConfig and PCE repetition period (in frames) for + sending in-band configuration buffers within LATM/LOAS transport + layer. + + Must be a 16-bits non-negative integer. + + Default value is 0. + + vbr Set VBR mode, from 1 to 5. 1 is lowest quality (though still pretty + good) and 5 is highest quality. A value of 0 will disable VBR, and + CBR (Constant Bit Rate) is enabled. + + Currently only the aac_low profile supports VBR encoding. + + VBR modes 1-5 correspond to roughly the following average bit + rates: + + 1 32 kbps/channel + + 2 40 kbps/channel + + 3 48-56 kbps/channel + + 4 64 kbps/channel + + 5 about 80-96 kbps/channel + + Default value is 0. + + Examples + + o Use ffmpeg to convert an audio file to VBR AAC in an M4A (MP4) + container: + + ffmpeg -i input.wav -codec:a libfdk_aac -vbr 3 output.m4a + + o Use ffmpeg to convert an audio file to CBR 64k kbps AAC, using the + High-Efficiency AAC profile: + + ffmpeg -i input.wav -c:a libfdk_aac -profile:a aac_he -b:a 64k output.m4a + + libmp3lame + LAME (Lame Ain't an MP3 Encoder) MP3 encoder wrapper. + + Requires the presence of the libmp3lame headers and library during + configuration. You need to explicitly configure the build with + "--enable-libmp3lame". + + See libshine for a fixed-point MP3 encoder, although with a lower + quality. + + Options + + The following options are supported by the libmp3lame wrapper. The + lame-equivalent of the options are listed in parentheses. + + b (-b) + Set bitrate expressed in bits/s for CBR or ABR. LAME "bitrate" is + expressed in kilobits/s. + + q (-V) + Set constant quality setting for VBR. This option is valid only + using the ffmpeg command-line tool. For library interface users, + use global_quality. + + compression_level (-q) + Set algorithm quality. Valid arguments are integers in the 0-9 + range, with 0 meaning highest quality but slowest, and 9 meaning + fastest while producing the worst quality. + + cutoff (--lowpass) + Set lowpass cutoff frequency. If unspecified, the encoder + dynamically adjusts the cutoff. + + reservoir + Enable use of bit reservoir when set to 1. Default value is 1. LAME + has this enabled by default, but can be overridden by use --nores + option. + + joint_stereo (-m j) + Enable the encoder to use (on a frame by frame basis) either L/R + stereo or mid/side stereo. Default value is 1. + + abr (--abr) + Enable the encoder to use ABR when set to 1. The lame --abr sets + the target bitrate, while this options only tells FFmpeg to use ABR + still relies on b to set bitrate. + + libopencore-amrnb + OpenCORE Adaptive Multi-Rate Narrowband encoder. + + Requires the presence of the libopencore-amrnb headers and library + during configuration. You need to explicitly configure the build with + "--enable-libopencore-amrnb --enable-version3". + + This is a mono-only encoder. Officially it only supports 8000Hz sample + rate, but you can override it by setting strict to unofficial or lower. + + Options + + b Set bitrate in bits per second. Only the following bitrates are + supported, otherwise libavcodec will round to the nearest valid + bitrate. + + 4750 + 5150 + 5900 + 6700 + 7400 + 7950 + 10200 + 12200 + dtx Allow discontinuous transmission (generate comfort noise) when set + to 1. The default value is 0 (disabled). + + libopus + libopus Opus Interactive Audio Codec encoder wrapper. + + Requires the presence of the libopus headers and library during + configuration. You need to explicitly configure the build with + "--enable-libopus". + + Option Mapping + + Most libopus options are modelled after the opusenc utility from opus- + tools. The following is an option mapping chart describing options + supported by the libopus wrapper, and their opusenc-equivalent in + parentheses. + + b (bitrate) + Set the bit rate in bits/s. FFmpeg's b option is expressed in + bits/s, while opusenc's bitrate in kilobits/s. + + vbr (vbr, hard-cbr, and cvbr) + Set VBR mode. The FFmpeg vbr option has the following valid + arguments, with the opusenc equivalent options in parentheses: + + off (hard-cbr) + Use constant bit rate encoding. + + on (vbr) + Use variable bit rate encoding (the default). + + constrained (cvbr) + Use constrained variable bit rate encoding. + + compression_level (comp) + Set encoding algorithm complexity. Valid options are integers in + the 0-10 range. 0 gives the fastest encodes but lower quality, + while 10 gives the highest quality but slowest encoding. The + default is 10. + + frame_duration (framesize) + Set maximum frame size, or duration of a frame in milliseconds. The + argument must be exactly the following: 2.5, 5, 10, 20, 40, 60. + Smaller frame sizes achieve lower latency but less quality at a + given bitrate. Sizes greater than 20ms are only interesting at + fairly low bitrates. The default is 20ms. + + packet_loss (expect-loss) + Set expected packet loss percentage. The default is 0. + + application (N.A.) + Set intended application type. Valid options are listed below: + + voip + Favor improved speech intelligibility. + + audio + Favor faithfulness to the input (the default). + + lowdelay + Restrict to only the lowest delay modes. + + cutoff (N.A.) + Set cutoff bandwidth in Hz. The argument must be exactly one of the + following: 4000, 6000, 8000, 12000, or 20000, corresponding to + narrowband, mediumband, wideband, super wideband, and fullband + respectively. The default is 0 (cutoff disabled). + + mapping_family (mapping_family) + Set channel mapping family to be used by the encoder. The default + value of -1 uses mapping family 0 for mono and stereo inputs, and + mapping family 1 otherwise. The default also disables the surround + masking and LFE bandwidth optimzations in libopus, and requires + that the input contains 8 channels or fewer. + + Other values include 0 for mono and stereo, 1 for surround sound + with masking and LFE bandwidth optimizations, and 255 for + independent streams with an unspecified channel layout. + + apply_phase_inv (N.A.) (requires libopus >= 1.2) + If set to 0, disables the use of phase inversion for intensity + stereo, improving the quality of mono downmixes, but slightly + reducing normal stereo quality. The default is 1 (phase inversion + enabled). + + libshine + Shine Fixed-Point MP3 encoder wrapper. + + Shine is a fixed-point MP3 encoder. It has a far better performance on + platforms without an FPU, e.g. armel CPUs, and some phones and tablets. + However, as it is more targeted on performance than quality, it is not + on par with LAME and other production-grade encoders quality-wise. + Also, according to the project's homepage, this encoder may not be free + of bugs as the code was written a long time ago and the project was + dead for at least 5 years. + + This encoder only supports stereo and mono input. This is also CBR- + only. + + The original project (last updated in early 2007) is at + . We only support the + updated fork by the Savonet/Liquidsoap project at + . + + Requires the presence of the libshine headers and library during + configuration. You need to explicitly configure the build with + "--enable-libshine". + + See also libmp3lame. + + Options + + The following options are supported by the libshine wrapper. The + shineenc-equivalent of the options are listed in parentheses. + + b (-b) + Set bitrate expressed in bits/s for CBR. shineenc -b option is + expressed in kilobits/s. + + libtwolame + TwoLAME MP2 encoder wrapper. + + Requires the presence of the libtwolame headers and library during + configuration. You need to explicitly configure the build with + "--enable-libtwolame". + + Options + + The following options are supported by the libtwolame wrapper. The + twolame-equivalent options follow the FFmpeg ones and are in + parentheses. + + b (-b) + Set bitrate expressed in bits/s for CBR. twolame b option is + expressed in kilobits/s. Default value is 128k. + + q (-V) + Set quality for experimental VBR support. Maximum value range is + from -50 to 50, useful range is from -10 to 10. The higher the + value, the better the quality. This option is valid only using the + ffmpeg command-line tool. For library interface users, use + global_quality. + + mode (--mode) + Set the mode of the resulting audio. Possible values: + + auto + Choose mode automatically based on the input. This is the + default. + + stereo + Stereo + + joint_stereo + Joint stereo + + dual_channel + Dual channel + + mono + Mono + + psymodel (--psyc-mode) + Set psychoacoustic model to use in encoding. The argument must be + an integer between -1 and 4, inclusive. The higher the value, the + better the quality. The default value is 3. + + energy_levels (--energy) + Enable energy levels extensions when set to 1. The default value is + 0 (disabled). + + error_protection (--protect) + Enable CRC error protection when set to 1. The default value is 0 + (disabled). + + copyright (--copyright) + Set MPEG audio copyright flag when set to 1. The default value is 0 + (disabled). + + original (--original) + Set MPEG audio original flag when set to 1. The default value is 0 + (disabled). + + libvo-amrwbenc + VisualOn Adaptive Multi-Rate Wideband encoder. + + Requires the presence of the libvo-amrwbenc headers and library during + configuration. You need to explicitly configure the build with + "--enable-libvo-amrwbenc --enable-version3". + + This is a mono-only encoder. Officially it only supports 16000Hz sample + rate, but you can override it by setting strict to unofficial or lower. + + Options + + b Set bitrate in bits/s. Only the following bitrates are supported, + otherwise libavcodec will round to the nearest valid bitrate. + + 6600 + 8850 + 12650 + 14250 + 15850 + 18250 + 19850 + 23050 + 23850 + dtx Allow discontinuous transmission (generate comfort noise) when set + to 1. The default value is 0 (disabled). + + libvorbis + libvorbis encoder wrapper. + + Requires the presence of the libvorbisenc headers and library during + configuration. You need to explicitly configure the build with + "--enable-libvorbis". + + Options + + The following options are supported by the libvorbis wrapper. The + oggenc-equivalent of the options are listed in parentheses. + + To get a more accurate and extensive documentation of the libvorbis + options, consult the libvorbisenc's and oggenc's documentations. See + , , and + oggenc(1). + + b (-b) + Set bitrate expressed in bits/s for ABR. oggenc -b is expressed in + kilobits/s. + + q (-q) + Set constant quality setting for VBR. The value should be a float + number in the range of -1.0 to 10.0. The higher the value, the + better the quality. The default value is 3.0. + + This option is valid only using the ffmpeg command-line tool. For + library interface users, use global_quality. + + cutoff (--advanced-encode-option lowpass_frequency=N) + Set cutoff bandwidth in Hz, a value of 0 disables cutoff. oggenc's + related option is expressed in kHz. The default value is 0 (cutoff + disabled). + + minrate (-m) + Set minimum bitrate expressed in bits/s. oggenc -m is expressed in + kilobits/s. + + maxrate (-M) + Set maximum bitrate expressed in bits/s. oggenc -M is expressed in + kilobits/s. This only has effect on ABR mode. + + iblock (--advanced-encode-option impulse_noisetune=N) + Set noise floor bias for impulse blocks. The value is a float + number from -15.0 to 0.0. A negative bias instructs the encoder to + pay special attention to the crispness of transients in the encoded + audio. The tradeoff for better transient response is a higher + bitrate. + + libwavpack + A wrapper providing WavPack encoding through libwavpack. + + Only lossless mode using 32-bit integer samples is supported currently. + + Requires the presence of the libwavpack headers and library during + configuration. You need to explicitly configure the build with + "--enable-libwavpack". + + Note that a libavcodec-native encoder for the WavPack codec exists so + users can encode audios with this codec without using this encoder. See + wavpackenc. + + Options + + wavpack command line utility's corresponding options are listed in + parentheses, if any. + + frame_size (--blocksize) + Default is 32768. + + compression_level + Set speed vs. compression tradeoff. Acceptable arguments are listed + below: + + 0 (-f) + Fast mode. + + 1 Normal (default) settings. + + 2 (-h) + High quality. + + 3 (-hh) + Very high quality. + + 4-8 (-hh -xEXTRAPROC) + Same as 3, but with extra processing enabled. + + 4 is the same as -x2 and 8 is the same as -x6. + + mjpeg + Motion JPEG encoder. + + Options + + huffman + Set the huffman encoding strategy. Possible values: + + default + Use the default huffman tables. This is the default strategy. + + optimal + Compute and use optimal huffman tables. + + wavpack + WavPack lossless audio encoder. + + This is a libavcodec-native WavPack encoder. There is also an encoder + based on libwavpack, but there is virtually no reason to use that + encoder. + + See also libwavpack. + + Options + + The equivalent options for wavpack command line utility are listed in + parentheses. + + Shared options + + The following shared options are effective for this encoder. Only + special notes about this particular encoder will be documented here. + For the general meaning of the options, see the Codec Options chapter. + + frame_size (--blocksize) + For this encoder, the range for this option is between 128 and + 131072. Default is automatically decided based on sample rate and + number of channel. + + For the complete formula of calculating default, see + libavcodec/wavpackenc.c. + + compression_level (-f, -h, -hh, and -x) + This option's syntax is consistent with libwavpack's. + + Private options + + joint_stereo (-j) + Set whether to enable joint stereo. Valid values are: + + on (1) + Force mid/side audio encoding. + + off (0) + Force left/right audio encoding. + + auto + Let the encoder decide automatically. + + optimize_mono + Set whether to enable optimization for mono. This option is only + effective for non-mono streams. Available values: + + on enabled + + off disabled + +VIDEO ENCODERS + A description of some of the currently available video encoders + follows. + + Hap + Vidvox Hap video encoder. + + Options + + format integer + Specifies the Hap format to encode. + + hap + hap_alpha + hap_q + + Default value is hap. + + chunks integer + Specifies the number of chunks to split frames into, between 1 and + 64. This permits multithreaded decoding of large frames, + potentially at the cost of data-rate. The encoder may modify this + value to divide frames evenly. + + Default value is 1. + + compressor integer + Specifies the second-stage compressor to use. If set to none, + chunks will be limited to 1, as chunked uncompressed frames offer + no benefit. + + none + snappy + + Default value is snappy. + + jpeg2000 + The native jpeg 2000 encoder is lossy by default, the "-q:v" option can + be used to set the encoding quality. Lossless encoding can be selected + with "-pred 1". + + Options + + format + Can be set to either "j2k" or "jp2" (the default) that makes it + possible to store non-rgb pix_fmts. + + libaom-av1 + libaom AV1 encoder wrapper. + + Requires the presence of the libaom headers and library during + configuration. You need to explicitly configure the build with + "--enable-libaom". + + Options + + The wrapper supports the following standard libavcodec options: + + b Set bitrate target in bits/second. By default this will use + variable-bitrate mode. If maxrate and minrate are also set to the + same value then it will use constant-bitrate mode, otherwise if crf + is set as well then it will use constrained-quality mode. + + g keyint_min + Set key frame placement. The GOP size sets the maximum distance + between key frames; if zero the output stream will be intra-only. + The minimum distance is ignored unless it is the same as the GOP + size, in which case key frames will always appear at a fixed + interval. Not set by default, so without this option the library + has completely free choice about where to place key frames. + + qmin qmax + Set minimum/maximum quantisation values. Valid range is from 0 to + 63 (warning: this does not match the quantiser values actually used + by AV1 - divide by four to map real quantiser values to this + range). Defaults to min/max (no constraint). + + minrate maxrate bufsize rc_init_occupancy + Set rate control buffering parameters. Not used if not set - + defaults to unconstrained variable bitrate. + + threads + Set the number of threads to use while encoding. This may require + the tiles or row-mt options to also be set to actually use the + specified number of threads fully. Defaults to the number of + hardware threads supported by the host machine. + + profile + Set the encoding profile. Defaults to using the profile which + matches the bit depth and chroma subsampling of the input. + + The wrapper also has some specific options: + + cpu-used + Set the quality/encoding speed tradeoff. Valid range is from 0 to + 8, higher numbers indicating greater speed and lower quality. The + default value is 1, which will be slow and high quality. + + auto-alt-ref + Enable use of alternate reference frames. Defaults to the internal + default of the library. + + arnr-max-frames (frames) + Set altref noise reduction max frame count. Default is -1. + + arnr-strength (strength) + Set altref noise reduction filter strength. Range is -1 to 6. + Default is -1. + + aq-mode (aq-mode) + Set adaptive quantization mode. Possible values: + + none (0) + Disabled. + + variance (1) + Variance-based. + + complexity (2) + Complexity-based. + + cyclic (3) + Cyclic refresh. + + lag-in-frames + Set the maximum number of frames which the encoder may keep in + flight at any one time for lookahead purposes. Defaults to the + internal default of the library. + + error-resilience + Enable error resilience features: + + default + Improve resilience against losses of whole frames. + + Not enabled by default. + + crf Set the quality/size tradeoff for constant-quality (no bitrate + target) and constrained-quality (with maximum bitrate target) + modes. Valid range is 0 to 63, higher numbers indicating lower + quality and smaller output size. Only used if set; by default only + the bitrate target is used. + + static-thresh + Set a change threshold on blocks below which they will be skipped + by the encoder. Defined in arbitrary units as a nonnegative + integer, defaulting to zero (no blocks are skipped). + + drop-threshold + Set a threshold for dropping frames when close to rate control + bounds. Defined as a percentage of the target buffer - when the + rate control buffer falls below this percentage, frames will be + dropped until it has refilled above the threshold. Defaults to + zero (no frames are dropped). + + denoise-noise-level (level) + Amount of noise to be removed for grain synthesis. Grain synthesis + is disabled if this option is not set or set to 0. + + denoise-block-size (pixels) + Block size used for denoising for grain synthesis. If not set, AV1 + codec uses the default value of 32. + + undershoot-pct (pct) + Set datarate undershoot (min) percentage of the target bitrate. + Range is -1 to 100. Default is -1. + + overshoot-pct (pct) + Set datarate overshoot (max) percentage of the target bitrate. + Range is -1 to 1000. Default is -1. + + minsection-pct (pct) + Minimum percentage variation of the GOP bitrate from the target + bitrate. If minsection-pct is not set, the libaomenc wrapper + computes it as follows: "(minrate * 100 / bitrate)". Range is -1 + to 100. Default is -1 (unset). + + maxsection-pct (pct) + Maximum percentage variation of the GOP bitrate from the target + bitrate. If maxsection-pct is not set, the libaomenc wrapper + computes it as follows: "(maxrate * 100 / bitrate)". Range is -1 + to 5000. Default is -1 (unset). + + frame-parallel (boolean) + Enable frame parallel decodability features. Default is true. + + tiles + Set the number of tiles to encode the input video with, as columns + x rows. Larger numbers allow greater parallelism in both encoding + and decoding, but may decrease coding efficiency. Defaults to the + minimum number of tiles required by the size of the input video + (this is 1x1 (that is, a single tile) for sizes up to and including + 4K). + + tile-columns tile-rows + Set the number of tiles as log2 of the number of tile rows and + columns. Provided for compatibility with libvpx/VP9. + + row-mt (Requires libaom >= 1.0.0-759-g90a15f4f2) + Enable row based multi-threading. Disabled by default. + + enable-cdef (boolean) + Enable Constrained Directional Enhancement Filter. The libaom-av1 + encoder enables CDEF by default. + + enable-global-motion (boolean) + Enable the use of global motion for block prediction. Default is + true. + + enable-intrabc (boolean) + Enable block copy mode for intra block prediction. This mode is + useful for screen content. Default is true. + + libkvazaar + Kvazaar H.265/HEVC encoder. + + Requires the presence of the libkvazaar headers and library during + configuration. You need to explicitly configure the build with + --enable-libkvazaar. + + Options + + b Set target video bitrate in bit/s and enable rate control. + + kvazaar-params + Set kvazaar parameters as a list of name=value pairs separated by + commas (,). See kvazaar documentation for a list of options. + + libopenh264 + Cisco libopenh264 H.264/MPEG-4 AVC encoder wrapper. + + This encoder requires the presence of the libopenh264 headers and + library during configuration. You need to explicitly configure the + build with "--enable-libopenh264". The library is detected using pkg- + config. + + For more information about the library see . + + Options + + The following FFmpeg global options affect the configurations of the + libopenh264 encoder. + + b Set the bitrate (as a number of bits per second). + + g Set the GOP size. + + maxrate + Set the max bitrate (as a number of bits per second). + + flags +global_header + Set global header in the bitstream. + + slices + Set the number of slices, used in parallelized encoding. Default + value is 0. This is only used when slice_mode is set to fixed. + + slice_mode + Set slice mode. Can assume one of the following possible values: + + fixed + a fixed number of slices + + rowmb + one slice per row of macroblocks + + auto + automatic number of slices according to number of threads + + dyn dynamic slicing + + Default value is auto. + + loopfilter + Enable loop filter, if set to 1 (automatically enabled). To disable + set a value of 0. + + profile + Set profile restrictions. If set to the value of main enable CABAC + (set the "SEncParamExt.iEntropyCodingModeFlag" flag to 1). + + max_nal_size + Set maximum NAL size in bytes. + + allow_skip_frames + Allow skipping frames to hit the target bitrate if set to 1. + + libtheora + libtheora Theora encoder wrapper. + + Requires the presence of the libtheora headers and library during + configuration. You need to explicitly configure the build with + "--enable-libtheora". + + For more information about the libtheora project see + . + + Options + + The following global options are mapped to internal libtheora options + which affect the quality and the bitrate of the encoded stream. + + b Set the video bitrate in bit/s for CBR (Constant Bit Rate) mode. + In case VBR (Variable Bit Rate) mode is enabled this option is + ignored. + + flags + Used to enable constant quality mode (VBR) encoding through the + qscale flag, and to enable the "pass1" and "pass2" modes. + + g Set the GOP size. + + global_quality + Set the global quality as an integer in lambda units. + + Only relevant when VBR mode is enabled with "flags +qscale". The + value is converted to QP units by dividing it by "FF_QP2LAMBDA", + clipped in the [0 - 10] range, and then multiplied by 6.3 to get a + value in the native libtheora range [0-63]. A higher value + corresponds to a higher quality. + + q Enable VBR mode when set to a non-negative value, and set constant + quality value as a double floating point value in QP units. + + The value is clipped in the [0-10] range, and then multiplied by + 6.3 to get a value in the native libtheora range [0-63]. + + This option is valid only using the ffmpeg command-line tool. For + library interface users, use global_quality. + + Examples + + o Set maximum constant quality (VBR) encoding with ffmpeg: + + ffmpeg -i INPUT -codec:v libtheora -q:v 10 OUTPUT.ogg + + o Use ffmpeg to convert a CBR 1000 kbps Theora video stream: + + ffmpeg -i INPUT -codec:v libtheora -b:v 1000k OUTPUT.ogg + + libvpx + VP8/VP9 format supported through libvpx. + + Requires the presence of the libvpx headers and library during + configuration. You need to explicitly configure the build with + "--enable-libvpx". + + Options + + The following options are supported by the libvpx wrapper. The + vpxenc-equivalent options or values are listed in parentheses for easy + migration. + + To reduce the duplication of documentation, only the private options + and some others requiring special attention are documented here. For + the documentation of the undocumented generic options, see the Codec + Options chapter. + + To get more documentation of the libvpx options, invoke the command + ffmpeg -h encoder=libvpx, ffmpeg -h encoder=libvpx-vp9 or vpxenc + --help. Further information is available in the libvpx API + documentation. + + b (target-bitrate) + Set bitrate in bits/s. Note that FFmpeg's b option is expressed in + bits/s, while vpxenc's target-bitrate is in kilobits/s. + + g (kf-max-dist) + keyint_min (kf-min-dist) + qmin (min-q) + qmax (max-q) + bufsize (buf-sz, buf-optimal-sz) + Set ratecontrol buffer size (in bits). Note vpxenc's options are + specified in milliseconds, the libvpx wrapper converts this value + as follows: "buf-sz = bufsize * 1000 / bitrate", "buf-optimal-sz = + bufsize * 1000 / bitrate * 5 / 6". + + rc_init_occupancy (buf-initial-sz) + Set number of bits which should be loaded into the rc buffer before + decoding starts. Note vpxenc's option is specified in milliseconds, + the libvpx wrapper converts this value as follows: + "rc_init_occupancy * 1000 / bitrate". + + undershoot-pct + Set datarate undershoot (min) percentage of the target bitrate. + + overshoot-pct + Set datarate overshoot (max) percentage of the target bitrate. + + skip_threshold (drop-frame) + qcomp (bias-pct) + maxrate (maxsection-pct) + Set GOP max bitrate in bits/s. Note vpxenc's option is specified as + a percentage of the target bitrate, the libvpx wrapper converts + this value as follows: "(maxrate * 100 / bitrate)". + + minrate (minsection-pct) + Set GOP min bitrate in bits/s. Note vpxenc's option is specified as + a percentage of the target bitrate, the libvpx wrapper converts + this value as follows: "(minrate * 100 / bitrate)". + + minrate, maxrate, b end-usage=cbr + "(minrate == maxrate == bitrate)". + + crf (end-usage=cq, cq-level) + tune (tune) + psnr (psnr) + ssim (ssim) + quality, deadline (deadline) + best + Use best quality deadline. Poorly named and quite slow, this + option should be avoided as it may give worse quality output + than good. + + good + Use good quality deadline. This is a good trade-off between + speed and quality when used with the cpu-used option. + + realtime + Use realtime quality deadline. + + speed, cpu-used (cpu-used) + Set quality/speed ratio modifier. Higher values speed up the encode + at the cost of quality. + + nr (noise-sensitivity) + static-thresh + Set a change threshold on blocks below which they will be skipped + by the encoder. + + slices (token-parts) + Note that FFmpeg's slices option gives the total number of + partitions, while vpxenc's token-parts is given as + "log2(partitions)". + + max-intra-rate + Set maximum I-frame bitrate as a percentage of the target bitrate. + A value of 0 means unlimited. + + force_key_frames + "VPX_EFLAG_FORCE_KF" + + Alternate reference frame related + auto-alt-ref + Enable use of alternate reference frames (2-pass only). Values + greater than 1 enable multi-layer alternate reference frames + (VP9 only). + + arnr-maxframes + Set altref noise reduction max frame count. + + arnr-type + Set altref noise reduction filter type: backward, forward, + centered. + + arnr-strength + Set altref noise reduction filter strength. + + rc-lookahead, lag-in-frames (lag-in-frames) + Set number of frames to look ahead for frametype and + ratecontrol. + + error-resilient + Enable error resiliency features. + + sharpness integer + Increase sharpness at the expense of lower PSNR. The valid range + is [0, 7]. + + VP8-specific options + ts-parameters + Sets the temporal scalability configuration using a :-separated + list of key=value pairs. For example, to specify temporal + scalability parameters with "ffmpeg": + + ffmpeg -i INPUT -c:v libvpx -ts-parameters ts_number_layers=3:\ + ts_target_bitrate=250000,500000,1000000:ts_rate_decimator=4,2,1:\ + ts_periodicity=4:ts_layer_id=0,2,1,2 OUTPUT + + Below is a brief explanation of each of the parameters, please + refer to "struct vpx_codec_enc_cfg" in "vpx/vpx_encoder.h" for + more details. + + ts_number_layers + Number of temporal coding layers. + + ts_target_bitrate + Target bitrate for each temporal layer. + + ts_rate_decimator + Frame rate decimation factor for each temporal layer. + + ts_periodicity + Length of the sequence defining frame temporal layer + membership. + + ts_layer_id + Template defining the membership of frames to temporal + layers. + + VP9-specific options + lossless + Enable lossless mode. + + tile-columns + Set number of tile columns to use. Note this is given as + "log2(tile_columns)". For example, 8 tile columns would be + requested by setting the tile-columns option to 3. + + tile-rows + Set number of tile rows to use. Note this is given as + "log2(tile_rows)". For example, 4 tile rows would be requested + by setting the tile-rows option to 2. + + frame-parallel + Enable frame parallel decodability features. + + aq-mode + Set adaptive quantization mode (0: off (default), 1: variance + 2: complexity, 3: cyclic refresh, 4: equator360). + + colorspace color-space + Set input color space. The VP9 bitstream supports signaling the + following colorspaces: + + rgb sRGB + bt709 bt709 + unspecified unknown + bt470bg bt601 + smpte170m smpte170 + smpte240m smpte240 + bt2020_ncl bt2020 + row-mt boolean + Enable row based multi-threading. + + tune-content + Set content type: default (0), screen (1), film (2). + + corpus-complexity + Corpus VBR mode is a variant of standard VBR where the + complexity distribution midpoint is passed in rather than + calculated for a specific clip or chunk. + + The valid range is [0, 10000]. 0 (default) uses standard VBR. + + enable-tpl boolean + Enable temporal dependency model. + + For more information about libvpx see: + + libwebp + libwebp WebP Image encoder wrapper + + libwebp is Google's official encoder for WebP images. It can encode in + either lossy or lossless mode. Lossy images are essentially a wrapper + around a VP8 frame. Lossless images are a separate codec developed by + Google. + + Pixel Format + + Currently, libwebp only supports YUV420 for lossy and RGB for lossless + due to limitations of the format and libwebp. Alpha is supported for + either mode. Because of API limitations, if RGB is passed in when + encoding lossy or YUV is passed in for encoding lossless, the pixel + format will automatically be converted using functions from libwebp. + This is not ideal and is done only for convenience. + + Options + + -lossless boolean + Enables/Disables use of lossless mode. Default is 0. + + -compression_level integer + For lossy, this is a quality/speed tradeoff. Higher values give + better quality for a given size at the cost of increased encoding + time. For lossless, this is a size/speed tradeoff. Higher values + give smaller size at the cost of increased encoding time. More + specifically, it controls the number of extra algorithms and + compression tools used, and varies the combination of these tools. + This maps to the method option in libwebp. The valid range is 0 to + 6. Default is 4. + + -qscale float + For lossy encoding, this controls image quality, 0 to 100. For + lossless encoding, this controls the effort and time spent at + compressing more. The default value is 75. Note that for usage via + libavcodec, this option is called global_quality and must be + multiplied by FF_QP2LAMBDA. + + -preset type + Configuration preset. This does some automatic settings based on + the general type of the image. + + none + Do not use a preset. + + default + Use the encoder default. + + picture + Digital picture, like portrait, inner shot + + photo + Outdoor photograph, with natural lighting + + drawing + Hand or line drawing, with high-contrast details + + icon + Small-sized colorful images + + text + Text-like + + libx264, libx264rgb + x264 H.264/MPEG-4 AVC encoder wrapper. + + This encoder requires the presence of the libx264 headers and library + during configuration. You need to explicitly configure the build with + "--enable-libx264". + + libx264 supports an impressive number of features, including 8x8 and + 4x4 adaptive spatial transform, adaptive B-frame placement, CAVLC/CABAC + entropy coding, interlacing (MBAFF), lossless mode, psy optimizations + for detail retention (adaptive quantization, psy-RD, psy-trellis). + + Many libx264 encoder options are mapped to FFmpeg global codec options, + while unique encoder options are provided through private options. + Additionally the x264opts and x264-params private options allows one to + pass a list of key=value tuples as accepted by the libx264 + "x264_param_parse" function. + + The x264 project website is at + . + + The libx264rgb encoder is the same as libx264, except it accepts packed + RGB pixel formats as input instead of YUV. + + Supported Pixel Formats + + x264 supports 8- to 10-bit color spaces. The exact bit depth is + controlled at x264's configure time. FFmpeg only supports one bit depth + in one particular build. In other words, it is not possible to build + one FFmpeg with multiple versions of x264 with different bit depths. + + Options + + The following options are supported by the libx264 wrapper. The + x264-equivalent options or values are listed in parentheses for easy + migration. + + To reduce the duplication of documentation, only the private options + and some others requiring special attention are documented here. For + the documentation of the undocumented generic options, see the Codec + Options chapter. + + To get a more accurate and extensive documentation of the libx264 + options, invoke the command x264 --fullhelp or consult the libx264 + documentation. + + b (bitrate) + Set bitrate in bits/s. Note that FFmpeg's b option is expressed in + bits/s, while x264's bitrate is in kilobits/s. + + bf (bframes) + g (keyint) + qmin (qpmin) + Minimum quantizer scale. + + qmax (qpmax) + Maximum quantizer scale. + + qdiff (qpstep) + Maximum difference between quantizer scales. + + qblur (qblur) + Quantizer curve blur + + qcomp (qcomp) + Quantizer curve compression factor + + refs (ref) + Number of reference frames each P-frame can use. The range is from + 0-16. + + sc_threshold (scenecut) + Sets the threshold for the scene change detection. + + trellis (trellis) + Performs Trellis quantization to increase efficiency. Enabled by + default. + + nr (nr) + me_range (merange) + Maximum range of the motion search in pixels. + + me_method (me) + Set motion estimation method. Possible values in the decreasing + order of speed: + + dia (dia) + epzs (dia) + Diamond search with radius 1 (fastest). epzs is an alias for + dia. + + hex (hex) + Hexagonal search with radius 2. + + umh (umh) + Uneven multi-hexagon search. + + esa (esa) + Exhaustive search. + + tesa (tesa) + Hadamard exhaustive search (slowest). + + forced-idr + Normally, when forcing a I-frame type, the encoder can select any + type of I-frame. This option forces it to choose an IDR-frame. + + subq (subme) + Sub-pixel motion estimation method. + + b_strategy (b-adapt) + Adaptive B-frame placement decision algorithm. Use only on first- + pass. + + keyint_min (min-keyint) + Minimum GOP size. + + coder + Set entropy encoder. Possible values: + + ac Enable CABAC. + + vlc Enable CAVLC and disable CABAC. It generates the same effect as + x264's --no-cabac option. + + cmp Set full pixel motion estimation comparison algorithm. Possible + values: + + chroma + Enable chroma in motion estimation. + + sad Ignore chroma in motion estimation. It generates the same + effect as x264's --no-chroma-me option. + + threads (threads) + Number of encoding threads. + + thread_type + Set multithreading technique. Possible values: + + slice + Slice-based multithreading. It generates the same effect as + x264's --sliced-threads option. + + frame + Frame-based multithreading. + + flags + Set encoding flags. It can be used to disable closed GOP and enable + open GOP by setting it to "-cgop". The result is similar to the + behavior of x264's --open-gop option. + + rc_init_occupancy (vbv-init) + preset (preset) + Set the encoding preset. + + tune (tune) + Set tuning of the encoding params. + + profile (profile) + Set profile restrictions. + + fastfirstpass + Enable fast settings when encoding first pass, when set to 1. When + set to 0, it has the same effect of x264's --slow-firstpass option. + + crf (crf) + Set the quality for constant quality mode. + + crf_max (crf-max) + In CRF mode, prevents VBV from lowering quality beyond this point. + + qp (qp) + Set constant quantization rate control method parameter. + + aq-mode (aq-mode) + Set AQ method. Possible values: + + none (0) + Disabled. + + variance (1) + Variance AQ (complexity mask). + + autovariance (2) + Auto-variance AQ (experimental). + + aq-strength (aq-strength) + Set AQ strength, reduce blocking and blurring in flat and textured + areas. + + psy Use psychovisual optimizations when set to 1. When set to 0, it has + the same effect as x264's --no-psy option. + + psy-rd (psy-rd) + Set strength of psychovisual optimization, in psy-rd:psy-trellis + format. + + rc-lookahead (rc-lookahead) + Set number of frames to look ahead for frametype and ratecontrol. + + weightb + Enable weighted prediction for B-frames when set to 1. When set to + 0, it has the same effect as x264's --no-weightb option. + + weightp (weightp) + Set weighted prediction method for P-frames. Possible values: + + none (0) + Disabled + + simple (1) + Enable only weighted refs + + smart (2) + Enable both weighted refs and duplicates + + ssim (ssim) + Enable calculation and printing SSIM stats after the encoding. + + intra-refresh (intra-refresh) + Enable the use of Periodic Intra Refresh instead of IDR frames when + set to 1. + + avcintra-class (class) + Configure the encoder to generate AVC-Intra. Valid values are + 50,100 and 200 + + bluray-compat (bluray-compat) + Configure the encoder to be compatible with the bluray standard. + It is a shorthand for setting "bluray-compat=1 force-cfr=1". + + b-bias (b-bias) + Set the influence on how often B-frames are used. + + b-pyramid (b-pyramid) + Set method for keeping of some B-frames as references. Possible + values: + + none (none) + Disabled. + + strict (strict) + Strictly hierarchical pyramid. + + normal (normal) + Non-strict (not Blu-ray compatible). + + mixed-refs + Enable the use of one reference per partition, as opposed to one + reference per macroblock when set to 1. When set to 0, it has the + same effect as x264's --no-mixed-refs option. + + 8x8dct + Enable adaptive spatial transform (high profile 8x8 transform) when + set to 1. When set to 0, it has the same effect as x264's + --no-8x8dct option. + + fast-pskip + Enable early SKIP detection on P-frames when set to 1. When set to + 0, it has the same effect as x264's --no-fast-pskip option. + + aud (aud) + Enable use of access unit delimiters when set to 1. + + mbtree + Enable use macroblock tree ratecontrol when set to 1. When set to + 0, it has the same effect as x264's --no-mbtree option. + + deblock (deblock) + Set loop filter parameters, in alpha:beta form. + + cplxblur (cplxblur) + Set fluctuations reduction in QP (before curve compression). + + partitions (partitions) + Set partitions to consider as a comma-separated list of. Possible + values in the list: + + p8x8 + 8x8 P-frame partition. + + p4x4 + 4x4 P-frame partition. + + b8x8 + 4x4 B-frame partition. + + i8x8 + 8x8 I-frame partition. + + i4x4 + 4x4 I-frame partition. (Enabling p4x4 requires p8x8 to be + enabled. Enabling i8x8 requires adaptive spatial transform + (8x8dct option) to be enabled.) + + none (none) + Do not consider any partitions. + + all (all) + Consider every partition. + + direct-pred (direct) + Set direct MV prediction mode. Possible values: + + none (none) + Disable MV prediction. + + spatial (spatial) + Enable spatial predicting. + + temporal (temporal) + Enable temporal predicting. + + auto (auto) + Automatically decided. + + slice-max-size (slice-max-size) + Set the limit of the size of each slice in bytes. If not specified + but RTP payload size (ps) is specified, that is used. + + stats (stats) + Set the file name for multi-pass stats. + + nal-hrd (nal-hrd) + Set signal HRD information (requires vbv-bufsize to be set). + Possible values: + + none (none) + Disable HRD information signaling. + + vbr (vbr) + Variable bit rate. + + cbr (cbr) + Constant bit rate (not allowed in MP4 container). + + x264opts (N.A.) + Set any x264 option, see x264 --fullhelp for a list. + + Argument is a list of key=value couples separated by ":". In filter + and psy-rd options that use ":" as a separator themselves, use "," + instead. They accept it as well since long ago but this is kept + undocumented for some reason. + + For example to specify libx264 encoding options with ffmpeg: + + ffmpeg -i foo.mpg -c:v libx264 -x264opts keyint=123:min-keyint=20 -an out.mkv + + a53cc boolean + Import closed captions (which must be ATSC compatible format) into + output. Only the mpeg2 and h264 decoders provide these. Default is + 1 (on). + + x264-params (N.A.) + Override the x264 configuration using a :-separated list of + key=value parameters. + + This option is functionally the same as the x264opts, but is + duplicated for compatibility with the Libav fork. + + For example to specify libx264 encoding options with ffmpeg: + + ffmpeg -i INPUT -c:v libx264 -x264-params level=30:bframes=0:weightp=0:\ + cabac=0:ref=1:vbv-maxrate=768:vbv-bufsize=2000:analyse=all:me=umh:\ + no-fast-pskip=1:subq=6:8x8dct=0:trellis=0 OUTPUT + + Encoding ffpresets for common usages are provided so they can be used + with the general presets system (e.g. passing the pre option). + + libx265 + x265 H.265/HEVC encoder wrapper. + + This encoder requires the presence of the libx265 headers and library + during configuration. You need to explicitly configure the build with + --enable-libx265. + + Options + + preset + Set the x265 preset. + + tune + Set the x265 tune parameter. + + profile + Set profile restrictions. + + crf Set the quality for constant quality mode. + + forced-idr + Normally, when forcing a I-frame type, the encoder can select any + type of I-frame. This option forces it to choose an IDR-frame. + + x265-params + Set x265 options using a list of key=value couples separated by + ":". See x265 --help for a list of options. + + For example to specify libx265 encoding options with -x265-params: + + ffmpeg -i input -c:v libx265 -x265-params crf=26:psy-rd=1 output.mp4 + + libxavs2 + xavs2 AVS2-P2/IEEE1857.4 encoder wrapper. + + This encoder requires the presence of the libxavs2 headers and library + during configuration. You need to explicitly configure the build with + --enable-libxavs2. + + The following standard libavcodec options are used: + + o b / bit_rate + + o g / gop_size + + o bf / max_b_frames + + The encoder also has its own specific options: + + Options + + lcu_row_threads + Set the number of parallel threads for rows from 1 to 8 (default + 5). + + initial_qp + Set the xavs2 quantization parameter from 1 to 63 (default 34). + This is used to set the initial qp for the first frame. + + qp Set the xavs2 quantization parameter from 1 to 63 (default 34). + This is used to set the qp value under constant-QP mode. + + max_qp + Set the max qp for rate control from 1 to 63 (default 55). + + min_qp + Set the min qp for rate control from 1 to 63 (default 20). + + speed_level + Set the Speed level from 0 to 9 (default 0). Higher is better but + slower. + + log_level + Set the log level from -1 to 3 (default 0). -1: none, 0: error, 1: + warning, 2: info, 3: debug. + + xavs2-params + Set xavs2 options using a list of key=value couples separated by + ":". + + For example to specify libxavs2 encoding options with + -xavs2-params: + + ffmpeg -i input -c:v libxavs2 -xavs2-params RdoqLevel=0 output.avs2 + + libxvid + Xvid MPEG-4 Part 2 encoder wrapper. + + This encoder requires the presence of the libxvidcore headers and + library during configuration. You need to explicitly configure the + build with "--enable-libxvid --enable-gpl". + + The native "mpeg4" encoder supports the MPEG-4 Part 2 format, so users + can encode to this format without this library. + + Options + + The following options are supported by the libxvid wrapper. Some of the + following options are listed but are not documented, and correspond to + shared codec options. See the Codec Options chapter for their + documentation. The other shared options which are not listed have no + effect for the libxvid encoder. + + b + g + qmin + qmax + mpeg_quant + threads + bf + b_qfactor + b_qoffset + flags + Set specific encoding flags. Possible values: + + mv4 Use four motion vector by macroblock. + + aic Enable high quality AC prediction. + + gray + Only encode grayscale. + + gmc Enable the use of global motion compensation (GMC). + + qpel + Enable quarter-pixel motion compensation. + + cgop + Enable closed GOP. + + global_header + Place global headers in extradata instead of every keyframe. + + trellis + me_method + Set motion estimation method. Possible values in decreasing order + of speed and increasing order of quality: + + zero + Use no motion estimation (default). + + phods + x1 + log Enable advanced diamond zonal search for 16x16 blocks and half- + pixel refinement for 16x16 blocks. x1 and log are aliases for + phods. + + epzs + Enable all of the things described above, plus advanced diamond + zonal search for 8x8 blocks, half-pixel refinement for 8x8 + blocks, and motion estimation on chroma planes. + + full + Enable all of the things described above, plus extended 16x16 + and 8x8 blocks search. + + mbd Set macroblock decision algorithm. Possible values in the + increasing order of quality: + + simple + Use macroblock comparing function algorithm (default). + + bits + Enable rate distortion-based half pixel and quarter pixel + refinement for 16x16 blocks. + + rd Enable all of the things described above, plus rate distortion- + based half pixel and quarter pixel refinement for 8x8 blocks, + and rate distortion-based search using square pattern. + + lumi_aq + Enable lumi masking adaptive quantization when set to 1. Default is + 0 (disabled). + + variance_aq + Enable variance adaptive quantization when set to 1. Default is 0 + (disabled). + + When combined with lumi_aq, the resulting quality will not be + better than any of the two specified individually. In other words, + the resulting quality will be the worse one of the two effects. + + ssim + Set structural similarity (SSIM) displaying method. Possible + values: + + off Disable displaying of SSIM information. + + avg Output average SSIM at the end of encoding to stdout. The + format of showing the average SSIM is: + + Average SSIM: %f + + For users who are not familiar with C, %f means a float number, + or a decimal (e.g. 0.939232). + + frame + Output both per-frame SSIM data during encoding and average + SSIM at the end of encoding to stdout. The format of per-frame + information is: + + SSIM: avg: %1.3f min: %1.3f max: %1.3f + + For users who are not familiar with C, %1.3f means a float + number rounded to 3 digits after the dot (e.g. 0.932). + + ssim_acc + Set SSIM accuracy. Valid options are integers within the range of + 0-4, while 0 gives the most accurate result and 4 computes the + fastest. + + mpeg2 + MPEG-2 video encoder. + + Options + + seq_disp_ext integer + Specifies if the encoder should write a sequence_display_extension + to the output. + + -1 + auto + Decide automatically to write it or not (this is the default) + by checking if the data to be written is different from the + default or unspecified values. + + 0 + never + Never write it. + + 1 + always + Always write it. + + video_format integer + Specifies the video_format written into the sequence display + extension indicating the source of the video pictures. The default + is unspecified, can be component, pal, ntsc, secam or mac. For + maximum compatibility, use component. + + a53cc boolean + Import closed captions (which must be ATSC compatible format) into + output. Default is 1 (on). + + png + PNG image encoder. + + Private options + + dpi integer + Set physical density of pixels, in dots per inch, unset by default + + dpm integer + Set physical density of pixels, in dots per meter, unset by default + + ProRes + Apple ProRes encoder. + + FFmpeg contains 2 ProRes encoders, the prores-aw and prores-ks encoder. + The used encoder can be chosen with the "-vcodec" option. + + Private Options for prores-ks + + profile integer + Select the ProRes profile to encode + + proxy + lt + standard + hq + 4444 + 4444xq + quant_mat integer + Select quantization matrix. + + auto + default + proxy + lt + standard + hq + + If set to auto, the matrix matching the profile will be picked. If + not set, the matrix providing the highest quality, default, will be + picked. + + bits_per_mb integer + How many bits to allot for coding one macroblock. Different + profiles use between 200 and 2400 bits per macroblock, the maximum + is 8000. + + mbs_per_slice integer + Number of macroblocks in each slice (1-8); the default value (8) + should be good in almost all situations. + + vendor string + Override the 4-byte vendor ID. A custom vendor ID like apl0 would + claim the stream was produced by the Apple encoder. + + alpha_bits integer + Specify number of bits for alpha component. Possible values are 0, + 8 and 16. Use 0 to disable alpha plane coding. + + Speed considerations + + In the default mode of operation the encoder has to honor frame + constraints (i.e. not produce frames with size bigger than requested) + while still making output picture as good as possible. A frame + containing a lot of small details is harder to compress and the encoder + would spend more time searching for appropriate quantizers for each + slice. + + Setting a higher bits_per_mb limit will improve the speed. + + For the fastest encoding speed set the qscale parameter (4 is the + recommended value) and do not set a size constraint. + + QSV encoders + The family of Intel QuickSync Video encoders (MPEG-2, H.264 and HEVC) + + The ratecontrol method is selected as follows: + + o When global_quality is specified, a quality-based mode is used. + Specifically this means either + + - CQP - constant quantizer scale, when the qscale codec flag is + also set (the -qscale ffmpeg option). + + - LA_ICQ - intelligent constant quality with lookahead, when the + look_ahead option is also set. + + - ICQ -- intelligent constant quality otherwise. + + o Otherwise, a bitrate-based mode is used. For all of those, you + should specify at least the desired average bitrate with the b + option. + + - LA - VBR with lookahead, when the look_ahead option is + specified. + + - VCM - video conferencing mode, when the vcm option is set. + + - CBR - constant bitrate, when maxrate is specified and equal to + the average bitrate. + + - VBR - variable bitrate, when maxrate is specified, but is + higher than the average bitrate. + + - AVBR - average VBR mode, when maxrate is not specified. This + mode is further configured by the avbr_accuracy and + avbr_convergence options. + + Note that depending on your system, a different mode than the one you + specified may be selected by the encoder. Set the verbosity level to + verbose or higher to see the actual settings used by the QSV runtime. + + Additional libavcodec global options are mapped to MSDK options as + follows: + + o g/gop_size -> GopPicSize + + o bf/max_b_frames+1 -> GopRefDist + + o rc_init_occupancy/rc_initial_buffer_occupancy -> InitialDelayInKB + + o slices -> NumSlice + + o refs -> NumRefFrame + + o b_strategy/b_frame_strategy -> BRefType + + o cgop/CLOSED_GOP codec flag -> GopOptFlag + + o For the CQP mode, the i_qfactor/i_qoffset and b_qfactor/b_qoffset + set the difference between QPP and QPI, and QPP and QPB + respectively. + + o Setting the coder option to the value vlc will make the H.264 + encoder use CAVLC instead of CABAC. + + snow + Options + + iterative_dia_size + dia size for the iterative motion estimation + + VAAPI encoders + Wrappers for hardware encoders accessible via VAAPI. + + These encoders only accept input in VAAPI hardware surfaces. If you + have input in software frames, use the hwupload filter to upload them + to the GPU. + + The following standard libavcodec options are used: + + o g / gop_size + + o bf / max_b_frames + + o profile + + If not set, this will be determined automatically from the format + of the input frames and the profiles supported by the driver. + + o level + + o b / bit_rate + + o maxrate / rc_max_rate + + o bufsize / rc_buffer_size + + o rc_init_occupancy / rc_initial_buffer_occupancy + + o compression_level + + Speed / quality tradeoff: higher values are faster / worse quality. + + o q / global_quality + + Size / quality tradeoff: higher values are smaller / worse quality. + + o qmin + + o qmax + + o i_qfactor / i_quant_factor + + o i_qoffset / i_quant_offset + + o b_qfactor / b_quant_factor + + o b_qoffset / b_quant_offset + + o slices + + All encoders support the following options: + + low_power + Some drivers/platforms offer a second encoder for some codecs + intended to use less power than the default encoder; setting this + option will attempt to use that encoder. Note that it may support + a reduced feature set, so some other options may not be available + in this mode. + + idr_interval + Set the number of normal intra frames between full-refresh (IDR) + frames in open-GOP mode. The intra frames are still IRAPs, but + will not include global headers and may have non-decodable leading + pictures. + + b_depth + Set the B-frame reference depth. When set to one (the default), + all B-frames will refer only to P- or I-frames. When set to + greater values multiple layers of B-frames will be present, frames + in each layer only referring to frames in higher layers. + + rc_mode + Set the rate control mode to use. A given driver may only support + a subset of modes. + + Possible modes: + + auto + Choose the mode automatically based on driver support and the + other options. This is the default. + + CQP Constant-quality. + + CBR Constant-bitrate. + + VBR Variable-bitrate. + + ICQ Intelligent constant-quality. + + QVBR + Quality-defined variable-bitrate. + + AVBR + Average variable bitrate. + + Each encoder also has its own specific options: + + h264_vaapi + profile sets the value of profile_idc and the + constraint_set*_flags. level sets the value of level_idc. + + coder + Set entropy encoder (default is cabac). Possible values: + + ac + cabac + Use CABAC. + + vlc + cavlc + Use CAVLC. + + aud Include access unit delimiters in the stream (not included by + default). + + sei Set SEI message types to include. Some combination of the + following values: + + identifier + Include a user_data_unregistered message containing + information about the encoder. + + timing + Include picture timing parameters (buffering_period and + pic_timing messages). + + recovery_point + Include recovery points where appropriate (recovery_point + messages). + + hevc_vaapi + profile and level set the values of general_profile_idc and + general_level_idc respectively. + + aud Include access unit delimiters in the stream (not included by + default). + + tier + Set general_tier_flag. This may affect the level chosen for + the stream if it is not explicitly specified. + + sei Set SEI message types to include. Some combination of the + following values: + + hdr Include HDR metadata if the input frames have it + (mastering_display_colour_volume and content_light_level + messages). + + mjpeg_vaapi + Only baseline DCT encoding is supported. The encoder always uses + the standard quantisation and huffman tables - global_quality + scales the standard quantisation table (range 1-100). + + For YUV, 4:2:0, 4:2:2 and 4:4:4 subsampling modes are supported. + RGB is also supported, and will create an RGB JPEG. + + jfif + Include JFIF header in each frame (not included by default). + + huffman + Include standard huffman tables (on by default). Turning this + off will save a few hundred bytes in each output frame, but may + lose compatibility with some JPEG decoders which don't fully + handle MJPEG. + + mpeg2_vaapi + profile and level set the value of profile_and_level_indication. + + vp8_vaapi + B-frames are not supported. + + global_quality sets the q_idx used for non-key frames (range + 0-127). + + loop_filter_level + loop_filter_sharpness + Manually set the loop filter parameters. + + vp9_vaapi + global_quality sets the q_idx used for P-frames (range 0-255). + + loop_filter_level + loop_filter_sharpness + Manually set the loop filter parameters. + + B-frames are supported, but the output stream is always in encode + order rather than display order. If B-frames are enabled, it may + be necessary to use the vp9_raw_reorder bitstream filter to modify + the output stream to display frames in the correct order. + + Only normal frames are produced - the vp9_superframe bitstream + filter may be required to produce a stream usable with all + decoders. + + vc2 + SMPTE VC-2 (previously BBC Dirac Pro). This codec was primarily aimed + at professional broadcasting but since it supports yuv420, yuv422 and + yuv444 at 8 (limited range or full range), 10 or 12 bits, this makes it + suitable for other tasks which require low overhead and low compression + (like screen recording). + + Options + + b Sets target video bitrate. Usually that's around 1:6 of the + uncompressed video bitrate (e.g. for 1920x1080 50fps yuv422p10 + that's around 400Mbps). Higher values (close to the uncompressed + bitrate) turn on lossless compression mode. + + field_order + Enables field coding when set (e.g. to tt - top field first) for + interlaced inputs. Should increase compression with interlaced + content as it splits the fields and encodes each separately. + + wavelet_depth + Sets the total amount of wavelet transforms to apply, between 1 and + 5 (default). Lower values reduce compression and quality. Less + capable decoders may not be able to handle values of wavelet_depth + over 3. + + wavelet_type + Sets the transform type. Currently only 5_3 (LeGall) and 9_7 + (Deslauriers-Dubuc) are implemented, with 9_7 being the one with + better compression and thus is the default. + + slice_width + slice_height + Sets the slice size for each slice. Larger values result in better + compression. For compatibility with other more limited decoders + use slice_width of 32 and slice_height of 8. + + tolerance + Sets the undershoot tolerance of the rate control system in + percent. This is to prevent an expensive search from being run. + + qm Sets the quantization matrix preset to use by default or when + wavelet_depth is set to 5 + + - default Uses the default quantization matrix from the + specifications, extended with values for the fifth level. This + provides a good balance between keeping detail and omitting + artifacts. + + - flat Use a completely zeroed out quantization matrix. This + increases PSNR but might reduce perception. Use in bogus + benchmarks. + + - color Reduces detail but attempts to preserve color at + extremely low bitrates. + +SUBTITLES ENCODERS + dvdsub + This codec encodes the bitmap subtitle format that is used in DVDs. + Typically they are stored in VOBSUB file pairs (*.idx + *.sub), and + they can also be used in Matroska files. + + Options + + even_rows_fix + When set to 1, enable a work-around that makes the number of pixel + rows even in all subtitles. This fixes a problem with some players + that cut off the bottom row if the number is odd. The work-around + just adds a fully transparent row if needed. The overhead is low, + typically one byte per subtitle on average. + + By default, this work-around is disabled. + +BITSTREAM FILTERS + When you configure your FFmpeg build, all the supported bitstream + filters are enabled by default. You can list all available ones using + the configure option "--list-bsfs". + + You can disable all the bitstream filters using the configure option + "--disable-bsfs", and selectively enable any bitstream filter using the + option "--enable-bsf=BSF", or you can disable a particular bitstream + filter using the option "--disable-bsf=BSF". + + The option "-bsfs" of the ff* tools will display the list of all the + supported bitstream filters included in your build. + + The ff* tools have a -bsf option applied per stream, taking a comma- + separated list of filters, whose parameters follow the filter name + after a '='. + + ffmpeg -i INPUT -c:v copy -bsf:v filter1[=opt1=str1:opt2=str2][,filter2] OUTPUT + + Below is a description of the currently available bitstream filters, + with their parameters, if any. + + aac_adtstoasc + Convert MPEG-2/4 AAC ADTS to an MPEG-4 Audio Specific Configuration + bitstream. + + This filter creates an MPEG-4 AudioSpecificConfig from an MPEG-2/4 ADTS + header and removes the ADTS header. + + This filter is required for example when copying an AAC stream from a + raw ADTS AAC or an MPEG-TS container to MP4A-LATM, to an FLV file, or + to MOV/MP4 files and related formats such as 3GP or M4A. Please note + that it is auto-inserted for MP4A-LATM and MOV/MP4 and related formats. + + av1_metadata + Modify metadata embedded in an AV1 stream. + + td Insert or remove temporal delimiter OBUs in all temporal units of + the stream. + + insert + Insert a TD at the beginning of every TU which does not already + have one. + + remove + Remove the TD from the beginning of every TU which has one. + + color_primaries + transfer_characteristics + matrix_coefficients + Set the color description fields in the stream (see AV1 section + 6.4.2). + + color_range + Set the color range in the stream (see AV1 section 6.4.2; note that + this cannot be set for streams using BT.709 primaries, sRGB + transfer characteristic and identity (RGB) matrix coefficients). + + tv Limited range. + + pc Full range. + + chroma_sample_position + Set the chroma sample location in the stream (see AV1 section + 6.4.2). This can only be set for 4:2:0 streams. + + vertical + Left position (matching the default in MPEG-2 and H.264). + + colocated + Top-left position. + + tick_rate + Set the tick rate (num_units_in_display_tick / time_scale) in the + timing info in the sequence header. + + num_ticks_per_picture + Set the number of ticks in each picture, to indicate that the + stream has a fixed framerate. Ignored if tick_rate is not also + set. + + delete_padding + Deletes Padding OBUs. + + chomp + Remove zero padding at the end of a packet. + + dca_core + Extract the core from a DCA/DTS stream, dropping extensions such as + DTS-HD. + + dump_extra + Add extradata to the beginning of the filtered packets except when said + packets already exactly begin with the extradata that is intended to be + added. + + freq + The additional argument specifies which packets should be filtered. + It accepts the values: + + k + keyframe + add extradata to all key packets + + e + all add extradata to all packets + + If not specified it is assumed k. + + For example the following ffmpeg command forces a global header (thus + disabling individual packet headers) in the H.264 packets generated by + the "libx264" encoder, but corrects them by adding the header stored in + extradata to the key packets: + + ffmpeg -i INPUT -map 0 -flags:v +global_header -c:v libx264 -bsf:v dump_extra out.ts + + eac3_core + Extract the core from a E-AC-3 stream, dropping extra channels. + + extract_extradata + Extract the in-band extradata. + + Certain codecs allow the long-term headers (e.g. MPEG-2 sequence + headers, or H.264/HEVC (VPS/)SPS/PPS) to be transmitted either "in- + band" (i.e. as a part of the bitstream containing the coded frames) or + "out of band" (e.g. on the container level). This latter form is called + "extradata" in FFmpeg terminology. + + This bitstream filter detects the in-band headers and makes them + available as extradata. + + remove + When this option is enabled, the long-term headers are removed from + the bitstream after extraction. + + filter_units + Remove units with types in or not in a given set from the stream. + + pass_types + List of unit types or ranges of unit types to pass through while + removing all others. This is specified as a '|'-separated list of + unit type values or ranges of values with '-'. + + remove_types + Identical to pass_types, except the units in the given set removed + and all others passed through. + + Extradata is unchanged by this transformation, but note that if the + stream contains inline parameter sets then the output may be unusable + if they are removed. + + For example, to remove all non-VCL NAL units from an H.264 stream: + + ffmpeg -i INPUT -c:v copy -bsf:v 'filter_units=pass_types=1-5' OUTPUT + + To remove all AUDs, SEI and filler from an H.265 stream: + + ffmpeg -i INPUT -c:v copy -bsf:v 'filter_units=remove_types=35|38-40' OUTPUT + + hapqa_extract + Extract Rgb or Alpha part of an HAPQA file, without recompression, in + order to create an HAPQ or an HAPAlphaOnly file. + + texture + Specifies the texture to keep. + + color + alpha + + Convert HAPQA to HAPQ + + ffmpeg -i hapqa_inputfile.mov -c copy -bsf:v hapqa_extract=texture=color -tag:v HapY -metadata:s:v:0 encoder="HAPQ" hapq_file.mov + + Convert HAPQA to HAPAlphaOnly + + ffmpeg -i hapqa_inputfile.mov -c copy -bsf:v hapqa_extract=texture=alpha -tag:v HapA -metadata:s:v:0 encoder="HAPAlpha Only" hapalphaonly_file.mov + + h264_metadata + Modify metadata embedded in an H.264 stream. + + aud Insert or remove AUD NAL units in all access units of the stream. + + insert + remove + sample_aspect_ratio + Set the sample aspect ratio of the stream in the VUI parameters. + + video_format + video_full_range_flag + Set the video format in the stream (see H.264 section E.2.1 and + table E-2). + + colour_primaries + transfer_characteristics + matrix_coefficients + Set the colour description in the stream (see H.264 section E.2.1 + and tables E-3, E-4 and E-5). + + chroma_sample_loc_type + Set the chroma sample location in the stream (see H.264 section + E.2.1 and figure E-1). + + tick_rate + Set the tick rate (num_units_in_tick / time_scale) in the VUI + parameters. This is the smallest time unit representable in the + stream, and in many cases represents the field rate of the stream + (double the frame rate). + + fixed_frame_rate_flag + Set whether the stream has fixed framerate - typically this + indicates that the framerate is exactly half the tick rate, but the + exact meaning is dependent on interlacing and the picture structure + (see H.264 section E.2.1 and table E-6). + + crop_left + crop_right + crop_top + crop_bottom + Set the frame cropping offsets in the SPS. These values will + replace the current ones if the stream is already cropped. + + These fields are set in pixels. Note that some sizes may not be + representable if the chroma is subsampled or the stream is + interlaced (see H.264 section 7.4.2.1.1). + + sei_user_data + Insert a string as SEI unregistered user data. The argument must + be of the form UUID+string, where the UUID is as hex digits + possibly separated by hyphens, and the string can be anything. + + For example, 086f3693-b7b3-4f2c-9653-21492feee5b8+hello will insert + the string ``hello'' associated with the given UUID. + + delete_filler + Deletes both filler NAL units and filler SEI messages. + + level + Set the level in the SPS. Refer to H.264 section A.3 and tables + A-1 to A-5. + + The argument must be the name of a level (for example, 4.2), a + level_idc value (for example, 42), or the special name auto + indicating that the filter should attempt to guess the level from + the input stream properties. + + h264_mp4toannexb + Convert an H.264 bitstream from length prefixed mode to start code + prefixed mode (as defined in the Annex B of the ITU-T H.264 + specification). + + This is required by some streaming formats, typically the MPEG-2 + transport stream format (muxer "mpegts"). + + For example to remux an MP4 file containing an H.264 stream to mpegts + format with ffmpeg, you can use the command: + + ffmpeg -i INPUT.mp4 -codec copy -bsf:v h264_mp4toannexb OUTPUT.ts + + Please note that this filter is auto-inserted for MPEG-TS (muxer + "mpegts") and raw H.264 (muxer "h264") output formats. + + h264_redundant_pps + This applies a specific fixup to some Blu-ray streams which contain + redundant PPSs modifying irrelevant parameters of the stream which + confuse other transformations which require correct extradata. + + A new single global PPS is created, and all of the redundant PPSs + within the stream are removed. + + hevc_metadata + Modify metadata embedded in an HEVC stream. + + aud Insert or remove AUD NAL units in all access units of the stream. + + insert + remove + sample_aspect_ratio + Set the sample aspect ratio in the stream in the VUI parameters. + + video_format + video_full_range_flag + Set the video format in the stream (see H.265 section E.3.1 and + table E.2). + + colour_primaries + transfer_characteristics + matrix_coefficients + Set the colour description in the stream (see H.265 section E.3.1 + and tables E.3, E.4 and E.5). + + chroma_sample_loc_type + Set the chroma sample location in the stream (see H.265 section + E.3.1 and figure E.1). + + tick_rate + Set the tick rate in the VPS and VUI parameters (num_units_in_tick + / time_scale). Combined with num_ticks_poc_diff_one, this can set + a constant framerate in the stream. Note that it is likely to be + overridden by container parameters when the stream is in a + container. + + num_ticks_poc_diff_one + Set poc_proportional_to_timing_flag in VPS and VUI and use this + value to set num_ticks_poc_diff_one_minus1 (see H.265 sections + 7.4.3.1 and E.3.1). Ignored if tick_rate is not also set. + + crop_left + crop_right + crop_top + crop_bottom + Set the conformance window cropping offsets in the SPS. These + values will replace the current ones if the stream is already + cropped. + + These fields are set in pixels. Note that some sizes may not be + representable if the chroma is subsampled (H.265 section + 7.4.3.2.1). + + level + Set the level in the VPS and SPS. See H.265 section A.4 and tables + A.6 and A.7. + + The argument must be the name of a level (for example, 5.1), a + general_level_idc value (for example, 153 for level 5.1), or the + special name auto indicating that the filter should attempt to + guess the level from the input stream properties. + + hevc_mp4toannexb + Convert an HEVC/H.265 bitstream from length prefixed mode to start code + prefixed mode (as defined in the Annex B of the ITU-T H.265 + specification). + + This is required by some streaming formats, typically the MPEG-2 + transport stream format (muxer "mpegts"). + + For example to remux an MP4 file containing an HEVC stream to mpegts + format with ffmpeg, you can use the command: + + ffmpeg -i INPUT.mp4 -codec copy -bsf:v hevc_mp4toannexb OUTPUT.ts + + Please note that this filter is auto-inserted for MPEG-TS (muxer + "mpegts") and raw HEVC/H.265 (muxer "h265" or "hevc") output formats. + + imxdump + Modifies the bitstream to fit in MOV and to be usable by the Final Cut + Pro decoder. This filter only applies to the mpeg2video codec, and is + likely not needed for Final Cut Pro 7 and newer with the appropriate + -tag:v. + + For example, to remux 30 MB/sec NTSC IMX to MOV: + + ffmpeg -i input.mxf -c copy -bsf:v imxdump -tag:v mx3n output.mov + + mjpeg2jpeg + Convert MJPEG/AVI1 packets to full JPEG/JFIF packets. + + MJPEG is a video codec wherein each video frame is essentially a JPEG + image. The individual frames can be extracted without loss, e.g. by + + ffmpeg -i ../some_mjpeg.avi -c:v copy frames_%d.jpg + + Unfortunately, these chunks are incomplete JPEG images, because they + lack the DHT segment required for decoding. Quoting from + : + + Avery Lee, writing in the rec.video.desktop newsgroup in 2001, + commented that "MJPEG, or at least the MJPEG in AVIs having the MJPG + fourcc, is restricted JPEG with a fixed -- and *omitted* -- Huffman + table. The JPEG must be YCbCr colorspace, it must be 4:2:2, and it must + use basic Huffman encoding, not arithmetic or progressive. . . . You + can indeed extract the MJPEG frames and decode them with a regular JPEG + decoder, but you have to prepend the DHT segment to them, or else the + decoder won't have any idea how to decompress the data. The exact table + necessary is given in the OpenDML spec." + + This bitstream filter patches the header of frames extracted from an + MJPEG stream (carrying the AVI1 header ID and lacking a DHT segment) to + produce fully qualified JPEG images. + + ffmpeg -i mjpeg-movie.avi -c:v copy -bsf:v mjpeg2jpeg frame_%d.jpg + exiftran -i -9 frame*.jpg + ffmpeg -i frame_%d.jpg -c:v copy rotated.avi + + mjpegadump + Add an MJPEG A header to the bitstream, to enable decoding by + Quicktime. + + mov2textsub + Extract a representable text file from MOV subtitles, stripping the + metadata header from each subtitle packet. + + See also the text2movsub filter. + + mp3decomp + Decompress non-standard compressed MP3 audio headers. + + mpeg2_metadata + Modify metadata embedded in an MPEG-2 stream. + + display_aspect_ratio + Set the display aspect ratio in the stream. + + The following fixed values are supported: + + 4/3 + 16/9 + 221/100 + + Any other value will result in square pixels being signalled + instead (see H.262 section 6.3.3 and table 6-3). + + frame_rate + Set the frame rate in the stream. This is constructed from a table + of known values combined with a small multiplier and divisor - if + the supplied value is not exactly representable, the nearest + representable value will be used instead (see H.262 section 6.3.3 + and table 6-4). + + video_format + Set the video format in the stream (see H.262 section 6.3.6 and + table 6-6). + + colour_primaries + transfer_characteristics + matrix_coefficients + Set the colour description in the stream (see H.262 section 6.3.6 + and tables 6-7, 6-8 and 6-9). + + mpeg4_unpack_bframes + Unpack DivX-style packed B-frames. + + DivX-style packed B-frames are not valid MPEG-4 and were only a + workaround for the broken Video for Windows subsystem. They use more + space, can cause minor AV sync issues, require more CPU power to decode + (unless the player has some decoded picture queue to compensate the + 2,0,2,0 frame per packet style) and cause trouble if copied into a + standard container like mp4 or mpeg-ps/ts, because MPEG-4 decoders may + not be able to decode them, since they are not valid MPEG-4. + + For example to fix an AVI file containing an MPEG-4 stream with DivX- + style packed B-frames using ffmpeg, you can use the command: + + ffmpeg -i INPUT.avi -codec copy -bsf:v mpeg4_unpack_bframes OUTPUT.avi + + noise + Damages the contents of packets or simply drops them without damaging + the container. Can be used for fuzzing or testing error + resilience/concealment. + + Parameters: + + amount + A numeral string, whose value is related to how often output bytes + will be modified. Therefore, values below or equal to 0 are + forbidden, and the lower the more frequent bytes will be modified, + with 1 meaning every byte is modified. + + dropamount + A numeral string, whose value is related to how often packets will + be dropped. Therefore, values below or equal to 0 are forbidden, + and the lower the more frequent packets will be dropped, with 1 + meaning every packet is dropped. + + The following example applies the modification to every byte but does + not drop any packets. + + ffmpeg -i INPUT -c copy -bsf noise[=1] output.mkv + + null + This bitstream filter passes the packets through unchanged. + + prores_metadata + Modify color property metadata embedded in prores stream. + + color_primaries + Set the color primaries. Available values are: + + auto + Keep the same color primaries property (default). + + unknown + bt709 + bt470bg + BT601 625 + + smpte170m + BT601 525 + + bt2020 + smpte431 + DCI P3 + + smpte432 + P3 D65 + + transfer_characteristics + Set the color transfer. Available values are: + + auto + Keep the same transfer characteristics property (default). + + unknown + bt709 + BT 601, BT 709, BT 2020 + + matrix_coefficients + Set the matrix coefficient. Available values are: + + auto + Keep the same transfer characteristics property (default). + + unknown + bt709 + smpte170m + BT 601 + + bt2020nc + + Set Rec709 colorspace for each frame of the file + + ffmpeg -i INPUT -c copy -bsf:v prores_metadata=color_primaries=bt709:color_trc=bt709:colorspace=bt709 output.mov + + remove_extra + Remove extradata from packets. + + It accepts the following parameter: + + freq + Set which frame types to remove extradata from. + + k Remove extradata from non-keyframes only. + + keyframe + Remove extradata from keyframes only. + + e, all + Remove extradata from all frames. + + text2movsub + Convert text subtitles to MOV subtitles (as used by the "mov_text" + codec) with metadata headers. + + See also the mov2textsub filter. + + trace_headers + Log trace output containing all syntax elements in the coded stream + headers (everything above the level of individual coded blocks). This + can be useful for debugging low-level stream issues. + + Supports AV1, H.264, H.265, (M)JPEG, MPEG-2 and VP9, but depending on + the build only a subset of these may be available. + + truehd_core + Extract the core from a TrueHD stream, dropping ATMOS data. + + vp9_metadata + Modify metadata embedded in a VP9 stream. + + color_space + Set the color space value in the frame header. + + unknown + bt601 + bt709 + smpte170 + smpte240 + bt2020 + rgb + color_range + Set the color range value in the frame header. Note that this + cannot be set in RGB streams. + + tv + pc + + vp9_superframe + Merge VP9 invisible (alt-ref) frames back into VP9 superframes. This + fixes merging of split/segmented VP9 streams where the alt-ref frame + was split from its visible counterpart. + + vp9_superframe_split + Split VP9 superframes into single frames. + + vp9_raw_reorder + Given a VP9 stream with correct timestamps but possibly out of order, + insert additional show-existing-frame packets to correct the ordering. + +FORMAT OPTIONS + The libavformat library provides some generic global options, which can + be set on all the muxers and demuxers. In addition each muxer or + demuxer may support so-called private options, which are specific for + that component. + + Options may be set by specifying -option value in the FFmpeg tools, or + by setting the value explicitly in the "AVFormatContext" options or + using the libavutil/opt.h API for programmatic use. + + The list of supported options follows: + + avioflags flags (input/output) + Possible values: + + direct + Reduce buffering. + + probesize integer (input) + Set probing size in bytes, i.e. the size of the data to analyze to + get stream information. A higher value will enable detecting more + information in case it is dispersed into the stream, but will + increase latency. Must be an integer not lesser than 32. It is + 5000000 by default. + + packetsize integer (output) + Set packet size. + + fflags flags + Set format flags. Some are implemented for a limited number of + formats. + + Possible values for input files: + + discardcorrupt + Discard corrupted packets. + + fastseek + Enable fast, but inaccurate seeks for some formats. + + genpts + Generate missing PTS if DTS is present. + + igndts + Ignore DTS if PTS is set. Inert when nofillin is set. + + ignidx + Ignore index. + + keepside (deprecated,inert) + nobuffer + Reduce the latency introduced by buffering during initial input + streams analysis. + + nofillin + Do not fill in missing values in packet fields that can be + exactly calculated. + + noparse + Disable AVParsers, this needs "+nofillin" too. + + sortdts + Try to interleave output packets by DTS. At present, available + only for AVIs with an index. + + Possible values for output files: + + autobsf + Automatically apply bitstream filters as required by the output + format. Enabled by default. + + bitexact + Only write platform-, build- and time-independent data. This + ensures that file and data checksums are reproducible and match + between platforms. Its primary use is for regression testing. + + flush_packets + Write out packets immediately. + + latm (deprecated,inert) + shortest + Stop muxing at the end of the shortest stream. It may be + needed to increase max_interleave_delta to avoid flushing the + longer streams before EOF. + + seek2any integer (input) + Allow seeking to non-keyframes on demuxer level when supported if + set to 1. Default is 0. + + analyzeduration integer (input) + Specify how many microseconds are analyzed to probe the input. A + higher value will enable detecting more accurate information, but + will increase latency. It defaults to 5,000,000 microseconds = 5 + seconds. + + cryptokey hexadecimal string (input) + Set decryption key. + + indexmem integer (input) + Set max memory used for timestamp index (per stream). + + rtbufsize integer (input) + Set max memory used for buffering real-time frames. + + fdebug flags (input/output) + Print specific debug info. + + Possible values: + + ts + max_delay integer (input/output) + Set maximum muxing or demuxing delay in microseconds. + + fpsprobesize integer (input) + Set number of frames used to probe fps. + + audio_preload integer (output) + Set microseconds by which audio packets should be interleaved + earlier. + + chunk_duration integer (output) + Set microseconds for each chunk. + + chunk_size integer (output) + Set size in bytes for each chunk. + + err_detect, f_err_detect flags (input) + Set error detection flags. "f_err_detect" is deprecated and should + be used only via the ffmpeg tool. + + Possible values: + + crccheck + Verify embedded CRCs. + + bitstream + Detect bitstream specification deviations. + + buffer + Detect improper bitstream length. + + explode + Abort decoding on minor error detection. + + careful + Consider things that violate the spec and have not been seen in + the wild as errors. + + compliant + Consider all spec non compliancies as errors. + + aggressive + Consider things that a sane encoder should not do as an error. + + max_interleave_delta integer (output) + Set maximum buffering duration for interleaving. The duration is + expressed in microseconds, and defaults to 1000000 (1 second). + + To ensure all the streams are interleaved correctly, libavformat + will wait until it has at least one packet for each stream before + actually writing any packets to the output file. When some streams + are "sparse" (i.e. there are large gaps between successive + packets), this can result in excessive buffering. + + This field specifies the maximum difference between the timestamps + of the first and the last packet in the muxing queue, above which + libavformat will output a packet regardless of whether it has + queued a packet for all the streams. + + If set to 0, libavformat will continue buffering packets until it + has a packet for each stream, regardless of the maximum timestamp + difference between the buffered packets. + + use_wallclock_as_timestamps integer (input) + Use wallclock as timestamps if set to 1. Default is 0. + + avoid_negative_ts integer (output) + Possible values: + + make_non_negative + Shift timestamps to make them non-negative. Also note that + this affects only leading negative timestamps, and not non- + monotonic negative timestamps. + + make_zero + Shift timestamps so that the first timestamp is 0. + + auto (default) + Enables shifting when required by the target format. + + disabled + Disables shifting of timestamp. + + When shifting is enabled, all output timestamps are shifted by the + same amount. Audio, video, and subtitles desynching and relative + timestamp differences are preserved compared to how they would have + been without shifting. + + skip_initial_bytes integer (input) + Set number of bytes to skip before reading header and frames if set + to 1. Default is 0. + + correct_ts_overflow integer (input) + Correct single timestamp overflows if set to 1. Default is 1. + + flush_packets integer (output) + Flush the underlying I/O stream after each packet. Default is -1 + (auto), which means that the underlying protocol will decide, 1 + enables it, and has the effect of reducing the latency, 0 disables + it and may increase IO throughput in some cases. + + output_ts_offset offset (output) + Set the output time offset. + + offset must be a time duration specification, see the Time duration + section in the ffmpeg-utils(1) manual. + + The offset is added by the muxer to the output timestamps. + + Specifying a positive offset means that the corresponding streams + are delayed bt the time duration specified in offset. Default value + is 0 (meaning that no offset is applied). + + format_whitelist list (input) + "," separated list of allowed demuxers. By default all are allowed. + + dump_separator string (input) + Separator used to separate the fields printed on the command line + about the Stream parameters. For example, to separate the fields + with newlines and indentation: + + ffprobe -dump_separator " + " -i ~/videos/matrixbench_mpeg2.mpg + + max_streams integer (input) + Specifies the maximum number of streams. This can be used to reject + files that would require too many resources due to a large number + of streams. + + skip_estimate_duration_from_pts bool (input) + Skip estimation of input duration when calculated using PTS. At + present, applicable for MPEG-PS and MPEG-TS. + + strict, f_strict integer (input/output) + Specify how strictly to follow the standards. "f_strict" is + deprecated and should be used only via the ffmpeg tool. + + Possible values: + + very + strictly conform to an older more strict version of the spec or + reference software + + strict + strictly conform to all the things in the spec no matter what + consequences + + normal + unofficial + allow unofficial extensions + + experimental + allow non standardized experimental things, experimental + (unfinished/work in progress/not well tested) decoders and + encoders. Note: experimental decoders can pose a security + risk, do not use this for decoding untrusted input. + + Format stream specifiers + Format stream specifiers allow selection of one or more streams that + match specific properties. + + The exact semantics of stream specifiers is defined by the + "avformat_match_stream_specifier()" function declared in the + libavformat/avformat.h header and documented in the Stream specifiers + section in the ffmpeg(1) manual. + +DEMUXERS + Demuxers are configured elements in FFmpeg that can read the multimedia + streams from a particular type of file. + + When you configure your FFmpeg build, all the supported demuxers are + enabled by default. You can list all available ones using the configure + option "--list-demuxers". + + You can disable all the demuxers using the configure option + "--disable-demuxers", and selectively enable a single demuxer with the + option "--enable-demuxer=DEMUXER", or disable it with the option + "--disable-demuxer=DEMUXER". + + The option "-demuxers" of the ff* tools will display the list of + enabled demuxers. Use "-formats" to view a combined list of enabled + demuxers and muxers. + + The description of some of the currently available demuxers follows. + + aa + Audible Format 2, 3, and 4 demuxer. + + This demuxer is used to demux Audible Format 2, 3, and 4 (.aa) files. + + apng + Animated Portable Network Graphics demuxer. + + This demuxer is used to demux APNG files. All headers, but the PNG + signature, up to (but not including) the first fcTL chunk are + transmitted as extradata. Frames are then split as being all the + chunks between two fcTL ones, or between the last fcTL and IEND chunks. + + -ignore_loop bool + Ignore the loop variable in the file if set. + + -max_fps int + Maximum framerate in frames per second (0 for no limit). + + -default_fps int + Default framerate in frames per second when none is specified in + the file (0 meaning as fast as possible). + + asf + Advanced Systems Format demuxer. + + This demuxer is used to demux ASF files and MMS network streams. + + -no_resync_search bool + Do not try to resynchronize by looking for a certain optional start + code. + + concat + Virtual concatenation script demuxer. + + This demuxer reads a list of files and other directives from a text + file and demuxes them one after the other, as if all their packets had + been muxed together. + + The timestamps in the files are adjusted so that the first file starts + at 0 and each next file starts where the previous one finishes. Note + that it is done globally and may cause gaps if all streams do not have + exactly the same length. + + All files must have the same streams (same codecs, same time base, + etc.). + + The duration of each file is used to adjust the timestamps of the next + file: if the duration is incorrect (because it was computed using the + bit-rate or because the file is truncated, for example), it can cause + artifacts. The "duration" directive can be used to override the + duration stored in each file. + + Syntax + + The script is a text file in extended-ASCII, with one directive per + line. Empty lines, leading spaces and lines starting with '#' are + ignored. The following directive is recognized: + + "file path" + Path to a file to read; special characters and spaces must be + escaped with backslash or single quotes. + + All subsequent file-related directives apply to that file. + + "ffconcat version 1.0" + Identify the script type and version. It also sets the safe option + to 1 if it was -1. + + To make FFmpeg recognize the format automatically, this directive + must appear exactly as is (no extra space or byte-order-mark) on + the very first line of the script. + + "duration dur" + Duration of the file. This information can be specified from the + file; specifying it here may be more efficient or help if the + information from the file is not available or accurate. + + If the duration is set for all files, then it is possible to seek + in the whole concatenated video. + + "inpoint timestamp" + In point of the file. When the demuxer opens the file it instantly + seeks to the specified timestamp. Seeking is done so that all + streams can be presented successfully at In point. + + This directive works best with intra frame codecs, because for non- + intra frame ones you will usually get extra packets before the + actual In point and the decoded content will most likely contain + frames before In point too. + + For each file, packets before the file In point will have + timestamps less than the calculated start timestamp of the file + (negative in case of the first file), and the duration of the files + (if not specified by the "duration" directive) will be reduced + based on their specified In point. + + Because of potential packets before the specified In point, packet + timestamps may overlap between two concatenated files. + + "outpoint timestamp" + Out point of the file. When the demuxer reaches the specified + decoding timestamp in any of the streams, it handles it as an end + of file condition and skips the current and all the remaining + packets from all streams. + + Out point is exclusive, which means that the demuxer will not + output packets with a decoding timestamp greater or equal to Out + point. + + This directive works best with intra frame codecs and formats where + all streams are tightly interleaved. For non-intra frame codecs you + will usually get additional packets with presentation timestamp + after Out point therefore the decoded content will most likely + contain frames after Out point too. If your streams are not tightly + interleaved you may not get all the packets from all streams before + Out point and you may only will be able to decode the earliest + stream until Out point. + + The duration of the files (if not specified by the "duration" + directive) will be reduced based on their specified Out point. + + "file_packet_metadata key=value" + Metadata of the packets of the file. The specified metadata will be + set for each file packet. You can specify this directive multiple + times to add multiple metadata entries. + + "stream" + Introduce a stream in the virtual file. All subsequent stream- + related directives apply to the last introduced stream. Some + streams properties must be set in order to allow identifying the + matching streams in the subfiles. If no streams are defined in the + script, the streams from the first file are copied. + + "exact_stream_id id" + Set the id of the stream. If this directive is given, the string + with the corresponding id in the subfiles will be used. This is + especially useful for MPEG-PS (VOB) files, where the order of the + streams is not reliable. + + Options + + This demuxer accepts the following option: + + safe + If set to 1, reject unsafe file paths. A file path is considered + safe if it does not contain a protocol specification and is + relative and all components only contain characters from the + portable character set (letters, digits, period, underscore and + hyphen) and have no period at the beginning of a component. + + If set to 0, any file name is accepted. + + The default is 1. + + -1 is equivalent to 1 if the format was automatically probed and 0 + otherwise. + + auto_convert + If set to 1, try to perform automatic conversions on packet data to + make the streams concatenable. The default is 1. + + Currently, the only conversion is adding the h264_mp4toannexb + bitstream filter to H.264 streams in MP4 format. This is necessary + in particular if there are resolution changes. + + segment_time_metadata + If set to 1, every packet will contain the lavf.concat.start_time + and the lavf.concat.duration packet metadata values which are the + start_time and the duration of the respective file segments in the + concatenated output expressed in microseconds. The duration + metadata is only set if it is known based on the concat file. The + default is 0. + + Examples + + o Use absolute filenames and include some comments: + + # my first filename + file /mnt/share/file-1.wav + # my second filename including whitespace + file '/mnt/share/file 2.wav' + # my third filename including whitespace plus single quote + file '/mnt/share/file 3'\''.wav' + + o Allow for input format auto-probing, use safe filenames and set the + duration of the first file: + + ffconcat version 1.0 + + file file-1.wav + duration 20.0 + + file subdir/file-2.wav + + dash + Dynamic Adaptive Streaming over HTTP demuxer. + + This demuxer presents all AVStreams found in the manifest. By setting + the discard flags on AVStreams the caller can decide which streams to + actually receive. Each stream mirrors the "id" and "bandwidth" + properties from the "" as metadata keys named "id" and + "variant_bitrate" respectively. + + flv, live_flv + Adobe Flash Video Format demuxer. + + This demuxer is used to demux FLV files and RTMP network streams. In + case of live network streams, if you force format, you may use live_flv + option instead of flv to survive timestamp discontinuities. + + ffmpeg -f flv -i myfile.flv ... + ffmpeg -f live_flv -i rtmp:///anything/key .... + + -flv_metadata bool + Allocate the streams according to the onMetaData array content. + + -flv_ignore_prevtag bool + Ignore the size of previous tag value. + + -flv_full_metadata bool + Output all context of the onMetadata. + + gif + Animated GIF demuxer. + + It accepts the following options: + + min_delay + Set the minimum valid delay between frames in hundredths of + seconds. Range is 0 to 6000. Default value is 2. + + max_gif_delay + Set the maximum valid delay between frames in hundredth of seconds. + Range is 0 to 65535. Default value is 65535 (nearly eleven + minutes), the maximum value allowed by the specification. + + default_delay + Set the default delay between frames in hundredths of seconds. + Range is 0 to 6000. Default value is 10. + + ignore_loop + GIF files can contain information to loop a certain number of times + (or infinitely). If ignore_loop is set to 1, then the loop setting + from the input will be ignored and looping will not occur. If set + to 0, then looping will occur and will cycle the number of times + according to the GIF. Default value is 1. + + For example, with the overlay filter, place an infinitely looping GIF + over another video: + + ffmpeg -i input.mp4 -ignore_loop 0 -i input.gif -filter_complex overlay=shortest=1 out.mkv + + Note that in the above example the shortest option for overlay filter + is used to end the output video at the length of the shortest input + file, which in this case is input.mp4 as the GIF in this example loops + infinitely. + + hls + HLS demuxer + + Apple HTTP Live Streaming demuxer. + + This demuxer presents all AVStreams from all variant streams. The id + field is set to the bitrate variant index number. By setting the + discard flags on AVStreams (by pressing 'a' or 'v' in ffplay), the + caller can decide which variant streams to actually receive. The total + bitrate of the variant that the stream belongs to is available in a + metadata key named "variant_bitrate". + + It accepts the following options: + + live_start_index + segment index to start live streams at (negative values are from + the end). + + allowed_extensions + ',' separated list of file extensions that hls is allowed to + access. + + max_reload + Maximum number of times a insufficient list is attempted to be + reloaded. Default value is 1000. + + http_persistent + Use persistent HTTP connections. Applicable only for HTTP streams. + Enabled by default. + + http_multiple + Use multiple HTTP connections for downloading HTTP segments. + Enabled by default for HTTP/1.1 servers. + + image2 + Image file demuxer. + + This demuxer reads from a list of image files specified by a pattern. + The syntax and meaning of the pattern is specified by the option + pattern_type. + + The pattern may contain a suffix which is used to automatically + determine the format of the images contained in the files. + + The size, the pixel format, and the format of each image must be the + same for all the files in the sequence. + + This demuxer accepts the following options: + + framerate + Set the frame rate for the video stream. It defaults to 25. + + loop + If set to 1, loop over the input. Default value is 0. + + pattern_type + Select the pattern type used to interpret the provided filename. + + pattern_type accepts one of the following values. + + none + Disable pattern matching, therefore the video will only contain + the specified image. You should use this option if you do not + want to create sequences from multiple images and your + filenames may contain special pattern characters. + + sequence + Select a sequence pattern type, used to specify a sequence of + files indexed by sequential numbers. + + A sequence pattern may contain the string "%d" or "%0Nd", which + specifies the position of the characters representing a + sequential number in each filename matched by the pattern. If + the form "%d0Nd" is used, the string representing the number in + each filename is 0-padded and N is the total number of 0-padded + digits representing the number. The literal character '%' can + be specified in the pattern with the string "%%". + + If the sequence pattern contains "%d" or "%0Nd", the first + filename of the file list specified by the pattern must contain + a number inclusively contained between start_number and + start_number+start_number_range-1, and all the following + numbers must be sequential. + + For example the pattern "img-%03d.bmp" will match a sequence of + filenames of the form img-001.bmp, img-002.bmp, ..., + img-010.bmp, etc.; the pattern "i%%m%%g-%d.jpg" will match a + sequence of filenames of the form i%m%g-1.jpg, i%m%g-2.jpg, + ..., i%m%g-10.jpg, etc. + + Note that the pattern must not necessarily contain "%d" or + "%0Nd", for example to convert a single image file img.jpeg you + can employ the command: + + ffmpeg -i img.jpeg img.png + + glob + Select a glob wildcard pattern type. + + The pattern is interpreted like a "glob()" pattern. This is + only selectable if libavformat was compiled with globbing + support. + + glob_sequence (deprecated, will be removed) + Select a mixed glob wildcard/sequence pattern. + + If your version of libavformat was compiled with globbing + support, and the provided pattern contains at least one glob + meta character among "%*?[]{}" that is preceded by an unescaped + "%", the pattern is interpreted like a "glob()" pattern, + otherwise it is interpreted like a sequence pattern. + + All glob special characters "%*?[]{}" must be prefixed with + "%". To escape a literal "%" you shall use "%%". + + For example the pattern "foo-%*.jpeg" will match all the + filenames prefixed by "foo-" and terminating with ".jpeg", and + "foo-%?%?%?.jpeg" will match all the filenames prefixed with + "foo-", followed by a sequence of three characters, and + terminating with ".jpeg". + + This pattern type is deprecated in favor of glob and sequence. + + Default value is glob_sequence. + + pixel_format + Set the pixel format of the images to read. If not specified the + pixel format is guessed from the first image file in the sequence. + + start_number + Set the index of the file matched by the image file pattern to + start to read from. Default value is 0. + + start_number_range + Set the index interval range to check when looking for the first + image file in the sequence, starting from start_number. Default + value is 5. + + ts_from_file + If set to 1, will set frame timestamp to modification time of image + file. Note that monotonity of timestamps is not provided: images go + in the same order as without this option. Default value is 0. If + set to 2, will set frame timestamp to the modification time of the + image file in nanosecond precision. + + video_size + Set the video size of the images to read. If not specified the + video size is guessed from the first image file in the sequence. + + Examples + + o Use ffmpeg for creating a video from the images in the file + sequence img-001.jpeg, img-002.jpeg, ..., assuming an input frame + rate of 10 frames per second: + + ffmpeg -framerate 10 -i 'img-%03d.jpeg' out.mkv + + o As above, but start by reading from a file with index 100 in the + sequence: + + ffmpeg -framerate 10 -start_number 100 -i 'img-%03d.jpeg' out.mkv + + o Read images matching the "*.png" glob pattern , that is all the + files terminating with the ".png" suffix: + + ffmpeg -framerate 10 -pattern_type glob -i "*.png" out.mkv + + libgme + The Game Music Emu library is a collection of video game music file + emulators. + + See for more + information. + + It accepts the following options: + + track_index + Set the index of which track to demux. The demuxer can only export + one track. Track indexes start at 0. Default is to pick the first + track. Number of tracks is exported as tracks metadata entry. + + sample_rate + Set the sampling rate of the exported track. Range is 1000 to + 999999. Default is 44100. + + max_size (bytes) + The demuxer buffers the entire file into memory. Adjust this value + to set the maximum buffer size, which in turn, acts as a ceiling + for the size of files that can be read. Default is 50 MiB. + + libmodplug + ModPlug based module demuxer + + See + + It will export one 2-channel 16-bit 44.1 kHz audio stream. Optionally, + a "pal8" 16-color video stream can be exported with or without printed + metadata. + + It accepts the following options: + + noise_reduction + Apply a simple low-pass filter. Can be 1 (on) or 0 (off). Default + is 0. + + reverb_depth + Set amount of reverb. Range 0-100. Default is 0. + + reverb_delay + Set delay in ms, clamped to 40-250 ms. Default is 0. + + bass_amount + Apply bass expansion a.k.a. XBass or megabass. Range is 0 (quiet) + to 100 (loud). Default is 0. + + bass_range + Set cutoff i.e. upper-bound for bass frequencies. Range is 10-100 + Hz. Default is 0. + + surround_depth + Apply a Dolby Pro-Logic surround effect. Range is 0 (quiet) to 100 + (heavy). Default is 0. + + surround_delay + Set surround delay in ms, clamped to 5-40 ms. Default is 0. + + max_size + The demuxer buffers the entire file into memory. Adjust this value + to set the maximum buffer size, which in turn, acts as a ceiling + for the size of files that can be read. Range is 0 to 100 MiB. 0 + removes buffer size limit (not recommended). Default is 5 MiB. + + video_stream_expr + String which is evaluated using the eval API to assign colors to + the generated video stream. Variables which can be used are "x", + "y", "w", "h", "t", "speed", "tempo", "order", "pattern" and "row". + + video_stream + Generate video stream. Can be 1 (on) or 0 (off). Default is 0. + + video_stream_w + Set video frame width in 'chars' where one char indicates 8 pixels. + Range is 20-512. Default is 30. + + video_stream_h + Set video frame height in 'chars' where one char indicates 8 + pixels. Range is 20-512. Default is 30. + + video_stream_ptxt + Print metadata on video stream. Includes "speed", "tempo", "order", + "pattern", "row" and "ts" (time in ms). Can be 1 (on) or 0 (off). + Default is 1. + + libopenmpt + libopenmpt based module demuxer + + See for more information. + + Some files have multiple subsongs (tracks) this can be set with the + subsong option. + + It accepts the following options: + + subsong + Set the subsong index. This can be either 'all', 'auto', or the + index of the subsong. Subsong indexes start at 0. The default is + 'auto'. + + The default value is to let libopenmpt choose. + + layout + Set the channel layout. Valid values are 1, 2, and 4 channel + layouts. The default value is STEREO. + + sample_rate + Set the sample rate for libopenmpt to output. Range is from 1000 + to INT_MAX. The value default is 48000. + + mov/mp4/3gp/QuickTime + QuickTime / MP4 demuxer. + + This demuxer accepts the following options: + + enable_drefs + Enable loading of external tracks, disabled by default. Enabling + this can theoretically leak information in some use cases. + + use_absolute_path + Allows loading of external tracks via absolute paths, disabled by + default. Enabling this poses a security risk. It should only be + enabled if the source is known to be non malicious. + + mpegts + MPEG-2 transport stream demuxer. + + This demuxer accepts the following options: + + resync_size + Set size limit for looking up a new synchronization. Default value + is 65536. + + skip_unknown_pmt + Skip PMTs for programs not defined in the PAT. Default value is 0. + + fix_teletext_pts + Override teletext packet PTS and DTS values with the timestamps + calculated from the PCR of the first program which the teletext + stream is part of and is not discarded. Default value is 1, set + this option to 0 if you want your teletext packet PTS and DTS + values untouched. + + ts_packetsize + Output option carrying the raw packet size in bytes. Show the + detected raw packet size, cannot be set by the user. + + scan_all_pmts + Scan and combine all PMTs. The value is an integer with value from + -1 to 1 (-1 means automatic setting, 1 means enabled, 0 means + disabled). Default value is -1. + + merge_pmt_versions + Re-use existing streams when a PMT's version is updated and + elementary streams move to different PIDs. Default value is 0. + + mpjpeg + MJPEG encapsulated in multi-part MIME demuxer. + + This demuxer allows reading of MJPEG, where each frame is represented + as a part of multipart/x-mixed-replace stream. + + strict_mime_boundary + Default implementation applies a relaxed standard to multi-part + MIME boundary detection, to prevent regression with numerous + existing endpoints not generating a proper MIME MJPEG stream. + Turning this option on by setting it to 1 will result in a stricter + check of the boundary value. + + rawvideo + Raw video demuxer. + + This demuxer allows one to read raw video data. Since there is no + header specifying the assumed video parameters, the user must specify + them in order to be able to decode the data correctly. + + This demuxer accepts the following options: + + framerate + Set input video frame rate. Default value is 25. + + pixel_format + Set the input video pixel format. Default value is "yuv420p". + + video_size + Set the input video size. This value must be specified explicitly. + + For example to read a rawvideo file input.raw with ffplay, assuming a + pixel format of "rgb24", a video size of "320x240", and a frame rate of + 10 images per second, use the command: + + ffplay -f rawvideo -pixel_format rgb24 -video_size 320x240 -framerate 10 input.raw + + sbg + SBaGen script demuxer. + + This demuxer reads the script language used by SBaGen + to generate binaural beats sessions. A SBG + script looks like that: + + -SE + a: 300-2.5/3 440+4.5/0 + b: 300-2.5/0 440+4.5/3 + off: - + NOW == a + +0:07:00 == b + +0:14:00 == a + +0:21:00 == b + +0:30:00 off + + A SBG script can mix absolute and relative timestamps. If the script + uses either only absolute timestamps (including the script start time) + or only relative ones, then its layout is fixed, and the conversion is + straightforward. On the other hand, if the script mixes both kind of + timestamps, then the NOW reference for relative timestamps will be + taken from the current time of day at the time the script is read, and + the script layout will be frozen according to that reference. That + means that if the script is directly played, the actual times will + match the absolute timestamps up to the sound controller's clock + accuracy, but if the user somehow pauses the playback or seeks, all + times will be shifted accordingly. + + tedcaptions + JSON captions used for . + + TED does not provide links to the captions, but they can be guessed + from the page. The file tools/bookmarklets.html from the FFmpeg source + tree contains a bookmarklet to expose them. + + This demuxer accepts the following option: + + start_time + Set the start time of the TED talk, in milliseconds. The default is + 15000 (15s). It is used to sync the captions with the downloadable + videos, because they include a 15s intro. + + Example: convert the captions to a format most players understand: + + ffmpeg -i http://www.ted.com/talks/subtitles/id/1/lang/en talk1-en.srt + + vapoursynth + Vapoursynth wrapper. + + Due to security concerns, Vapoursynth scripts will not be autodetected + so the input format has to be forced. For ff* CLI tools, add "-f + vapoursynth" before the input "-i yourscript.vpy". + + This demuxer accepts the following option: + + max_script_size + The demuxer buffers the entire script into memory. Adjust this + value to set the maximum buffer size, which in turn, acts as a + ceiling for the size of scripts that can be read. Default is 1 + MiB. + +MUXERS + Muxers are configured elements in FFmpeg which allow writing multimedia + streams to a particular type of file. + + When you configure your FFmpeg build, all the supported muxers are + enabled by default. You can list all available muxers using the + configure option "--list-muxers". + + You can disable all the muxers with the configure option + "--disable-muxers" and selectively enable / disable single muxers with + the options "--enable-muxer=MUXER" / "--disable-muxer=MUXER". + + The option "-muxers" of the ff* tools will display the list of enabled + muxers. Use "-formats" to view a combined list of enabled demuxers and + muxers. + + A description of some of the currently available muxers follows. + + aiff + Audio Interchange File Format muxer. + + Options + + It accepts the following options: + + write_id3v2 + Enable ID3v2 tags writing when set to 1. Default is 0 (disabled). + + id3v2_version + Select ID3v2 version to write. Currently only version 3 and 4 (aka. + ID3v2.3 and ID3v2.4) are supported. The default is version 4. + + asf + Advanced Systems Format muxer. + + Note that Windows Media Audio (wma) and Windows Media Video (wmv) use + this muxer too. + + Options + + It accepts the following options: + + packet_size + Set the muxer packet size. By tuning this setting you may reduce + data fragmentation or muxer overhead depending on your source. + Default value is 3200, minimum is 100, maximum is 64k. + + avi + Audio Video Interleaved muxer. + + Options + + It accepts the following options: + + reserve_index_space + Reserve the specified amount of bytes for the OpenDML master index + of each stream within the file header. By default additional master + indexes are embedded within the data packets if there is no space + left in the first master index and are linked together as a chain + of indexes. This index structure can cause problems for some use + cases, e.g. third-party software strictly relying on the OpenDML + index specification or when file seeking is slow. Reserving enough + index space in the file header avoids these problems. + + The required index space depends on the output file size and should + be about 16 bytes per gigabyte. When this option is omitted or set + to zero the necessary index space is guessed. + + write_channel_mask + Write the channel layout mask into the audio stream header. + + This option is enabled by default. Disabling the channel mask can + be useful in specific scenarios, e.g. when merging multiple audio + streams into one for compatibility with software that only supports + a single audio stream in AVI (see the "amerge" section in the + ffmpeg-filters manual). + + chromaprint + Chromaprint fingerprinter. + + This muxer feeds audio data to the Chromaprint library, which generates + a fingerprint for the provided audio data. See + + + It takes a single signed native-endian 16-bit raw audio stream of at + most 2 channels. + + Options + + silence_threshold + Threshold for detecting silence, ranges from -1 to 32767. -1 + disables silence detection and is required for use with the + AcoustID service. Default is -1. + + algorithm + Version of algorithm to fingerprint with. Range is 0 to 4. Version + 2 requires that silence detection be enabled. Default is 1. + + fp_format + Format to output the fingerprint as. Accepts the following options: + + raw Binary raw fingerprint + + compressed + Binary compressed fingerprint + + base64 + Base64 compressed fingerprint (default) + + crc + CRC (Cyclic Redundancy Check) testing format. + + This muxer computes and prints the Adler-32 CRC of all the input audio + and video frames. By default audio frames are converted to signed + 16-bit raw audio and video frames to raw video before computing the + CRC. + + The output of the muxer consists of a single line of the form: + CRC=0xCRC, where CRC is a hexadecimal number 0-padded to 8 digits + containing the CRC for all the decoded input frames. + + See also the framecrc muxer. + + Examples + + For example to compute the CRC of the input, and store it in the file + out.crc: + + ffmpeg -i INPUT -f crc out.crc + + You can print the CRC to stdout with the command: + + ffmpeg -i INPUT -f crc - + + You can select the output format of each frame with ffmpeg by + specifying the audio and video codec and format. For example to compute + the CRC of the input audio converted to PCM unsigned 8-bit and the + input video converted to MPEG-2 video, use the command: + + ffmpeg -i INPUT -c:a pcm_u8 -c:v mpeg2video -f crc - + + flv + Adobe Flash Video Format muxer. + + This muxer accepts the following options: + + flvflags flags + Possible values: + + aac_seq_header_detect + Place AAC sequence header based on audio stream data. + + no_sequence_end + Disable sequence end tag. + + no_metadata + Disable metadata tag. + + no_duration_filesize + Disable duration and filesize in metadata when they are equal + to zero at the end of stream. (Be used to non-seekable living + stream). + + add_keyframe_index + Used to facilitate seeking; particularly for HTTP pseudo + streaming. + + dash + Dynamic Adaptive Streaming over HTTP (DASH) muxer that creates segments + and manifest files according to the MPEG-DASH standard ISO/IEC + 23009-1:2014. + + For more information see: + + o ISO DASH Specification: + + + o WebM DASH Specification: + + + It creates a MPD manifest file and segment files for each stream. + + The segment filename might contain pre-defined identifiers used with + SegmentTemplate as defined in section 5.3.9.4.4 of the standard. + Available identifiers are "$RepresentationID$", "$Number$", + "$Bandwidth$" and "$Time$". In addition to the standard identifiers, + an ffmpeg-specific "$ext$" identifier is also supported. When + specified ffmpeg will replace $ext$ in the file name with muxing + format's extensions such as mp4, webm etc., + + ffmpeg -re -i -map 0 -map 0 -c:a libfdk_aac -c:v libx264 \ + -b:v:0 800k -b:v:1 300k -s:v:1 320x170 -profile:v:1 baseline \ + -profile:v:0 main -bf 1 -keyint_min 120 -g 120 -sc_threshold 0 \ + -b_strategy 0 -ar:a:1 22050 -use_timeline 1 -use_template 1 \ + -window_size 5 -adaptation_sets "id=0,streams=v id=1,streams=a" \ + -f dash /path/to/out.mpd + + min_seg_duration microseconds + This is a deprecated option to set the segment length in + microseconds, use seg_duration instead. + + seg_duration duration + Set the segment length in seconds (fractional value can be set). + The value is treated as average segment duration when use_template + is enabled and use_timeline is disabled and as minimum segment + duration for all the other use cases. + + window_size size + Set the maximum number of segments kept in the manifest. + + extra_window_size size + Set the maximum number of segments kept outside of the manifest + before removing from disk. + + remove_at_exit remove + Enable (1) or disable (0) removal of all segments when finished. + + use_template template + Enable (1) or disable (0) use of SegmentTemplate instead of + SegmentList. + + use_timeline timeline + Enable (1) or disable (0) use of SegmentTimeline in + SegmentTemplate. + + single_file single_file + Enable (1) or disable (0) storing all segments in one file, + accessed using byte ranges. + + single_file_name file_name + DASH-templated name to be used for baseURL. Implies single_file set + to "1". In the template, "$ext$" is replaced with the file name + extension specific for the segment format. + + init_seg_name init_name + DASH-templated name to used for the initialization segment. Default + is "init-stream$RepresentationID$.$ext$". "$ext$" is replaced with + the file name extension specific for the segment format. + + media_seg_name segment_name + DASH-templated name to used for the media segments. Default is + "chunk-stream$RepresentationID$-$Number%05d$.$ext$". "$ext$" is + replaced with the file name extension specific for the segment + format. + + utc_timing_url utc_url + URL of the page that will return the UTC timestamp in ISO format. + Example: "https://time.akamai.com/?iso" + + method method + Use the given HTTP method to create output files. Generally set to + PUT or POST. + + http_user_agent user_agent + Override User-Agent field in HTTP header. Applicable only for HTTP + output. + + http_persistent http_persistent + Use persistent HTTP connections. Applicable only for HTTP output. + + hls_playlist hls_playlist + Generate HLS playlist files as well. The master playlist is + generated with the filename master.m3u8. One media playlist file + is generated for each stream with filenames media_0.m3u8, + media_1.m3u8, etc. + + streaming streaming + Enable (1) or disable (0) chunk streaming mode of output. In chunk + streaming mode, each frame will be a moof fragment which forms a + chunk. + + adaptation_sets adaptation_sets + Assign streams to AdaptationSets. Syntax is "id=x,streams=a,b,c + id=y,streams=d,e" with x and y being the IDs of the adaptation sets + and a,b,c,d and e are the indices of the mapped streams. + + To map all video (or audio) streams to an AdaptationSet, "v" (or + "a") can be used as stream identifier instead of IDs. + + When no assignment is defined, this defaults to an AdaptationSet + for each stream. + + timeout timeout + Set timeout for socket I/O operations. Applicable only for HTTP + output. + + index_correction index_correction + Enable (1) or Disable (0) segment index correction logic. + Applicable only when use_template is enabled and use_timeline is + disabled. + + When enabled, the logic monitors the flow of segment indexes. If a + streams's segment index value is not at the expected real time + position, then the logic corrects that index value. + + Typically this logic is needed in live streaming use cases. The + network bandwidth fluctuations are common during long run + streaming. Each fluctuation can cause the segment indexes fall + behind the expected real time position. + + format_options options_list + Set container format (mp4/webm) options using a ":" separated list + of key=value parameters. Values containing ":" special characters + must be escaped. + + global_sidx global_sidx + Write global SIDX atom. Applicable only for single file, mp4 + output, non-streaming mode. + + dash_segment_type dash_segment_type + Possible values: + + auto + If this flag is set, the dash segment files format will be + selected based on the stream codec. This is the default mode. + + mp4 If this flag is set, the dash segment files will be in in + ISOBMFF format. + + webm + If this flag is set, the dash segment files will be in in WebM + format. + + ignore_io_errors ignore_io_errors + Ignore IO errors during open and write. Useful for long-duration + runs with network output. + + lhls lhls + Enable Low-latency HLS(LHLS). Adds #EXT-X-PREFETCH tag with current + segment's URI. Apple doesn't have an official spec for LHLS. + Meanwhile hls.js player folks are trying to standardize a open LHLS + spec. The draft spec is available in + https://github.com/video-dev/hlsjs-rfcs/blob/lhls-spec/proposals/0001-lhls.md + This option will also try to comply with the above open spec, till + Apple's spec officially supports it. Applicable only when + streaming and hls_playlist options are enabled. This is an + experimental feature. + + master_m3u8_publish_rate master_m3u8_publish_rate + Publish master playlist repeatedly every after specified number of + segment intervals. + + framecrc + Per-packet CRC (Cyclic Redundancy Check) testing format. + + This muxer computes and prints the Adler-32 CRC for each audio and + video packet. By default audio frames are converted to signed 16-bit + raw audio and video frames to raw video before computing the CRC. + + The output of the muxer consists of a line for each audio and video + packet of the form: + + , , , , , 0x + + CRC is a hexadecimal number 0-padded to 8 digits containing the CRC of + the packet. + + Examples + + For example to compute the CRC of the audio and video frames in INPUT, + converted to raw audio and video packets, and store it in the file + out.crc: + + ffmpeg -i INPUT -f framecrc out.crc + + To print the information to stdout, use the command: + + ffmpeg -i INPUT -f framecrc - + + With ffmpeg, you can select the output format to which the audio and + video frames are encoded before computing the CRC for each packet by + specifying the audio and video codec. For example, to compute the CRC + of each decoded input audio frame converted to PCM unsigned 8-bit and + of each decoded input video frame converted to MPEG-2 video, use the + command: + + ffmpeg -i INPUT -c:a pcm_u8 -c:v mpeg2video -f framecrc - + + See also the crc muxer. + + framehash + Per-packet hash testing format. + + This muxer computes and prints a cryptographic hash for each audio and + video packet. This can be used for packet-by-packet equality checks + without having to individually do a binary comparison on each. + + By default audio frames are converted to signed 16-bit raw audio and + video frames to raw video before computing the hash, but the output of + explicit conversions to other codecs can also be used. It uses the + SHA-256 cryptographic hash function by default, but supports several + other algorithms. + + The output of the muxer consists of a line for each audio and video + packet of the form: + + , , , , , + + hash is a hexadecimal number representing the computed hash for the + packet. + + hash algorithm + Use the cryptographic hash function specified by the string + algorithm. Supported values include "MD5", "murmur3", "RIPEMD128", + "RIPEMD160", "RIPEMD256", "RIPEMD320", "SHA160", "SHA224", "SHA256" + (default), "SHA512/224", "SHA512/256", "SHA384", "SHA512", "CRC32" + and "adler32". + + Examples + + To compute the SHA-256 hash of the audio and video frames in INPUT, + converted to raw audio and video packets, and store it in the file + out.sha256: + + ffmpeg -i INPUT -f framehash out.sha256 + + To print the information to stdout, using the MD5 hash function, use + the command: + + ffmpeg -i INPUT -f framehash -hash md5 - + + See also the hash muxer. + + framemd5 + Per-packet MD5 testing format. + + This is a variant of the framehash muxer. Unlike that muxer, it + defaults to using the MD5 hash function. + + Examples + + To compute the MD5 hash of the audio and video frames in INPUT, + converted to raw audio and video packets, and store it in the file + out.md5: + + ffmpeg -i INPUT -f framemd5 out.md5 + + To print the information to stdout, use the command: + + ffmpeg -i INPUT -f framemd5 - + + See also the framehash and md5 muxers. + + gif + Animated GIF muxer. + + It accepts the following options: + + loop + Set the number of times to loop the output. Use "-1" for no loop, 0 + for looping indefinitely (default). + + final_delay + Force the delay (expressed in centiseconds) after the last frame. + Each frame ends with a delay until the next frame. The default is + "-1", which is a special value to tell the muxer to re-use the + previous delay. In case of a loop, you might want to customize this + value to mark a pause for instance. + + For example, to encode a gif looping 10 times, with a 5 seconds delay + between the loops: + + ffmpeg -i INPUT -loop 10 -final_delay 500 out.gif + + Note 1: if you wish to extract the frames into separate GIF files, you + need to force the image2 muxer: + + ffmpeg -i INPUT -c:v gif -f image2 "out%d.gif" + + Note 2: the GIF format has a very large time base: the delay between + two frames can therefore not be smaller than one centi second. + + hash + Hash testing format. + + This muxer computes and prints a cryptographic hash of all the input + audio and video frames. This can be used for equality checks without + having to do a complete binary comparison. + + By default audio frames are converted to signed 16-bit raw audio and + video frames to raw video before computing the hash, but the output of + explicit conversions to other codecs can also be used. Timestamps are + ignored. It uses the SHA-256 cryptographic hash function by default, + but supports several other algorithms. + + The output of the muxer consists of a single line of the form: + algo=hash, where algo is a short string representing the hash function + used, and hash is a hexadecimal number representing the computed hash. + + hash algorithm + Use the cryptographic hash function specified by the string + algorithm. Supported values include "MD5", "murmur3", "RIPEMD128", + "RIPEMD160", "RIPEMD256", "RIPEMD320", "SHA160", "SHA224", "SHA256" + (default), "SHA512/224", "SHA512/256", "SHA384", "SHA512", "CRC32" + and "adler32". + + Examples + + To compute the SHA-256 hash of the input converted to raw audio and + video, and store it in the file out.sha256: + + ffmpeg -i INPUT -f hash out.sha256 + + To print an MD5 hash to stdout use the command: + + ffmpeg -i INPUT -f hash -hash md5 - + + See also the framehash muxer. + + hls + Apple HTTP Live Streaming muxer that segments MPEG-TS according to the + HTTP Live Streaming (HLS) specification. + + It creates a playlist file, and one or more segment files. The output + filename specifies the playlist filename. + + By default, the muxer creates a file for each segment produced. These + files have the same name as the playlist, followed by a sequential + number and a .ts extension. + + Make sure to require a closed GOP when encoding and to set the GOP size + to fit your segment time constraint. + + For example, to convert an input file with ffmpeg: + + ffmpeg -i in.mkv -c:v h264 -flags +cgop -g 30 -hls_time 1 out.m3u8 + + This example will produce the playlist, out.m3u8, and segment files: + out0.ts, out1.ts, out2.ts, etc. + + See also the segment muxer, which provides a more generic and flexible + implementation of a segmenter, and can be used to perform HLS + segmentation. + + Options + + This muxer supports the following options: + + hls_init_time seconds + Set the initial target segment length in seconds. Default value is + 0. Segment will be cut on the next key frame after this time has + passed on the first m3u8 list. After the initial playlist is + filled ffmpeg will cut segments at duration equal to "hls_time" + + hls_time seconds + Set the target segment length in seconds. Default value is 2. + Segment will be cut on the next key frame after this time has + passed. + + hls_list_size size + Set the maximum number of playlist entries. If set to 0 the list + file will contain all the segments. Default value is 5. + + hls_delete_threshold size + Set the number of unreferenced segments to keep on disk before + "hls_flags delete_segments" deletes them. Increase this to allow + continue clients to download segments which were recently + referenced in the playlist. Default value is 1, meaning segments + older than "hls_list_size+1" will be deleted. + + hls_ts_options options_list + Set output format options using a :-separated list of key=value + parameters. Values containing ":" special characters must be + escaped. + + hls_wrap wrap + This is a deprecated option, you can use "hls_list_size" and + "hls_flags delete_segments" instead it + + This option is useful to avoid to fill the disk with many segment + files, and limits the maximum number of segment files written to + disk to wrap. + + hls_start_number_source + Start the playlist sequence number ("#EXT-X-MEDIA-SEQUENCE") + according to the specified source. Unless "hls_flags single_file" + is set, it also specifies source of starting sequence numbers of + segment and subtitle filenames. In any case, if "hls_flags + append_list" is set and read playlist sequence number is greater + than the specified start sequence number, then that value will be + used as start value. + + It accepts the following values: + + generic (default) + Set the starting sequence numbers according to start_number + option value. + + epoch + The start number will be the seconds since epoch (1970-01-01 + 00:00:00) + + datetime + The start number will be based on the current date/time as + YYYYmmddHHMMSS. e.g. 20161231235759. + + start_number number + Start the playlist sequence number ("#EXT-X-MEDIA-SEQUENCE") from + the specified number when hls_start_number_source value is generic. + (This is the default case.) Unless "hls_flags single_file" is set, + it also specifies starting sequence numbers of segment and subtitle + filenames. Default value is 0. + + hls_allow_cache allowcache + Explicitly set whether the client MAY (1) or MUST NOT (0) cache + media segments. + + hls_base_url baseurl + Append baseurl to every entry in the playlist. Useful to generate + playlists with absolute paths. + + Note that the playlist sequence number must be unique for each + segment and it is not to be confused with the segment filename + sequence number which can be cyclic, for example if the wrap option + is specified. + + hls_segment_filename filename + Set the segment filename. Unless "hls_flags single_file" is set, + filename is used as a string format with the segment number: + + ffmpeg -i in.nut -hls_segment_filename 'file%03d.ts' out.m3u8 + + This example will produce the playlist, out.m3u8, and segment + files: file000.ts, file001.ts, file002.ts, etc. + + filename may contain full path or relative path specification, but + only the file name part without any path info will be contained in + the m3u8 segment list. Should a relative path be specified, the + path of the created segment files will be relative to the current + working directory. When strftime_mkdir is set, the whole expanded + value of filename will be written into the m3u8 segment list. + + When "var_stream_map" is set with two or more variant streams, the + filename pattern must contain the string "%v", this string + specifies the position of variant stream index in the generated + segment file names. + + ffmpeg -i in.ts -b:v:0 1000k -b:v:1 256k -b:a:0 64k -b:a:1 32k \ + -map 0:v -map 0:a -map 0:v -map 0:a -f hls -var_stream_map "v:0,a:0 v:1,a:1" \ + -hls_segment_filename 'file_%v_%03d.ts' out_%v.m3u8 + + This example will produce the playlists segment file sets: + file_0_000.ts, file_0_001.ts, file_0_002.ts, etc. and + file_1_000.ts, file_1_001.ts, file_1_002.ts, etc. + + The string "%v" may be present in the filename or in the last + directory name containing the file, but only in one of them. + (Additionally, %v may appear multiple times in the last sub- + directory or filename.) If the string %v is present in the + directory name, then sub-directories are created after expanding + the directory name pattern. This enables creation of segments + corresponding to different variant streams in subdirectories. + + ffmpeg -i in.ts -b:v:0 1000k -b:v:1 256k -b:a:0 64k -b:a:1 32k \ + -map 0:v -map 0:a -map 0:v -map 0:a -f hls -var_stream_map "v:0,a:0 v:1,a:1" \ + -hls_segment_filename 'vs%v/file_%03d.ts' vs%v/out.m3u8 + + This example will produce the playlists segment file sets: + vs0/file_000.ts, vs0/file_001.ts, vs0/file_002.ts, etc. and + vs1/file_000.ts, vs1/file_001.ts, vs1/file_002.ts, etc. + + use_localtime + Same as strftime option, will be deprecated. + + strftime + Use strftime() on filename to expand the segment filename with + localtime. The segment number is also available in this mode, but + to use it, you need to specify second_level_segment_index hls_flag + and %%d will be the specifier. + + ffmpeg -i in.nut -strftime 1 -hls_segment_filename 'file-%Y%m%d-%s.ts' out.m3u8 + + This example will produce the playlist, out.m3u8, and segment + files: file-20160215-1455569023.ts, file-20160215-1455569024.ts, + etc. Note: On some systems/environments, the %s specifier is not + available. See + "strftime()" documentation. + + ffmpeg -i in.nut -strftime 1 -hls_flags second_level_segment_index -hls_segment_filename 'file-%Y%m%d-%%04d.ts' out.m3u8 + + This example will produce the playlist, out.m3u8, and segment + files: file-20160215-0001.ts, file-20160215-0002.ts, etc. + + use_localtime_mkdir + Same as strftime_mkdir option, will be deprecated . + + strftime_mkdir + Used together with -strftime_mkdir, it will create all + subdirectories which is expanded in filename. + + ffmpeg -i in.nut -strftime 1 -strftime_mkdir 1 -hls_segment_filename '%Y%m%d/file-%Y%m%d-%s.ts' out.m3u8 + + This example will create a directory 201560215 (if it does not + exist), and then produce the playlist, out.m3u8, and segment files: + 20160215/file-20160215-1455569023.ts, + 20160215/file-20160215-1455569024.ts, etc. + + ffmpeg -i in.nut -strftime 1 -strftime_mkdir 1 -hls_segment_filename '%Y/%m/%d/file-%Y%m%d-%s.ts' out.m3u8 + + This example will create a directory hierarchy 2016/02/15 (if any + of them do not exist), and then produce the playlist, out.m3u8, and + segment files: 2016/02/15/file-20160215-1455569023.ts, + 2016/02/15/file-20160215-1455569024.ts, etc. + + hls_key_info_file key_info_file + Use the information in key_info_file for segment encryption. The + first line of key_info_file specifies the key URI written to the + playlist. The key URL is used to access the encryption key during + playback. The second line specifies the path to the key file used + to obtain the key during the encryption process. The key file is + read as a single packed array of 16 octets in binary format. The + optional third line specifies the initialization vector (IV) as a + hexadecimal string to be used instead of the segment sequence + number (default) for encryption. Changes to key_info_file will + result in segment encryption with the new key/IV and an entry in + the playlist for the new key URI/IV if "hls_flags periodic_rekey" + is enabled. + + Key info file format: + + + + (optional) + + Example key URIs: + + http://server/file.key + /path/to/file.key + file.key + + Example key file paths: + + file.key + /path/to/file.key + + Example IV: + + 0123456789ABCDEF0123456789ABCDEF + + Key info file example: + + http://server/file.key + /path/to/file.key + 0123456789ABCDEF0123456789ABCDEF + + Example shell script: + + #!/bin/sh + BASE_URL=${1:-'.'} + openssl rand 16 > file.key + echo $BASE_URL/file.key > file.keyinfo + echo file.key >> file.keyinfo + echo $(openssl rand -hex 16) >> file.keyinfo + ffmpeg -f lavfi -re -i testsrc -c:v h264 -hls_flags delete_segments \ + -hls_key_info_file file.keyinfo out.m3u8 + + -hls_enc enc + Enable (1) or disable (0) the AES128 encryption. When enabled + every segment generated is encrypted and the encryption key is + saved as playlist name.key. + + -hls_enc_key key + Hex-coded 16byte key to encrypt the segments, by default it is + randomly generated. + + -hls_enc_key_url keyurl + If set, keyurl is prepended instead of baseurl to the key filename + in the playlist. + + -hls_enc_iv iv + Hex-coded 16byte initialization vector for every segment instead of + the autogenerated ones. + + hls_segment_type flags + Possible values: + + mpegts + Output segment files in MPEG-2 Transport Stream format. This is + compatible with all HLS versions. + + fmp4 + Output segment files in fragmented MP4 format, similar to MPEG- + DASH. fmp4 files may be used in HLS version 7 and above. + + hls_fmp4_init_filename filename + Set filename to the fragment files header file, default filename is + init.mp4. + + When "var_stream_map" is set with two or more variant streams, the + filename pattern must contain the string "%v", this string + specifies the position of variant stream index in the generated + init file names. The string "%v" may be present in the filename or + in the last directory name containing the file. If the string is + present in the directory name, then sub-directories are created + after expanding the directory name pattern. This enables creation + of init files corresponding to different variant streams in + subdirectories. + + hls_flags flags + Possible values: + + single_file + If this flag is set, the muxer will store all segments in a + single MPEG-TS file, and will use byte ranges in the playlist. + HLS playlists generated with this way will have the version + number 4. For example: + + ffmpeg -i in.nut -hls_flags single_file out.m3u8 + + Will produce the playlist, out.m3u8, and a single segment file, + out.ts. + + delete_segments + Segment files removed from the playlist are deleted after a + period of time equal to the duration of the segment plus the + duration of the playlist. + + append_list + Append new segments into the end of old segment list, and + remove the "#EXT-X-ENDLIST" from the old segment list. + + round_durations + Round the duration info in the playlist file segment info to + integer values, instead of using floating point. + + discont_start + Add the "#EXT-X-DISCONTINUITY" tag to the playlist, before the + first segment's information. + + omit_endlist + Do not append the "EXT-X-ENDLIST" tag at the end of the + playlist. + + periodic_rekey + The file specified by "hls_key_info_file" will be checked + periodically and detect updates to the encryption info. Be sure + to replace this file atomically, including the file containing + the AES encryption key. + + independent_segments + Add the "#EXT-X-INDEPENDENT-SEGMENTS" to playlists that has + video segments and when all the segments of that playlist are + guaranteed to start with a Key frame. + + iframes_only + Add the "#EXT-X-I-FRAMES-ONLY" to playlists that has video + segments and can play only I-frames in the "#EXT-X-BYTERANGE" + mode. + + split_by_time + Allow segments to start on frames other than keyframes. This + improves behavior on some players when the time between + keyframes is inconsistent, but may make things worse on others, + and can cause some oddities during seeking. This flag should be + used with the "hls_time" option. + + program_date_time + Generate "EXT-X-PROGRAM-DATE-TIME" tags. + + second_level_segment_index + Makes it possible to use segment indexes as %%d in + hls_segment_filename expression besides date/time values when + strftime is on. To get fixed width numbers with trailing + zeroes, %%0xd format is available where x is the required + width. + + second_level_segment_size + Makes it possible to use segment sizes (counted in bytes) as + %%s in hls_segment_filename expression besides date/time values + when strftime is on. To get fixed width numbers with trailing + zeroes, %%0xs format is available where x is the required + width. + + second_level_segment_duration + Makes it possible to use segment duration (calculated in + microseconds) as %%t in hls_segment_filename expression besides + date/time values when strftime is on. To get fixed width + numbers with trailing zeroes, %%0xt format is available where x + is the required width. + + ffmpeg -i sample.mpeg \ + -f hls -hls_time 3 -hls_list_size 5 \ + -hls_flags second_level_segment_index+second_level_segment_size+second_level_segment_duration \ + -strftime 1 -strftime_mkdir 1 -hls_segment_filename "segment_%Y%m%d%H%M%S_%%04d_%%08s_%%013t.ts" stream.m3u8 + + This will produce segments like this: + segment_20170102194334_0003_00122200_0000003000000.ts, + segment_20170102194334_0004_00120072_0000003000000.ts etc. + + temp_file + Write segment data to filename.tmp and rename to filename only + once the segment is complete. A webserver serving up segments + can be configured to reject requests to *.tmp to prevent access + to in-progress segments before they have been added to the m3u8 + playlist. This flag also affects how m3u8 playlist files are + created. If this flag is set, all playlist files will written + into temporary file and renamed after they are complete, + similarly as segments are handled. But playlists with "file" + protocol and with type ("hls_playlist_type") other than "vod" + are always written into temporary file regardles of this flag. + Master playlist files ("master_pl_name"), if any, with "file" + protocol, are always written into temporary file regardles of + this flag if "master_pl_publish_rate" value is other than zero. + + hls_playlist_type event + Emit "#EXT-X-PLAYLIST-TYPE:EVENT" in the m3u8 header. Forces + hls_list_size to 0; the playlist can only be appended to. + + hls_playlist_type vod + Emit "#EXT-X-PLAYLIST-TYPE:VOD" in the m3u8 header. Forces + hls_list_size to 0; the playlist must not change. + + method + Use the given HTTP method to create the hls files. + + ffmpeg -re -i in.ts -f hls -method PUT http://example.com/live/out.m3u8 + + This example will upload all the mpegts segment files to the HTTP + server using the HTTP PUT method, and update the m3u8 files every + "refresh" times using the same method. Note that the HTTP server + must support the given method for uploading files. + + http_user_agent + Override User-Agent field in HTTP header. Applicable only for HTTP + output. + + var_stream_map + Map string which specifies how to group the audio, video and + subtitle streams into different variant streams. The variant stream + groups are separated by space. Expected string format is like this + "a:0,v:0 a:1,v:1 ....". Here a:, v:, s: are the keys to specify + audio, video and subtitle streams respectively. Allowed values are + 0 to 9 (limited just based on practical usage). + + When there are two or more variant streams, the output filename + pattern must contain the string "%v", this string specifies the + position of variant stream index in the output media playlist + filenames. The string "%v" may be present in the filename or in the + last directory name containing the file. If the string is present + in the directory name, then sub-directories are created after + expanding the directory name pattern. This enables creation of + variant streams in subdirectories. + + ffmpeg -re -i in.ts -b:v:0 1000k -b:v:1 256k -b:a:0 64k -b:a:1 32k \ + -map 0:v -map 0:a -map 0:v -map 0:a -f hls -var_stream_map "v:0,a:0 v:1,a:1" \ + http://example.com/live/out_%v.m3u8 + + This example creates two hls variant streams. The first variant + stream will contain video stream of bitrate 1000k and audio stream + of bitrate 64k and the second variant stream will contain video + stream of bitrate 256k and audio stream of bitrate 32k. Here, two + media playlist with file names out_0.m3u8 and out_1.m3u8 will be + created. If you want something meaningful text instead of indexes + in result names, you may specify names for each or some of the + variants as in the following example. + + ffmpeg -re -i in.ts -b:v:0 1000k -b:v:1 256k -b:a:0 64k -b:a:1 32k \ + -map 0:v -map 0:a -map 0:v -map 0:a -f hls -var_stream_map "v:0,a:0,name:my_hd v:1,a:1,name:my_sd" \ + http://example.com/live/out_%v.m3u8 + + This example creates two hls variant streams as in the previous + one. But here, the two media playlist with file names + out_my_hd.m3u8 and out_my_sd.m3u8 will be created. + + ffmpeg -re -i in.ts -b:v:0 1000k -b:v:1 256k -b:a:0 64k \ + -map 0:v -map 0:a -map 0:v -f hls -var_stream_map "v:0 a:0 v:1" \ + http://example.com/live/out_%v.m3u8 + + This example creates three hls variant streams. The first variant + stream will be a video only stream with video bitrate 1000k, the + second variant stream will be an audio only stream with bitrate 64k + and the third variant stream will be a video only stream with + bitrate 256k. Here, three media playlist with file names + out_0.m3u8, out_1.m3u8 and out_2.m3u8 will be created. + + ffmpeg -re -i in.ts -b:v:0 1000k -b:v:1 256k -b:a:0 64k -b:a:1 32k \ + -map 0:v -map 0:a -map 0:v -map 0:a -f hls -var_stream_map "v:0,a:0 v:1,a:1" \ + http://example.com/live/vs_%v/out.m3u8 + + This example creates the variant streams in subdirectories. Here, + the first media playlist is created at + http://example.com/live/vs_0/out.m3u8 and the second one at + http://example.com/live/vs_1/out.m3u8. + + ffmpeg -re -i in.ts -b:a:0 32k -b:a:1 64k -b:v:0 1000k -b:v:1 3000k \ + -map 0:a -map 0:a -map 0:v -map 0:v -f hls \ + -var_stream_map "a:0,agroup:aud_low a:1,agroup:aud_high v:0,agroup:aud_low v:1,agroup:aud_high" \ + -master_pl_name master.m3u8 \ + http://example.com/live/out_%v.m3u8 + + This example creates two audio only and two video only variant + streams. In addition to the #EXT-X-STREAM-INF tag for each variant + stream in the master playlist, #EXT-X-MEDIA tag is also added for + the two audio only variant streams and they are mapped to the two + video only variant streams with audio group names 'aud_low' and + 'aud_high'. + + By default, a single hls variant containing all the encoded streams + is created. + + ffmpeg -re -i in.ts -b:a:0 32k -b:a:1 64k -b:v:0 1000k \ + -map 0:a -map 0:a -map 0:v -f hls \ + -var_stream_map "a:0,agroup:aud_low,default:yes a:1,agroup:aud_low v:0,agroup:aud_low" \ + -master_pl_name master.m3u8 \ + http://example.com/live/out_%v.m3u8 + + This example creates two audio only and one video only variant + streams. In addition to the #EXT-X-STREAM-INF tag for each variant + stream in the master playlist, #EXT-X-MEDIA tag is also added for + the two audio only variant streams and they are mapped to the one + video only variant streams with audio group name 'aud_low', and the + audio group have default stat is NO or YES. + + By default, a single hls variant containing all the encoded streams + is created. + + ffmpeg -re -i in.ts -b:a:0 32k -b:a:1 64k -b:v:0 1000k \ + -map 0:a -map 0:a -map 0:v -f hls \ + -var_stream_map "a:0,agroup:aud_low,default:yes,language:ENG a:1,agroup:aud_low,language:CHN v:0,agroup:aud_low" \ + -master_pl_name master.m3u8 \ + http://example.com/live/out_%v.m3u8 + + This example creates two audio only and one video only variant + streams. In addition to the #EXT-X-STREAM-INF tag for each variant + stream in the master playlist, #EXT-X-MEDIA tag is also added for + the two audio only variant streams and they are mapped to the one + video only variant streams with audio group name 'aud_low', and the + audio group have default stat is NO or YES, and one audio have and + language is named ENG, the other audio language is named CHN. + + By default, a single hls variant containing all the encoded streams + is created. + + cc_stream_map + Map string which specifies different closed captions groups and + their attributes. The closed captions stream groups are separated + by space. Expected string format is like this "ccgroup:,instreamid:,language: ....". + 'ccgroup' and 'instreamid' are mandatory attributes. 'language' is + an optional attribute. The closed captions groups configured using + this option are mapped to different variant streams by providing + the same 'ccgroup' name in the "var_stream_map" string. If + "var_stream_map" is not set, then the first available ccgroup in + "cc_stream_map" is mapped to the output variant stream. The + examples for these two use cases are given below. + + ffmpeg -re -i in.ts -b:v 1000k -b:a 64k -a53cc 1 -f hls \ + -cc_stream_map "ccgroup:cc,instreamid:CC1,language:en" \ + -master_pl_name master.m3u8 \ + http://example.com/live/out.m3u8 + + This example adds "#EXT-X-MEDIA" tag with "TYPE=CLOSED-CAPTIONS" in + the master playlist with group name 'cc', language 'en' (english) + and INSTREAM-ID 'CC1'. Also, it adds "CLOSED-CAPTIONS" attribute + with group name 'cc' for the output variant stream. + + ffmpeg -re -i in.ts -b:v:0 1000k -b:v:1 256k -b:a:0 64k -b:a:1 32k \ + -a53cc:0 1 -a53cc:1 1\ + -map 0:v -map 0:a -map 0:v -map 0:a -f hls \ + -cc_stream_map "ccgroup:cc,instreamid:CC1,language:en ccgroup:cc,instreamid:CC2,language:sp" \ + -var_stream_map "v:0,a:0,ccgroup:cc v:1,a:1,ccgroup:cc" \ + -master_pl_name master.m3u8 \ + http://example.com/live/out_%v.m3u8 + + This example adds two "#EXT-X-MEDIA" tags with + "TYPE=CLOSED-CAPTIONS" in the master playlist for the INSTREAM-IDs + 'CC1' and 'CC2'. Also, it adds "CLOSED-CAPTIONS" attribute with + group name 'cc' for the two output variant streams. + + master_pl_name + Create HLS master playlist with the given name. + + ffmpeg -re -i in.ts -f hls -master_pl_name master.m3u8 http://example.com/live/out.m3u8 + + This example creates HLS master playlist with name master.m3u8 and + it is published at http://example.com/live/ + + master_pl_publish_rate + Publish master play list repeatedly every after specified number of + segment intervals. + + ffmpeg -re -i in.ts -f hls -master_pl_name master.m3u8 \ + -hls_time 2 -master_pl_publish_rate 30 http://example.com/live/out.m3u8 + + This example creates HLS master playlist with name master.m3u8 and + keep publishing it repeatedly every after 30 segments i.e. every + after 60s. + + http_persistent + Use persistent HTTP connections. Applicable only for HTTP output. + + timeout + Set timeout for socket I/O operations. Applicable only for HTTP + output. + + -ignore_io_errors + Ignore IO errors during open, write and delete. Useful for long- + duration runs with network output. + + headers + Set custom HTTP headers, can override built in default headers. + Applicable only for HTTP output. + + ico + ICO file muxer. + + Microsoft's icon file format (ICO) has some strict limitations that + should be noted: + + o Size cannot exceed 256 pixels in any dimension + + o Only BMP and PNG images can be stored + + o If a BMP image is used, it must be one of the following pixel + formats: + + BMP Bit Depth FFmpeg Pixel Format + 1bit pal8 + 4bit pal8 + 8bit pal8 + 16bit rgb555le + 24bit bgr24 + 32bit bgra + + o If a BMP image is used, it must use the BITMAPINFOHEADER DIB header + + o If a PNG image is used, it must use the rgba pixel format + + image2 + Image file muxer. + + The image file muxer writes video frames to image files. + + The output filenames are specified by a pattern, which can be used to + produce sequentially numbered series of files. The pattern may contain + the string "%d" or "%0Nd", this string specifies the position of the + characters representing a numbering in the filenames. If the form + "%0Nd" is used, the string representing the number in each filename is + 0-padded to N digits. The literal character '%' can be specified in the + pattern with the string "%%". + + If the pattern contains "%d" or "%0Nd", the first filename of the file + list specified will contain the number 1, all the following numbers + will be sequential. + + The pattern may contain a suffix which is used to automatically + determine the format of the image files to write. + + For example the pattern "img-%03d.bmp" will specify a sequence of + filenames of the form img-001.bmp, img-002.bmp, ..., img-010.bmp, etc. + The pattern "img%%-%d.jpg" will specify a sequence of filenames of the + form img%-1.jpg, img%-2.jpg, ..., img%-10.jpg, etc. + + Examples + + The following example shows how to use ffmpeg for creating a sequence + of files img-001.jpeg, img-002.jpeg, ..., taking one image every second + from the input video: + + ffmpeg -i in.avi -vsync cfr -r 1 -f image2 'img-%03d.jpeg' + + Note that with ffmpeg, if the format is not specified with the "-f" + option and the output filename specifies an image file format, the + image2 muxer is automatically selected, so the previous command can be + written as: + + ffmpeg -i in.avi -vsync cfr -r 1 'img-%03d.jpeg' + + Note also that the pattern must not necessarily contain "%d" or "%0Nd", + for example to create a single image file img.jpeg from the start of + the input video you can employ the command: + + ffmpeg -i in.avi -f image2 -frames:v 1 img.jpeg + + The strftime option allows you to expand the filename with date and + time information. Check the documentation of the "strftime()" function + for the syntax. + + For example to generate image files from the "strftime()" + "%Y-%m-%d_%H-%M-%S" pattern, the following ffmpeg command can be used: + + ffmpeg -f v4l2 -r 1 -i /dev/video0 -f image2 -strftime 1 "%Y-%m-%d_%H-%M-%S.jpg" + + You can set the file name with current frame's PTS: + + ffmpeg -f v4l2 -r 1 -i /dev/video0 -copyts -f image2 -frame_pts true %d.jpg" + + Options + + frame_pts + If set to 1, expand the filename with pts from pkt->pts. Default + value is 0. + + start_number + Start the sequence from the specified number. Default value is 1. + + update + If set to 1, the filename will always be interpreted as just a + filename, not a pattern, and the corresponding file will be + continuously overwritten with new images. Default value is 0. + + strftime + If set to 1, expand the filename with date and time information + from "strftime()". Default value is 0. + + The image muxer supports the .Y.U.V image file format. This format is + special in that that each image frame consists of three files, for each + of the YUV420P components. To read or write this image file format, + specify the name of the '.Y' file. The muxer will automatically open + the '.U' and '.V' files as required. + + matroska + Matroska container muxer. + + This muxer implements the matroska and webm container specs. + + Metadata + + The recognized metadata settings in this muxer are: + + title + Set title name provided to a single track. + + language + Specify the language of the track in the Matroska languages form. + + The language can be either the 3 letters bibliographic ISO-639-2 + (ISO 639-2/B) form (like "fre" for French), or a language code + mixed with a country code for specialities in languages (like "fre- + ca" for Canadian French). + + stereo_mode + Set stereo 3D video layout of two views in a single video track. + + The following values are recognized: + + mono + video is not stereo + + left_right + Both views are arranged side by side, Left-eye view is on the + left + + bottom_top + Both views are arranged in top-bottom orientation, Left-eye + view is at bottom + + top_bottom + Both views are arranged in top-bottom orientation, Left-eye + view is on top + + checkerboard_rl + Each view is arranged in a checkerboard interleaved pattern, + Left-eye view being first + + checkerboard_lr + Each view is arranged in a checkerboard interleaved pattern, + Right-eye view being first + + row_interleaved_rl + Each view is constituted by a row based interleaving, Right-eye + view is first row + + row_interleaved_lr + Each view is constituted by a row based interleaving, Left-eye + view is first row + + col_interleaved_rl + Both views are arranged in a column based interleaving manner, + Right-eye view is first column + + col_interleaved_lr + Both views are arranged in a column based interleaving manner, + Left-eye view is first column + + anaglyph_cyan_red + All frames are in anaglyph format viewable through red-cyan + filters + + right_left + Both views are arranged side by side, Right-eye view is on the + left + + anaglyph_green_magenta + All frames are in anaglyph format viewable through green- + magenta filters + + block_lr + Both eyes laced in one Block, Left-eye view is first + + block_rl + Both eyes laced in one Block, Right-eye view is first + + For example a 3D WebM clip can be created using the following command + line: + + ffmpeg -i sample_left_right_clip.mpg -an -c:v libvpx -metadata stereo_mode=left_right -y stereo_clip.webm + + Options + + This muxer supports the following options: + + reserve_index_space + By default, this muxer writes the index for seeking (called cues in + Matroska terms) at the end of the file, because it cannot know in + advance how much space to leave for the index at the beginning of + the file. However for some use cases -- e.g. streaming where + seeking is possible but slow -- it is useful to put the index at + the beginning of the file. + + If this option is set to a non-zero value, the muxer will reserve a + given amount of space in the file header and then try to write the + cues there when the muxing finishes. If the available space does + not suffice, muxing will fail. A safe size for most use cases + should be about 50kB per hour of video. + + Note that cues are only written if the output is seekable and this + option will have no effect if it is not. + + md5 + MD5 testing format. + + This is a variant of the hash muxer. Unlike that muxer, it defaults to + using the MD5 hash function. + + Examples + + To compute the MD5 hash of the input converted to raw audio and video, + and store it in the file out.md5: + + ffmpeg -i INPUT -f md5 out.md5 + + You can print the MD5 to stdout with the command: + + ffmpeg -i INPUT -f md5 - + + See also the hash and framemd5 muxers. + + mov, mp4, ismv + MOV/MP4/ISMV (Smooth Streaming) muxer. + + The mov/mp4/ismv muxer supports fragmentation. Normally, a MOV/MP4 file + has all the metadata about all packets stored in one location (written + at the end of the file, it can be moved to the start for better + playback by adding faststart to the movflags, or using the qt-faststart + tool). A fragmented file consists of a number of fragments, where + packets and metadata about these packets are stored together. Writing a + fragmented file has the advantage that the file is decodable even if + the writing is interrupted (while a normal MOV/MP4 is undecodable if it + is not properly finished), and it requires less memory when writing + very long files (since writing normal MOV/MP4 files stores info about + every single packet in memory until the file is closed). The downside + is that it is less compatible with other applications. + + Options + + Fragmentation is enabled by setting one of the AVOptions that define + how to cut the file into fragments: + + -moov_size bytes + Reserves space for the moov atom at the beginning of the file + instead of placing the moov atom at the end. If the space reserved + is insufficient, muxing will fail. + + -movflags frag_keyframe + Start a new fragment at each video keyframe. + + -frag_duration duration + Create fragments that are duration microseconds long. + + -frag_size size + Create fragments that contain up to size bytes of payload data. + + -movflags frag_custom + Allow the caller to manually choose when to cut fragments, by + calling "av_write_frame(ctx, NULL)" to write a fragment with the + packets written so far. (This is only useful with other + applications integrating libavformat, not from ffmpeg.) + + -min_frag_duration duration + Don't create fragments that are shorter than duration microseconds + long. + + If more than one condition is specified, fragments are cut when one of + the specified conditions is fulfilled. The exception to this is + "-min_frag_duration", which has to be fulfilled for any of the other + conditions to apply. + + Additionally, the way the output file is written can be adjusted + through a few other options: + + -movflags empty_moov + Write an initial moov atom directly at the start of the file, + without describing any samples in it. Generally, an mdat/moov pair + is written at the start of the file, as a normal MOV/MP4 file, + containing only a short portion of the file. With this option set, + there is no initial mdat atom, and the moov atom only describes the + tracks but has a zero duration. + + This option is implicitly set when writing ismv (Smooth Streaming) + files. + + -movflags separate_moof + Write a separate moof (movie fragment) atom for each track. + Normally, packets for all tracks are written in a moof atom (which + is slightly more efficient), but with this option set, the muxer + writes one moof/mdat pair for each track, making it easier to + separate tracks. + + This option is implicitly set when writing ismv (Smooth Streaming) + files. + + -movflags skip_sidx + Skip writing of sidx atom. When bitrate overhead due to sidx atom + is high, this option could be used for cases where sidx atom is not + mandatory. When global_sidx flag is enabled, this option will be + ignored. + + -movflags faststart + Run a second pass moving the index (moov atom) to the beginning of + the file. This operation can take a while, and will not work in + various situations such as fragmented output, thus it is not + enabled by default. + + -movflags rtphint + Add RTP hinting tracks to the output file. + + -movflags disable_chpl + Disable Nero chapter markers (chpl atom). Normally, both Nero + chapters and a QuickTime chapter track are written to the file. + With this option set, only the QuickTime chapter track will be + written. Nero chapters can cause failures when the file is + reprocessed with certain tagging programs, like mp3Tag 2.61a and + iTunes 11.3, most likely other versions are affected as well. + + -movflags omit_tfhd_offset + Do not write any absolute base_data_offset in tfhd atoms. This + avoids tying fragments to absolute byte positions in the + file/streams. + + -movflags default_base_moof + Similarly to the omit_tfhd_offset, this flag avoids writing the + absolute base_data_offset field in tfhd atoms, but does so by using + the new default-base-is-moof flag instead. This flag is new from + 14496-12:2012. This may make the fragments easier to parse in + certain circumstances (avoiding basing track fragment location + calculations on the implicit end of the previous track fragment). + + -write_tmcd + Specify "on" to force writing a timecode track, "off" to disable it + and "auto" to write a timecode track only for mov and mp4 output + (default). + + -movflags negative_cts_offsets + Enables utilization of version 1 of the CTTS box, in which the CTS + offsets can be negative. This enables the initial sample to have + DTS/CTS of zero, and reduces the need for edit lists for some cases + such as video tracks with B-frames. Additionally, eases conformance + with the DASH-IF interoperability guidelines. + + This option is implicitly set when writing ismv (Smooth Streaming) + files. + + -write_prft + Write producer time reference box (PRFT) with a specified time + source for the NTP field in the PRFT box. Set value as wallclock to + specify timesource as wallclock time and pts to specify timesource + as input packets' PTS values. + + Setting value to pts is applicable only for a live encoding use + case, where PTS values are set as as wallclock time at the source. + For example, an encoding use case with decklink capture source + where video_pts and audio_pts are set to abs_wallclock. + + Example + + Smooth Streaming content can be pushed in real time to a publishing + point on IIS with this muxer. Example: + + ffmpeg -re <> -movflags isml+frag_keyframe -f ismv http://server/publishingpoint.isml/Streams(Encoder1) + + Audible AAX + + Audible AAX files are encrypted M4B files, and they can be decrypted by + specifying a 4 byte activation secret. + + ffmpeg -activation_bytes 1CEB00DA -i test.aax -vn -c:a copy output.mp4 + + mp3 + The MP3 muxer writes a raw MP3 stream with the following optional + features: + + o An ID3v2 metadata header at the beginning (enabled by default). + Versions 2.3 and 2.4 are supported, the "id3v2_version" private + option controls which one is used (3 or 4). Setting "id3v2_version" + to 0 disables the ID3v2 header completely. + + The muxer supports writing attached pictures (APIC frames) to the + ID3v2 header. The pictures are supplied to the muxer in form of a + video stream with a single packet. There can be any number of those + streams, each will correspond to a single APIC frame. The stream + metadata tags title and comment map to APIC description and picture + type respectively. See for + allowed picture types. + + Note that the APIC frames must be written at the beginning, so the + muxer will buffer the audio frames until it gets all the pictures. + It is therefore advised to provide the pictures as soon as possible + to avoid excessive buffering. + + o A Xing/LAME frame right after the ID3v2 header (if present). It is + enabled by default, but will be written only if the output is + seekable. The "write_xing" private option can be used to disable + it. The frame contains various information that may be useful to + the decoder, like the audio duration or encoder delay. + + o A legacy ID3v1 tag at the end of the file (disabled by default). It + may be enabled with the "write_id3v1" private option, but as its + capabilities are very limited, its usage is not recommended. + + Examples: + + Write an mp3 with an ID3v2.3 header and an ID3v1 footer: + + ffmpeg -i INPUT -id3v2_version 3 -write_id3v1 1 out.mp3 + + To attach a picture to an mp3 file select both the audio and the + picture stream with "map": + + ffmpeg -i input.mp3 -i cover.png -c copy -map 0 -map 1 + -metadata:s:v title="Album cover" -metadata:s:v comment="Cover (Front)" out.mp3 + + Write a "clean" MP3 without any extra features: + + ffmpeg -i input.wav -write_xing 0 -id3v2_version 0 out.mp3 + + mpegts + MPEG transport stream muxer. + + This muxer implements ISO 13818-1 and part of ETSI EN 300 468. + + The recognized metadata settings in mpegts muxer are "service_provider" + and "service_name". If they are not set the default for + "service_provider" is FFmpeg and the default for "service_name" is + Service01. + + Options + + The muxer options are: + + mpegts_transport_stream_id integer + Set the transport_stream_id. This identifies a transponder in DVB. + Default is 0x0001. + + mpegts_original_network_id integer + Set the original_network_id. This is unique identifier of a network + in DVB. Its main use is in the unique identification of a service + through the path Original_Network_ID, Transport_Stream_ID. Default + is 0x0001. + + mpegts_service_id integer + Set the service_id, also known as program in DVB. Default is + 0x0001. + + mpegts_service_type integer + Set the program service_type. Default is "digital_tv". Accepts the + following options: + + hex_value + Any hexadecimal value between 0x01 and 0xff as defined in ETSI + 300 468. + + digital_tv + Digital TV service. + + digital_radio + Digital Radio service. + + teletext + Teletext service. + + advanced_codec_digital_radio + Advanced Codec Digital Radio service. + + mpeg2_digital_hdtv + MPEG2 Digital HDTV service. + + advanced_codec_digital_sdtv + Advanced Codec Digital SDTV service. + + advanced_codec_digital_hdtv + Advanced Codec Digital HDTV service. + + mpegts_pmt_start_pid integer + Set the first PID for PMT. Default is 0x1000. Max is 0x1f00. + + mpegts_start_pid integer + Set the first PID for data packets. Default is 0x0100. Max is + 0x0f00. + + mpegts_m2ts_mode boolean + Enable m2ts mode if set to 1. Default value is "-1" which disables + m2ts mode. + + muxrate integer + Set a constant muxrate. Default is VBR. + + pes_payload_size integer + Set minimum PES packet payload in bytes. Default is 2930. + + mpegts_flags flags + Set mpegts flags. Accepts the following options: + + resend_headers + Reemit PAT/PMT before writing the next packet. + + latm + Use LATM packetization for AAC. + + pat_pmt_at_frames + Reemit PAT and PMT at each video frame. + + system_b + Conform to System B (DVB) instead of System A (ATSC). + + initial_discontinuity + Mark the initial packet of each stream as discontinuity. + + resend_headers integer + Reemit PAT/PMT before writing the next packet. This option is + deprecated: use mpegts_flags instead. + + mpegts_copyts boolean + Preserve original timestamps, if value is set to 1. Default value + is "-1", which results in shifting timestamps so that they start + from 0. + + omit_video_pes_length boolean + Omit the PES packet length for video packets. Default is 1 (true). + + pcr_period integer + Override the default PCR retransmission time in milliseconds. + Ignored if variable muxrate is selected. Default is 20. + + pat_period double + Maximum time in seconds between PAT/PMT tables. + + sdt_period double + Maximum time in seconds between SDT tables. + + tables_version integer + Set PAT, PMT and SDT version (default 0, valid values are from 0 to + 31, inclusively). This option allows updating stream structure so + that standard consumer may detect the change. To do so, reopen + output "AVFormatContext" (in case of API usage) or restart ffmpeg + instance, cyclically changing tables_version value: + + ffmpeg -i source1.ts -codec copy -f mpegts -tables_version 0 udp://1.1.1.1:1111 + ffmpeg -i source2.ts -codec copy -f mpegts -tables_version 1 udp://1.1.1.1:1111 + ... + ffmpeg -i source3.ts -codec copy -f mpegts -tables_version 31 udp://1.1.1.1:1111 + ffmpeg -i source1.ts -codec copy -f mpegts -tables_version 0 udp://1.1.1.1:1111 + ffmpeg -i source2.ts -codec copy -f mpegts -tables_version 1 udp://1.1.1.1:1111 + ... + + Example + + ffmpeg -i file.mpg -c copy \ + -mpegts_original_network_id 0x1122 \ + -mpegts_transport_stream_id 0x3344 \ + -mpegts_service_id 0x5566 \ + -mpegts_pmt_start_pid 0x1500 \ + -mpegts_start_pid 0x150 \ + -metadata service_provider="Some provider" \ + -metadata service_name="Some Channel" \ + out.ts + + mxf, mxf_d10, mxf_opatom + MXF muxer. + + Options + + The muxer options are: + + store_user_comments bool + Set if user comments should be stored if available or never. IRT + D-10 does not allow user comments. The default is thus to write + them for mxf and mxf_opatom but not for mxf_d10 + + null + Null muxer. + + This muxer does not generate any output file, it is mainly useful for + testing or benchmarking purposes. + + For example to benchmark decoding with ffmpeg you can use the command: + + ffmpeg -benchmark -i INPUT -f null out.null + + Note that the above command does not read or write the out.null file, + but specifying the output file is required by the ffmpeg syntax. + + Alternatively you can write the command as: + + ffmpeg -benchmark -i INPUT -f null - + + nut + -syncpoints flags + Change the syncpoint usage in nut: + + default use the normal low-overhead seeking aids. + none do not use the syncpoints at all, reducing the overhead but + making the stream non-seekable; + Use of this option is not recommended, as the resulting files are very damage + sensitive and seeking is not possible. Also in general the overhead from + syncpoints is negligible. Note, -C 0 can be used to disable + all growing data tables, allowing to mux endless streams with limited memory + and without these disadvantages. + + timestamped extend the syncpoint with a wallclock field. + + The none and timestamped flags are experimental. + + -write_index bool + Write index at the end, the default is to write an index. + + ffmpeg -i INPUT -f_strict experimental -syncpoints none - | processor + + ogg + Ogg container muxer. + + -page_duration duration + Preferred page duration, in microseconds. The muxer will attempt to + create pages that are approximately duration microseconds long. + This allows the user to compromise between seek granularity and + container overhead. The default is 1 second. A value of 0 will fill + all segments, making pages as large as possible. A value of 1 will + effectively use 1 packet-per-page in most situations, giving a + small seek granularity at the cost of additional container + overhead. + + -serial_offset value + Serial value from which to set the streams serial number. Setting + it to different and sufficiently large values ensures that the + produced ogg files can be safely chained. + + segment, stream_segment, ssegment + Basic stream segmenter. + + This muxer outputs streams to a number of separate files of nearly + fixed duration. Output filename pattern can be set in a fashion similar + to image2, or by using a "strftime" template if the strftime option is + enabled. + + "stream_segment" is a variant of the muxer used to write to streaming + output formats, i.e. which do not require global headers, and is + recommended for outputting e.g. to MPEG transport stream segments. + "ssegment" is a shorter alias for "stream_segment". + + Every segment starts with a keyframe of the selected reference stream, + which is set through the reference_stream option. + + Note that if you want accurate splitting for a video file, you need to + make the input key frames correspond to the exact splitting times + expected by the segmenter, or the segment muxer will start the new + segment with the key frame found next after the specified start time. + + The segment muxer works best with a single constant frame rate video. + + Optionally it can generate a list of the created segments, by setting + the option segment_list. The list type is specified by the + segment_list_type option. The entry filenames in the segment list are + set by default to the basename of the corresponding segment files. + + See also the hls muxer, which provides a more specific implementation + for HLS segmentation. + + Options + + The segment muxer supports the following options: + + increment_tc 1|0 + if set to 1, increment timecode between each segment If this is + selected, the input need to have a timecode in the first video + stream. Default value is 0. + + reference_stream specifier + Set the reference stream, as specified by the string specifier. If + specifier is set to "auto", the reference is chosen automatically. + Otherwise it must be a stream specifier (see the ``Stream + specifiers'' chapter in the ffmpeg manual) which specifies the + reference stream. The default value is "auto". + + segment_format format + Override the inner container format, by default it is guessed by + the filename extension. + + segment_format_options options_list + Set output format options using a :-separated list of key=value + parameters. Values containing the ":" special character must be + escaped. + + segment_list name + Generate also a listfile named name. If not specified no listfile + is generated. + + segment_list_flags flags + Set flags affecting the segment list generation. + + It currently supports the following flags: + + cache + Allow caching (only affects M3U8 list files). + + live + Allow live-friendly file generation. + + segment_list_size size + Update the list file so that it contains at most size segments. If + 0 the list file will contain all the segments. Default value is 0. + + segment_list_entry_prefix prefix + Prepend prefix to each entry. Useful to generate absolute paths. + By default no prefix is applied. + + segment_list_type type + Select the listing format. + + The following values are recognized: + + flat + Generate a flat list for the created segments, one segment per + line. + + csv, ext + Generate a list for the created segments, one segment per line, + each line matching the format (comma-separated values): + + ,, + + segment_filename is the name of the output file generated by + the muxer according to the provided pattern. CSV escaping + (according to RFC4180) is applied if required. + + segment_start_time and segment_end_time specify the segment + start and end time expressed in seconds. + + A list file with the suffix ".csv" or ".ext" will auto-select + this format. + + ext is deprecated in favor or csv. + + ffconcat + Generate an ffconcat file for the created segments. The + resulting file can be read using the FFmpeg concat demuxer. + + A list file with the suffix ".ffcat" or ".ffconcat" will auto- + select this format. + + m3u8 + Generate an extended M3U8 file, version 3, compliant with + . + + A list file with the suffix ".m3u8" will auto-select this + format. + + If not specified the type is guessed from the list file name + suffix. + + segment_time time + Set segment duration to time, the value must be a duration + specification. Default value is "2". See also the segment_times + option. + + Note that splitting may not be accurate, unless you force the + reference stream key-frames at the given time. See the introductory + notice and the examples below. + + segment_atclocktime 1|0 + If set to "1" split at regular clock time intervals starting from + 00:00 o'clock. The time value specified in segment_time is used for + setting the length of the splitting interval. + + For example with segment_time set to "900" this makes it possible + to create files at 12:00 o'clock, 12:15, 12:30, etc. + + Default value is "0". + + segment_clocktime_offset duration + Delay the segment splitting times with the specified duration when + using segment_atclocktime. + + For example with segment_time set to "900" and + segment_clocktime_offset set to "300" this makes it possible to + create files at 12:05, 12:20, 12:35, etc. + + Default value is "0". + + segment_clocktime_wrap_duration duration + Force the segmenter to only start a new segment if a packet reaches + the muxer within the specified duration after the segmenting clock + time. This way you can make the segmenter more resilient to + backward local time jumps, such as leap seconds or transition to + standard time from daylight savings time. + + Default is the maximum possible duration which means starting a new + segment regardless of the elapsed time since the last clock time. + + segment_time_delta delta + Specify the accuracy time when selecting the start time for a + segment, expressed as a duration specification. Default value is + "0". + + When delta is specified a key-frame will start a new segment if its + PTS satisfies the relation: + + PTS >= start_time - time_delta + + This option is useful when splitting video content, which is always + split at GOP boundaries, in case a key frame is found just before + the specified split time. + + In particular may be used in combination with the ffmpeg option + force_key_frames. The key frame times specified by force_key_frames + may not be set accurately because of rounding issues, with the + consequence that a key frame time may result set just before the + specified time. For constant frame rate videos a value of + 1/(2*frame_rate) should address the worst case mismatch between the + specified time and the time set by force_key_frames. + + segment_times times + Specify a list of split points. times contains a list of comma + separated duration specifications, in increasing order. See also + the segment_time option. + + segment_frames frames + Specify a list of split video frame numbers. frames contains a list + of comma separated integer numbers, in increasing order. + + This option specifies to start a new segment whenever a reference + stream key frame is found and the sequential number (starting from + 0) of the frame is greater or equal to the next value in the list. + + segment_wrap limit + Wrap around segment index once it reaches limit. + + segment_start_number number + Set the sequence number of the first segment. Defaults to 0. + + strftime 1|0 + Use the "strftime" function to define the name of the new segments + to write. If this is selected, the output segment name must contain + a "strftime" function template. Default value is 0. + + break_non_keyframes 1|0 + If enabled, allow segments to start on frames other than keyframes. + This improves behavior on some players when the time between + keyframes is inconsistent, but may make things worse on others, and + can cause some oddities during seeking. Defaults to 0. + + reset_timestamps 1|0 + Reset timestamps at the beginning of each segment, so that each + segment will start with near-zero timestamps. It is meant to ease + the playback of the generated segments. May not work with some + combinations of muxers/codecs. It is set to 0 by default. + + initial_offset offset + Specify timestamp offset to apply to the output packet timestamps. + The argument must be a time duration specification, and defaults to + 0. + + write_empty_segments 1|0 + If enabled, write an empty segment if there are no packets during + the period a segment would usually span. Otherwise, the segment + will be filled with the next packet written. Defaults to 0. + + Make sure to require a closed GOP when encoding and to set the GOP size + to fit your segment time constraint. + + Examples + + o Remux the content of file in.mkv to a list of segments out-000.nut, + out-001.nut, etc., and write the list of generated segments to + out.list: + + ffmpeg -i in.mkv -codec hevc -flags +cgop -g 60 -map 0 -f segment -segment_list out.list out%03d.nut + + o Segment input and set output format options for the output + segments: + + ffmpeg -i in.mkv -f segment -segment_time 10 -segment_format_options movflags=+faststart out%03d.mp4 + + o Segment the input file according to the split points specified by + the segment_times option: + + ffmpeg -i in.mkv -codec copy -map 0 -f segment -segment_list out.csv -segment_times 1,2,3,5,8,13,21 out%03d.nut + + o Use the ffmpeg force_key_frames option to force key frames in the + input at the specified location, together with the segment option + segment_time_delta to account for possible roundings operated when + setting key frame times. + + ffmpeg -i in.mkv -force_key_frames 1,2,3,5,8,13,21 -codec:v mpeg4 -codec:a pcm_s16le -map 0 \ + -f segment -segment_list out.csv -segment_times 1,2,3,5,8,13,21 -segment_time_delta 0.05 out%03d.nut + + In order to force key frames on the input file, transcoding is + required. + + o Segment the input file by splitting the input file according to the + frame numbers sequence specified with the segment_frames option: + + ffmpeg -i in.mkv -codec copy -map 0 -f segment -segment_list out.csv -segment_frames 100,200,300,500,800 out%03d.nut + + o Convert the in.mkv to TS segments using the "libx264" and "aac" + encoders: + + ffmpeg -i in.mkv -map 0 -codec:v libx264 -codec:a aac -f ssegment -segment_list out.list out%03d.ts + + o Segment the input file, and create an M3U8 live playlist (can be + used as live HLS source): + + ffmpeg -re -i in.mkv -codec copy -map 0 -f segment -segment_list playlist.m3u8 \ + -segment_list_flags +live -segment_time 10 out%03d.mkv + + smoothstreaming + Smooth Streaming muxer generates a set of files (Manifest, chunks) + suitable for serving with conventional web server. + + window_size + Specify the number of fragments kept in the manifest. Default 0 + (keep all). + + extra_window_size + Specify the number of fragments kept outside of the manifest before + removing from disk. Default 5. + + lookahead_count + Specify the number of lookahead fragments. Default 2. + + min_frag_duration + Specify the minimum fragment duration (in microseconds). Default + 5000000. + + remove_at_exit + Specify whether to remove all fragments when finished. Default 0 + (do not remove). + + fifo + The fifo pseudo-muxer allows the separation of encoding and muxing by + using first-in-first-out queue and running the actual muxer in a + separate thread. This is especially useful in combination with the tee + muxer and can be used to send data to several destinations with + different reliability/writing speed/latency. + + API users should be aware that callback functions (interrupt_callback, + io_open and io_close) used within its AVFormatContext must be thread- + safe. + + The behavior of the fifo muxer if the queue fills up or if the output + fails is selectable, + + o output can be transparently restarted with configurable delay + between retries based on real time or time of the processed stream. + + o encoding can be blocked during temporary failure, or continue + transparently dropping packets in case fifo queue fills up. + + fifo_format + Specify the format name. Useful if it cannot be guessed from the + output name suffix. + + queue_size + Specify size of the queue (number of packets). Default value is 60. + + format_opts + Specify format options for the underlying muxer. Muxer options can + be specified as a list of key=value pairs separated by ':'. + + drop_pkts_on_overflow bool + If set to 1 (true), in case the fifo queue fills up, packets will + be dropped rather than blocking the encoder. This makes it possible + to continue streaming without delaying the input, at the cost of + omitting part of the stream. By default this option is set to 0 + (false), so in such cases the encoder will be blocked until the + muxer processes some of the packets and none of them is lost. + + attempt_recovery bool + If failure occurs, attempt to recover the output. This is + especially useful when used with network output, since it makes it + possible to restart streaming transparently. By default this + option is set to 0 (false). + + max_recovery_attempts + Sets maximum number of successive unsuccessful recovery attempts + after which the output fails permanently. By default this option is + set to 0 (unlimited). + + recovery_wait_time duration + Waiting time before the next recovery attempt after previous + unsuccessful recovery attempt. Default value is 5 seconds. + + recovery_wait_streamtime bool + If set to 0 (false), the real time is used when waiting for the + recovery attempt (i.e. the recovery will be attempted after at + least recovery_wait_time seconds). If set to 1 (true), the time of + the processed stream is taken into account instead (i.e. the + recovery will be attempted after at least recovery_wait_time + seconds of the stream is omitted). By default, this option is set + to 0 (false). + + recover_any_error bool + If set to 1 (true), recovery will be attempted regardless of type + of the error causing the failure. By default this option is set to + 0 (false) and in case of certain (usually permanent) errors the + recovery is not attempted even when attempt_recovery is set to 1. + + restart_with_keyframe bool + Specify whether to wait for the keyframe after recovering from + queue overflow or failure. This option is set to 0 (false) by + default. + + Examples + + o Stream something to rtmp server, continue processing the stream at + real-time rate even in case of temporary failure (network outage) + and attempt to recover streaming every second indefinitely. + + ffmpeg -re -i ... -c:v libx264 -c:a aac -f fifo -fifo_format flv -map 0:v -map 0:a + -drop_pkts_on_overflow 1 -attempt_recovery 1 -recovery_wait_time 1 rtmp://example.com/live/stream_name + + tee + The tee muxer can be used to write the same data to several outputs, + such as files or streams. It can be used, for example, to stream a + video over a network and save it to disk at the same time. + + It is different from specifying several outputs to the ffmpeg command- + line tool. With the tee muxer, the audio and video data will be encoded + only once. With conventional multiple outputs, multiple encoding + operations in parallel are initiated, which can be a very expensive + process. The tee muxer is not useful when using the libavformat API + directly because it is then possible to feed the same packets to + several muxers directly. + + Since the tee muxer does not represent any particular output format, + ffmpeg cannot auto-select output streams. So all streams intended for + output must be specified using "-map". See the examples below. + + Some encoders may need different options depending on the output + format; the auto-detection of this can not work with the tee muxer, so + they need to be explicitly specified. The main example is the + global_header flag. + + The slave outputs are specified in the file name given to the muxer, + separated by '|'. If any of the slave name contains the '|' separator, + leading or trailing spaces or any special character, those must be + escaped (see the "Quoting and escaping" section in the ffmpeg-utils(1) + manual). + + Options + + use_fifo bool + If set to 1, slave outputs will be processed in separate threads + using the fifo muxer. This allows to compensate for different + speed/latency/reliability of outputs and setup transparent + recovery. By default this feature is turned off. + + fifo_options + Options to pass to fifo pseudo-muxer instances. See fifo. + + Muxer options can be specified for each slave by prepending them as a + list of key=value pairs separated by ':', between square brackets. If + the options values contain a special character or the ':' separator, + they must be escaped; note that this is a second level escaping. + + The following special options are also recognized: + + f Specify the format name. Required if it cannot be guessed from the + output URL. + + bsfs[/spec] + Specify a list of bitstream filters to apply to the specified + output. + + It is possible to specify to which streams a given bitstream filter + applies, by appending a stream specifier to the option separated by + "/". spec must be a stream specifier (see Format stream + specifiers). + + If the stream specifier is not specified, the bitstream filters + will be applied to all streams in the output. This will cause that + output operation to fail if the output contains streams to which + the bitstream filter cannot be applied e.g. "h264_mp4toannexb" + being applied to an output containing an audio stream. + + Options for a bitstream filter must be specified in the form of + "opt=value". + + Several bitstream filters can be specified, separated by ",". + + use_fifo bool + This allows to override tee muxer use_fifo option for individual + slave muxer. + + fifo_options + This allows to override tee muxer fifo_options for individual slave + muxer. See fifo. + + select + Select the streams that should be mapped to the slave output, + specified by a stream specifier. If not specified, this defaults to + all the mapped streams. This will cause that output operation to + fail if the output format does not accept all mapped streams. + + You may use multiple stream specifiers separated by commas (",") + e.g.: "a:0,v" + + onfail + Specify behaviour on output failure. This can be set to either + "abort" (which is default) or "ignore". "abort" will cause whole + process to fail in case of failure on this slave output. "ignore" + will ignore failure on this output, so other outputs will continue + without being affected. + + Examples + + o Encode something and both archive it in a WebM file and stream it + as MPEG-TS over UDP: + + ffmpeg -i ... -c:v libx264 -c:a mp2 -f tee -map 0:v -map 0:a + "archive-20121107.mkv|[f=mpegts]udp://10.0.1.255:1234/" + + o As above, but continue streaming even if output to local file fails + (for example local drive fills up): + + ffmpeg -i ... -c:v libx264 -c:a mp2 -f tee -map 0:v -map 0:a + "[onfail=ignore]archive-20121107.mkv|[f=mpegts]udp://10.0.1.255:1234/" + + o Use ffmpeg to encode the input, and send the output to three + different destinations. The "dump_extra" bitstream filter is used + to add extradata information to all the output video keyframes + packets, as requested by the MPEG-TS format. The select option is + applied to out.aac in order to make it contain only audio packets. + + ffmpeg -i ... -map 0 -flags +global_header -c:v libx264 -c:a aac + -f tee "[bsfs/v=dump_extra=freq=keyframe]out.ts|[movflags=+faststart]out.mp4|[select=a]out.aac" + + o As above, but select only stream "a:1" for the audio output. Note + that a second level escaping must be performed, as ":" is a special + character used to separate options. + + ffmpeg -i ... -map 0 -flags +global_header -c:v libx264 -c:a aac + -f tee "[bsfs/v=dump_extra=freq=keyframe]out.ts|[movflags=+faststart]out.mp4|[select=\'a:1\']out.aac" + + webm_dash_manifest + WebM DASH Manifest muxer. + + This muxer implements the WebM DASH Manifest specification to generate + the DASH manifest XML. It also supports manifest generation for DASH + live streams. + + For more information see: + + o WebM DASH Specification: + + + o ISO DASH Specification: + + + Options + + This muxer supports the following options: + + adaptation_sets + This option has the following syntax: "id=x,streams=a,b,c + id=y,streams=d,e" where x and y are the unique identifiers of the + adaptation sets and a,b,c,d and e are the indices of the + corresponding audio and video streams. Any number of adaptation + sets can be added using this option. + + live + Set this to 1 to create a live stream DASH Manifest. Default: 0. + + chunk_start_index + Start index of the first chunk. This will go in the startNumber + attribute of the SegmentTemplate element in the manifest. Default: + 0. + + chunk_duration_ms + Duration of each chunk in milliseconds. This will go in the + duration attribute of the SegmentTemplate element in the manifest. + Default: 1000. + + utc_timing_url + URL of the page that will return the UTC timestamp in ISO format. + This will go in the value attribute of the UTCTiming element in the + manifest. Default: None. + + time_shift_buffer_depth + Smallest time (in seconds) shifting buffer for which any + Representation is guaranteed to be available. This will go in the + timeShiftBufferDepth attribute of the MPD element. Default: 60. + + minimum_update_period + Minimum update period (in seconds) of the manifest. This will go in + the minimumUpdatePeriod attribute of the MPD element. Default: 0. + + Example + + ffmpeg -f webm_dash_manifest -i video1.webm \ + -f webm_dash_manifest -i video2.webm \ + -f webm_dash_manifest -i audio1.webm \ + -f webm_dash_manifest -i audio2.webm \ + -map 0 -map 1 -map 2 -map 3 \ + -c copy \ + -f webm_dash_manifest \ + -adaptation_sets "id=0,streams=0,1 id=1,streams=2,3" \ + manifest.xml + + webm_chunk + WebM Live Chunk Muxer. + + This muxer writes out WebM headers and chunks as separate files which + can be consumed by clients that support WebM Live streams via DASH. + + Options + + This muxer supports the following options: + + chunk_start_index + Index of the first chunk (defaults to 0). + + header + Filename of the header where the initialization data will be + written. + + audio_chunk_duration + Duration of each audio chunk in milliseconds (defaults to 5000). + + Example + + ffmpeg -f v4l2 -i /dev/video0 \ + -f alsa -i hw:0 \ + -map 0:0 \ + -c:v libvpx-vp9 \ + -s 640x360 -keyint_min 30 -g 30 \ + -f webm_chunk \ + -header webm_live_video_360.hdr \ + -chunk_start_index 1 \ + webm_live_video_360_%d.chk \ + -map 1:0 \ + -c:a libvorbis \ + -b:a 128k \ + -f webm_chunk \ + -header webm_live_audio_128.hdr \ + -chunk_start_index 1 \ + -audio_chunk_duration 1000 \ + webm_live_audio_128_%d.chk + +METADATA + FFmpeg is able to dump metadata from media files into a simple + UTF-8-encoded INI-like text file and then load it back using the + metadata muxer/demuxer. + + The file format is as follows: + + 1. A file consists of a header and a number of metadata tags divided + into sections, each on its own line. + + 2. The header is a ;FFMETADATA string, followed by a version number + (now 1). + + 3. Metadata tags are of the form key=value + + 4. Immediately after header follows global metadata + + 5. After global metadata there may be sections with + per-stream/per-chapter metadata. + + 6. A section starts with the section name in uppercase (i.e. STREAM or + CHAPTER) in brackets ([, ]) and ends with next section or end of + file. + + 7. At the beginning of a chapter section there may be an optional + timebase to be used for start/end values. It must be in form + TIMEBASE=num/den, where num and den are integers. If the timebase + is missing then start/end times are assumed to be in nanoseconds. + + Next a chapter section must contain chapter start and end times in + form START=num, END=num, where num is a positive integer. + + 8. Empty lines and lines starting with ; or # are ignored. + + 9. Metadata keys or values containing special characters (=, ;, #, \ + and a newline) must be escaped with a backslash \. + + 10. Note that whitespace in metadata (e.g. foo = bar) is considered to + be a part of the tag (in the example above key is foo , value is + bar). + + A ffmetadata file might look like this: + + ;FFMETADATA1 + title=bike\\shed + ;this is a comment + artist=FFmpeg troll team + + [CHAPTER] + TIMEBASE=1/1000 + START=0 + #chapter ends at 0:01:00 + END=60000 + title=chapter \#1 + [STREAM] + title=multi\ + line + + By using the ffmetadata muxer and demuxer it is possible to extract + metadata from an input file to an ffmetadata file, and then transcode + the file into an output file with the edited ffmetadata file. + + Extracting an ffmetadata file with ffmpeg goes as follows: + + ffmpeg -i INPUT -f ffmetadata FFMETADATAFILE + + Reinserting edited metadata information from the FFMETADATAFILE file + can be done as: + + ffmpeg -i INPUT -i FFMETADATAFILE -map_metadata 1 -codec copy OUTPUT + +PROTOCOL OPTIONS + The libavformat library provides some generic global options, which can + be set on all the protocols. In addition each protocol may support so- + called private options, which are specific for that component. + + Options may be set by specifying -option value in the FFmpeg tools, or + by setting the value explicitly in the "AVFormatContext" options or + using the libavutil/opt.h API for programmatic use. + + The list of supported options follows: + + protocol_whitelist list (input) + Set a ","-separated list of allowed protocols. "ALL" matches all + protocols. Protocols prefixed by "-" are disabled. All protocols + are allowed by default but protocols used by an another protocol + (nested protocols) are restricted to a per protocol subset. + +PROTOCOLS + Protocols are configured elements in FFmpeg that enable access to + resources that require specific protocols. + + When you configure your FFmpeg build, all the supported protocols are + enabled by default. You can list all available ones using the configure + option "--list-protocols". + + You can disable all the protocols using the configure option + "--disable-protocols", and selectively enable a protocol using the + option "--enable-protocol=PROTOCOL", or you can disable a particular + protocol using the option "--disable-protocol=PROTOCOL". + + The option "-protocols" of the ff* tools will display the list of + supported protocols. + + All protocols accept the following options: + + rw_timeout + Maximum time to wait for (network) read/write operations to + complete, in microseconds. + + A description of the currently available protocols follows. + + async + Asynchronous data filling wrapper for input stream. + + Fill data in a background thread, to decouple I/O operation from demux + thread. + + async: + async:http://host/resource + async:cache:http://host/resource + + bluray + Read BluRay playlist. + + The accepted options are: + + angle + BluRay angle + + chapter + Start chapter (1...N) + + playlist + Playlist to read (BDMV/PLAYLIST/?????.mpls) + + Examples: + + Read longest playlist from BluRay mounted to /mnt/bluray: + + bluray:/mnt/bluray + + Read angle 2 of playlist 4 from BluRay mounted to /mnt/bluray, start + from chapter 2: + + -playlist 4 -angle 2 -chapter 2 bluray:/mnt/bluray + + cache + Caching wrapper for input stream. + + Cache the input stream to temporary file. It brings seeking capability + to live streams. + + cache: + + concat + Physical concatenation protocol. + + Read and seek from many resources in sequence as if they were a unique + resource. + + A URL accepted by this protocol has the syntax: + + concat:||...| + + where URL1, URL2, ..., URLN are the urls of the resource to be + concatenated, each one possibly specifying a distinct protocol. + + For example to read a sequence of files split1.mpeg, split2.mpeg, + split3.mpeg with ffplay use the command: + + ffplay concat:split1.mpeg\|split2.mpeg\|split3.mpeg + + Note that you may need to escape the character "|" which is special for + many shells. + + crypto + AES-encrypted stream reading protocol. + + The accepted options are: + + key Set the AES decryption key binary block from given hexadecimal + representation. + + iv Set the AES decryption initialization vector binary block from + given hexadecimal representation. + + Accepted URL formats: + + crypto: + crypto+ + + data + Data in-line in the URI. See + . + + For example, to convert a GIF file given inline with ffmpeg: + + ffmpeg -i "data:image/gif;base64,R0lGODdhCAAIAMIEAAAAAAAA//8AAP//AP///////////////ywAAAAACAAIAAADF0gEDLojDgdGiJdJqUX02iB4E8Q9jUMkADs=" smiley.png + + file + File access protocol. + + Read from or write to a file. + + A file URL can have the form: + + file: + + where filename is the path of the file to read. + + An URL that does not have a protocol prefix will be assumed to be a + file URL. Depending on the build, an URL that looks like a Windows path + with the drive letter at the beginning will also be assumed to be a + file URL (usually not the case in builds for unix-like systems). + + For example to read from a file input.mpeg with ffmpeg use the command: + + ffmpeg -i file:input.mpeg output.mpeg + + This protocol accepts the following options: + + truncate + Truncate existing files on write, if set to 1. A value of 0 + prevents truncating. Default value is 1. + + blocksize + Set I/O operation maximum block size, in bytes. Default value is + "INT_MAX", which results in not limiting the requested block size. + Setting this value reasonably low improves user termination request + reaction time, which is valuable for files on slow medium. + + follow + If set to 1, the protocol will retry reading at the end of the + file, allowing reading files that still are being written. In order + for this to terminate, you either need to use the rw_timeout + option, or use the interrupt callback (for API users). + + seekable + Controls if seekability is advertised on the file. 0 means non- + seekable, -1 means auto (seekable for normal files, non-seekable + for named pipes). + + Many demuxers handle seekable and non-seekable resources + differently, overriding this might speed up opening certain files + at the cost of losing some features (e.g. accurate seeking). + + ftp + FTP (File Transfer Protocol). + + Read from or write to remote resources using FTP protocol. + + Following syntax is required. + + ftp://[user[:password]@]server[:port]/path/to/remote/resource.mpeg + + This protocol accepts the following options. + + timeout + Set timeout in microseconds of socket I/O operations used by the + underlying low level operation. By default it is set to -1, which + means that the timeout is not specified. + + ftp-anonymous-password + Password used when login as anonymous user. Typically an e-mail + address should be used. + + ftp-write-seekable + Control seekability of connection during encoding. If set to 1 the + resource is supposed to be seekable, if set to 0 it is assumed not + to be seekable. Default value is 0. + + NOTE: Protocol can be used as output, but it is recommended to not do + it, unless special care is taken (tests, customized server + configuration etc.). Different FTP servers behave in different way + during seek operation. ff* tools may produce incomplete content due to + server limitations. + + gopher + Gopher protocol. + + hls + Read Apple HTTP Live Streaming compliant segmented stream as a uniform + one. The M3U8 playlists describing the segments can be remote HTTP + resources or local files, accessed using the standard file protocol. + The nested protocol is declared by specifying "+proto" after the hls + URI scheme name, where proto is either "file" or "http". + + hls+http://host/path/to/remote/resource.m3u8 + hls+file://path/to/local/resource.m3u8 + + Using this protocol is discouraged - the hls demuxer should work just + as well (if not, please report the issues) and is more complete. To + use the hls demuxer instead, simply use the direct URLs to the m3u8 + files. + + http + HTTP (Hyper Text Transfer Protocol). + + This protocol accepts the following options: + + seekable + Control seekability of connection. If set to 1 the resource is + supposed to be seekable, if set to 0 it is assumed not to be + seekable, if set to -1 it will try to autodetect if it is seekable. + Default value is -1. + + chunked_post + If set to 1 use chunked Transfer-Encoding for posts, default is 1. + + content_type + Set a specific content type for the POST messages or for listen + mode. + + http_proxy + set HTTP proxy to tunnel through e.g. http://example.com:1234 + + headers + Set custom HTTP headers, can override built in default headers. The + value must be a string encoding the headers. + + multiple_requests + Use persistent connections if set to 1, default is 0. + + post_data + Set custom HTTP post data. + + referer + Set the Referer header. Include 'Referer: URL' header in HTTP + request. + + user_agent + Override the User-Agent header. If not specified the protocol will + use a string describing the libavformat build. ("Lavf/") + + user-agent + This is a deprecated option, you can use user_agent instead it. + + timeout + Set timeout in microseconds of socket I/O operations used by the + underlying low level operation. By default it is set to -1, which + means that the timeout is not specified. + + reconnect_at_eof + If set then eof is treated like an error and causes reconnection, + this is useful for live / endless streams. + + reconnect_streamed + If set then even streamed/non seekable streams will be reconnected + on errors. + + reconnect_delay_max + Sets the maximum delay in seconds after which to give up + reconnecting + + mime_type + Export the MIME type. + + http_version + Exports the HTTP response version number. Usually "1.0" or "1.1". + + icy If set to 1 request ICY (SHOUTcast) metadata from the server. If + the server supports this, the metadata has to be retrieved by the + application by reading the icy_metadata_headers and + icy_metadata_packet options. The default is 1. + + icy_metadata_headers + If the server supports ICY metadata, this contains the ICY-specific + HTTP reply headers, separated by newline characters. + + icy_metadata_packet + If the server supports ICY metadata, and icy was set to 1, this + contains the last non-empty metadata packet sent by the server. It + should be polled in regular intervals by applications interested in + mid-stream metadata updates. + + cookies + Set the cookies to be sent in future requests. The format of each + cookie is the same as the value of a Set-Cookie HTTP response + field. Multiple cookies can be delimited by a newline character. + + offset + Set initial byte offset. + + end_offset + Try to limit the request to bytes preceding this offset. + + method + When used as a client option it sets the HTTP method for the + request. + + When used as a server option it sets the HTTP method that is going + to be expected from the client(s). If the expected and the + received HTTP method do not match the client will be given a Bad + Request response. When unset the HTTP method is not checked for + now. This will be replaced by autodetection in the future. + + listen + If set to 1 enables experimental HTTP server. This can be used to + send data when used as an output option, or read data from a client + with HTTP POST when used as an input option. If set to 2 enables + experimental multi-client HTTP server. This is not yet implemented + in ffmpeg.c and thus must not be used as a command line option. + + # Server side (sending): + ffmpeg -i somefile.ogg -c copy -listen 1 -f ogg http://: + + # Client side (receiving): + ffmpeg -i http://: -c copy somefile.ogg + + # Client can also be done with wget: + wget http://: -O somefile.ogg + + # Server side (receiving): + ffmpeg -listen 1 -i http://: -c copy somefile.ogg + + # Client side (sending): + ffmpeg -i somefile.ogg -chunked_post 0 -c copy -f ogg http://: + + # Client can also be done with wget: + wget --post-file=somefile.ogg http://: + + send_expect_100 + Send an Expect: 100-continue header for POST. If set to 1 it will + send, if set to 0 it won't, if set to -1 it will try to send if it + is applicable. Default value is -1. + + HTTP Cookies + + Some HTTP requests will be denied unless cookie values are passed in + with the request. The cookies option allows these cookies to be + specified. At the very least, each cookie must specify a value along + with a path and domain. HTTP requests that match both the domain and + path will automatically include the cookie value in the HTTP Cookie + header field. Multiple cookies can be delimited by a newline. + + The required syntax to play a stream specifying a cookie is: + + ffplay -cookies "nlqptid=nltid=tsn; path=/; domain=somedomain.com;" http://somedomain.com/somestream.m3u8 + + Icecast + Icecast protocol (stream to Icecast servers) + + This protocol accepts the following options: + + ice_genre + Set the stream genre. + + ice_name + Set the stream name. + + ice_description + Set the stream description. + + ice_url + Set the stream website URL. + + ice_public + Set if the stream should be public. The default is 0 (not public). + + user_agent + Override the User-Agent header. If not specified a string of the + form "Lavf/" will be used. + + password + Set the Icecast mountpoint password. + + content_type + Set the stream content type. This must be set if it is different + from audio/mpeg. + + legacy_icecast + This enables support for Icecast versions < 2.4.0, that do not + support the HTTP PUT method but the SOURCE method. + + icecast://[[:]@]:/ + + mmst + MMS (Microsoft Media Server) protocol over TCP. + + mmsh + MMS (Microsoft Media Server) protocol over HTTP. + + The required syntax is: + + mmsh://[:][/][/] + + md5 + MD5 output protocol. + + Computes the MD5 hash of the data to be written, and on close writes + this to the designated output or stdout if none is specified. It can be + used to test muxers without writing an actual file. + + Some examples follow. + + # Write the MD5 hash of the encoded AVI file to the file output.avi.md5. + ffmpeg -i input.flv -f avi -y md5:output.avi.md5 + + # Write the MD5 hash of the encoded AVI file to stdout. + ffmpeg -i input.flv -f avi -y md5: + + Note that some formats (typically MOV) require the output protocol to + be seekable, so they will fail with the MD5 output protocol. + + pipe + UNIX pipe access protocol. + + Read and write from UNIX pipes. + + The accepted syntax is: + + pipe:[] + + number is the number corresponding to the file descriptor of the pipe + (e.g. 0 for stdin, 1 for stdout, 2 for stderr). If number is not + specified, by default the stdout file descriptor will be used for + writing, stdin for reading. + + For example to read from stdin with ffmpeg: + + cat test.wav | ffmpeg -i pipe:0 + # ...this is the same as... + cat test.wav | ffmpeg -i pipe: + + For writing to stdout with ffmpeg: + + ffmpeg -i test.wav -f avi pipe:1 | cat > test.avi + # ...this is the same as... + ffmpeg -i test.wav -f avi pipe: | cat > test.avi + + This protocol accepts the following options: + + blocksize + Set I/O operation maximum block size, in bytes. Default value is + "INT_MAX", which results in not limiting the requested block size. + Setting this value reasonably low improves user termination request + reaction time, which is valuable if data transmission is slow. + + Note that some formats (typically MOV), require the output protocol to + be seekable, so they will fail with the pipe output protocol. + + prompeg + Pro-MPEG Code of Practice #3 Release 2 FEC protocol. + + The Pro-MPEG CoP#3 FEC is a 2D parity-check forward error correction + mechanism for MPEG-2 Transport Streams sent over RTP. + + This protocol must be used in conjunction with the "rtp_mpegts" muxer + and the "rtp" protocol. + + The required syntax is: + + -f rtp_mpegts -fec prompeg=