You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tensorflow-image-classifica.../dlnd_image_classification.html

14005 lines
400 KiB
HTML

<!DOCTYPE html>
<html>
<head><meta charset="utf-8" />
<title>dlnd_image_classification</title><script src="https://unpkg.com/jupyter-js-widgets@2.0.*/dist/embed.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.10/require.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<style type="text/css">
/*!
*
* Twitter Bootstrap
*
*/
/*!
* 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;
-ms-text-size-adjust: 100%;
-webkit-text-size-adjust: 100%;
}
body {
margin: 0;
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
display: block;
}
audio,
canvas,
progress,
video {
display: inline-block;
vertical-align: baseline;
}
audio:not([controls]) {
display: none;
height: 0;
}
[hidden],
template {
display: none;
}
a {
background-color: transparent;
}
a:active,
a:hover {
outline: 0;
}
abbr[title] {
border-bottom: 1px dotted;
}
b,
strong {
font-weight: bold;
}
dfn {
font-style: italic;
}
h1 {
font-size: 2em;
margin: 0.67em 0;
}
mark {
background: #ff0;
color: #000;
}
small {
font-size: 80%;
}
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sup {
top: -0.5em;
}
sub {
bottom: -0.25em;
}
img {
border: 0;
}
svg:not(:root) {
overflow: hidden;
}
figure {
margin: 1em 40px;
}
hr {
box-sizing: content-box;
height: 0;
}
pre {
overflow: auto;
}
code,
kbd,
pre,
samp {
font-family: monospace, monospace;
font-size: 1em;
}
button,
input,
optgroup,
select,
textarea {
color: inherit;
font: inherit;
margin: 0;
}
button {
overflow: visible;
}
button,
select {
text-transform: none;
}
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
-webkit-appearance: button;
cursor: pointer;
}
button[disabled],
html input[disabled] {
cursor: default;
}
button::-moz-focus-inner,
input::-moz-focus-inner {
border: 0;
padding: 0;
}
input {
line-height: normal;
}
input[type="checkbox"],
input[type="radio"] {
box-sizing: border-box;
padding: 0;
}
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
height: auto;
}
input[type="search"] {
-webkit-appearance: textfield;
box-sizing: content-box;
}
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
fieldset {
border: 1px solid #c0c0c0;
margin: 0 2px;
padding: 0.35em 0.625em 0.75em;
}
legend {
border: 0;
padding: 0;
}
textarea {
overflow: auto;
}
optgroup {
font-weight: bold;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
td,
th {
padding: 0;
}
/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
@media print {
*,
*:before,
*:after {
background: transparent !important;
color: #000 !important;
box-shadow: none !important;
text-shadow: none !important;
}
a,
a:visited {
text-decoration: underline;
}
a[href]:after {
content: " (" attr(href) ")";
}
abbr[title]:after {
content: " (" attr(title) ")";
}
a[href^="#"]:after,
a[href^="javascript:"]:after {
content: "";
}
pre,
blockquote {
border: 1px solid #999;
page-break-inside: avoid;
}
thead {
display: table-header-group;
}
tr,
img {
page-break-inside: avoid;
}
img {
max-width: 100% !important;
}
p,
h2,
h3 {
orphans: 3;
widows: 3;
}
h2,
h3 {
page-break-after: avoid;
}
.navbar {
display: none;
}
.btn > .caret,
.dropup > .btn > .caret {
border-top-color: #000 !important;
}
.label {
border: 1px solid #000;
}
.table {
border-collapse: collapse !important;
}
.table td,
.table th {
background-color: #fff !important;
}
.table-bordered th,
.table-bordered td {
border: 1px solid #ddd !important;
}
}
@font-face {
font-family: 'Glyphicons Halflings';
src: url('../components/bootstrap/fonts/glyphicons-halflings-regular.eot');
src: url('../components/bootstrap/fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.woff') format('woff'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../components/bootstrap/fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
}
.glyphicon {
position: relative;
top: 1px;
display: inline-block;
font-family: 'Glyphicons Halflings';
font-style: normal;
font-weight: normal;
line-height: 1;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.glyphicon-asterisk:before {
content: "\002a";
}
.glyphicon-plus:before {
content: "\002b";
}
.glyphicon-euro:before,
.glyphicon-eur:before {
content: "\20ac";
}
.glyphicon-minus:before {
content: "\2212";
}
.glyphicon-cloud:before {
content: "\2601";
}
.glyphicon-envelope:before {
content: "\2709";
}
.glyphicon-pencil:before {
content: "\270f";
}
.glyphicon-glass:before {
content: "\e001";
}
.glyphicon-music:before {
content: "\e002";
}
.glyphicon-search:before {
content: "\e003";
}
.glyphicon-heart:before {
content: "\e005";
}
.glyphicon-star:before {
content: "\e006";
}
.glyphicon-star-empty:before {
content: "\e007";
}
.glyphicon-user:before {
content: "\e008";
}
.glyphicon-film:before {
content: "\e009";
}
.glyphicon-th-large:before {
content: "\e010";
}
.glyphicon-th:before {
content: "\e011";
}
.glyphicon-th-list:before {
content: "\e012";
}
.glyphicon-ok:before {
content: "\e013";
}
.glyphicon-remove:before {
content: "\e014";
}
.glyphicon-zoom-in:before {
content: "\e015";
}
.glyphicon-zoom-out:before {
content: "\e016";
}
.glyphicon-off:before {
content: "\e017";
}
.glyphicon-signal:before {
content: "\e018";
}
.glyphicon-cog:before {
content: "\e019";
}
.glyphicon-trash:before {
content: "\e020";
}
.glyphicon-home:before {
content: "\e021";
}
.glyphicon-file:before {
content: "\e022";
}
.glyphicon-time:before {
content: "\e023";
}
.glyphicon-road:before {
content: "\e024";
}
.glyphicon-download-alt:before {
content: "\e025";
}
.glyphicon-download:before {
content: "\e026";
}
.glyphicon-upload:before {
content: "\e027";
}
.glyphicon-inbox:before {
content: "\e028";
}
.glyphicon-play-circle:before {
content: "\e029";
}
.glyphicon-repeat:before {
content: "\e030";
}
.glyphicon-refresh:before {
content: "\e031";
}
.glyphicon-list-alt:before {
content: "\e032";
}
.glyphicon-lock:before {
content: "\e033";
}
.glyphicon-flag:before {
content: "\e034";
}
.glyphicon-headphones:before {
content: "\e035";
}
.glyphicon-volume-off:before {
content: "\e036";
}
.glyphicon-volume-down:before {
content: "\e037";
}
.glyphicon-volume-up:before {
content: "\e038";
}
.glyphicon-qrcode:before {
content: "\e039";
}
.glyphicon-barcode:before {
content: "\e040";
}
.glyphicon-tag:before {
content: "\e041";
}
.glyphicon-tags:before {
content: "\e042";
}
.glyphicon-book:before {
content: "\e043";
}
.glyphicon-bookmark:before {
content: "\e044";
}
.glyphicon-print:before {
content: "\e045";
}
.glyphicon-camera:before {
content: "\e046";
}
.glyphicon-font:before {
content: "\e047";
}
.glyphicon-bold:before {
content: "\e048";
}
.glyphicon-italic:before {
content: "\e049";
}
.glyphicon-text-height:before {
content: "\e050";
}
.glyphicon-text-width:before {
content: "\e051";
}
.glyphicon-align-left:before {
content: "\e052";
}
.glyphicon-align-center:before {
content: "\e053";
}
.glyphicon-align-right:before {
content: "\e054";
}
.glyphicon-align-justify:before {
content: "\e055";
}
.glyphicon-list:before {
content: "\e056";
}
.glyphicon-indent-left:before {
content: "\e057";
}
.glyphicon-indent-right:before {
content: "\e058";
}
.glyphicon-facetime-video:before {
content: "\e059";
}
.glyphicon-picture:before {
content: "\e060";
}
.glyphicon-map-marker:before {
content: "\e062";
}
.glyphicon-adjust:before {
content: "\e063";
}
.glyphicon-tint:before {
content: "\e064";
}
.glyphicon-edit:before {
content: "\e065";
}
.glyphicon-share:before {
content: "\e066";
}
.glyphicon-check:before {
content: "\e067";
}
.glyphicon-move:before {
content: "\e068";
}
.glyphicon-step-backward:before {
content: "\e069";
}
.glyphicon-fast-backward:before {
content: "\e070";
}
.glyphicon-backward:before {
content: "\e071";
}
.glyphicon-play:before {
content: "\e072";
}
.glyphicon-pause:before {
content: "\e073";
}
.glyphicon-stop:before {
content: "\e074";
}
.glyphicon-forward:before {
content: "\e075";
}
.glyphicon-fast-forward:before {
content: "\e076";
}
.glyphicon-step-forward:before {
content: "\e077";
}
.glyphicon-eject:before {
content: "\e078";
}
.glyphicon-chevron-left:before {
content: "\e079";
}
.glyphicon-chevron-right:before {
content: "\e080";
}
.glyphicon-plus-sign:before {
content: "\e081";
}
.glyphicon-minus-sign:before {
content: "\e082";
}
.glyphicon-remove-sign:before {
content: "\e083";
}
.glyphicon-ok-sign:before {
content: "\e084";
}
.glyphicon-question-sign:before {
content: "\e085";
}
.glyphicon-info-sign:before {
content: "\e086";
}
.glyphicon-screenshot:before {
content: "\e087";
}
.glyphicon-remove-circle:before {
content: "\e088";
}
.glyphicon-ok-circle:before {
content: "\e089";
}
.glyphicon-ban-circle:before {
content: "\e090";
}
.glyphicon-arrow-left:before {
content: "\e091";
}
.glyphicon-arrow-right:before {
content: "\e092";
}
.glyphicon-arrow-up:before {
content: "\e093";
}
.glyphicon-arrow-down:before {
content: "\e094";
}
.glyphicon-share-alt:before {
content: "\e095";
}
.glyphicon-resize-full:before {
content: "\e096";
}
.glyphicon-resize-small:before {
content: "\e097";
}
.glyphicon-exclamation-sign:before {
content: "\e101";
}
.glyphicon-gift:before {
content: "\e102";
}
.glyphicon-leaf:before {
content: "\e103";
}
.glyphicon-fire:before {
content: "\e104";
}
.glyphicon-eye-open:before {
content: "\e105";
}
.glyphicon-eye-close:before {
content: "\e106";
}
.glyphicon-warning-sign:before {
content: "\e107";
}
.glyphicon-plane:before {
content: "\e108";
}
.glyphicon-calendar:before {
content: "\e109";
}
.glyphicon-random:before {
content: "\e110";
}
.glyphicon-comment:before {
content: "\e111";
}
.glyphicon-magnet:before {
content: "\e112";
}
.glyphicon-chevron-up:before {
content: "\e113";
}
.glyphicon-chevron-down:before {
content: "\e114";
}
.glyphicon-retweet:before {
content: "\e115";
}
.glyphicon-shopping-cart:before {
content: "\e116";
}
.glyphicon-folder-close:before {
content: "\e117";
}
.glyphicon-folder-open:before {
content: "\e118";
}
.glyphicon-resize-vertical:before {
content: "\e119";
}
.glyphicon-resize-horizontal:before {
content: "\e120";
}
.glyphicon-hdd:before {
content: "\e121";
}
.glyphicon-bullhorn:before {
content: "\e122";
}
.glyphicon-bell:before {
content: "\e123";
}
.glyphicon-certificate:before {
content: "\e124";
}
.glyphicon-thumbs-up:before {
content: "\e125";
}
.glyphicon-thumbs-down:before {
content: "\e126";
}
.glyphicon-hand-right:before {
content: "\e127";
}
.glyphicon-hand-left:before {
content: "\e128";
}
.glyphicon-hand-up:before {
content: "\e129";
}
.glyphicon-hand-down:before {
content: "\e130";
}
.glyphicon-circle-arrow-right:before {
content: "\e131";
}
.glyphicon-circle-arrow-left:before {
content: "\e132";
}
.glyphicon-circle-arrow-up:before {
content: "\e133";
}
.glyphicon-circle-arrow-down:before {
content: "\e134";
}
.glyphicon-globe:before {
content: "\e135";
}
.glyphicon-wrench:before {
content: "\e136";
}
.glyphicon-tasks:before {
content: "\e137";
}
.glyphicon-filter:before {
content: "\e138";
}
.glyphicon-briefcase:before {
content: "\e139";
}
.glyphicon-fullscreen:before {
content: "\e140";
}
.glyphicon-dashboard:before {
content: "\e141";
}
.glyphicon-paperclip:before {
content: "\e142";
}
.glyphicon-heart-empty:before {
content: "\e143";
}
.glyphicon-link:before {
content: "\e144";
}
.glyphicon-phone:before {
content: "\e145";
}
.glyphicon-pushpin:before {
content: "\e146";
}
.glyphicon-usd:before {
content: "\e148";
}
.glyphicon-gbp:before {
content: "\e149";
}
.glyphicon-sort:before {
content: "\e150";
}
.glyphicon-sort-by-alphabet:before {
content: "\e151";
}
.glyphicon-sort-by-alphabet-alt:before {
content: "\e152";
}
.glyphicon-sort-by-order:before {
content: "\e153";
}
.glyphicon-sort-by-order-alt:before {
content: "\e154";
}
.glyphicon-sort-by-attributes:before {
content: "\e155";
}
.glyphicon-sort-by-attributes-alt:before {
content: "\e156";
}
.glyphicon-unchecked:before {
content: "\e157";
}
.glyphicon-expand:before {
content: "\e158";
}
.glyphicon-collapse-down:before {
content: "\e159";
}
.glyphicon-collapse-up:before {
content: "\e160";
}
.glyphicon-log-in:before {
content: "\e161";
}
.glyphicon-flash:before {
content: "\e162";
}
.glyphicon-log-out:before {
content: "\e163";
}
.glyphicon-new-window:before {
content: "\e164";
}
.glyphicon-record:before {
content: "\e165";
}
.glyphicon-save:before {
content: "\e166";
}
.glyphicon-open:before {
content: "\e167";
}
.glyphicon-saved:before {
content: "\e168";
}
.glyphicon-import:before {
content: "\e169";
}
.glyphicon-export:before {
content: "\e170";
}
.glyphicon-send:before {
content: "\e171";
}
.glyphicon-floppy-disk:before {
content: "\e172";
}
.glyphicon-floppy-saved:before {
content: "\e173";
}
.glyphicon-floppy-remove:before {
content: "\e174";
}
.glyphicon-floppy-save:before {
content: "\e175";
}
.glyphicon-floppy-open:before {
content: "\e176";
}
.glyphicon-credit-card:before {
content: "\e177";
}
.glyphicon-transfer:before {
content: "\e178";
}
.glyphicon-cutlery:before {
content: "\e179";
}
.glyphicon-header:before {
content: "\e180";
}
.glyphicon-compressed:before {
content: "\e181";
}
.glyphicon-earphone:before {
content: "\e182";
}
.glyphicon-phone-alt:before {
content: "\e183";
}
.glyphicon-tower:before {
content: "\e184";
}
.glyphicon-stats:before {
content: "\e185";
}
.glyphicon-sd-video:before {
content: "\e186";
}
.glyphicon-hd-video:before {
content: "\e187";
}
.glyphicon-subtitles:before {
content: "\e188";
}
.glyphicon-sound-stereo:before {
content: "\e189";
}
.glyphicon-sound-dolby:before {
content: "\e190";
}
.glyphicon-sound-5-1:before {
content: "\e191";
}
.glyphicon-sound-6-1:before {
content: "\e192";
}
.glyphicon-sound-7-1:before {
content: "\e193";
}
.glyphicon-copyright-mark:before {
content: "\e194";
}
.glyphicon-registration-mark:before {
content: "\e195";
}
.glyphicon-cloud-download:before {
content: "\e197";
}
.glyphicon-cloud-upload:before {
content: "\e198";
}
.glyphicon-tree-conifer:before {
content: "\e199";
}
.glyphicon-tree-deciduous:before {
content: "\e200";
}
.glyphicon-cd:before {
content: "\e201";
}
.glyphicon-save-file:before {
content: "\e202";
}
.glyphicon-open-file:before {
content: "\e203";
}
.glyphicon-level-up:before {
content: "\e204";
}
.glyphicon-copy:before {
content: "\e205";
}
.glyphicon-paste:before {
content: "\e206";
}
.glyphicon-alert:before {
content: "\e209";
}
.glyphicon-equalizer:before {
content: "\e210";
}
.glyphicon-king:before {
content: "\e211";
}
.glyphicon-queen:before {
content: "\e212";
}
.glyphicon-pawn:before {
content: "\e213";
}
.glyphicon-bishop:before {
content: "\e214";
}
.glyphicon-knight:before {
content: "\e215";
}
.glyphicon-baby-formula:before {
content: "\e216";
}
.glyphicon-tent:before {
content: "\26fa";
}
.glyphicon-blackboard:before {
content: "\e218";
}
.glyphicon-bed:before {
content: "\e219";
}
.glyphicon-apple:before {
content: "\f8ff";
}
.glyphicon-erase:before {
content: "\e221";
}
.glyphicon-hourglass:before {
content: "\231b";
}
.glyphicon-lamp:before {
content: "\e223";
}
.glyphicon-duplicate:before {
content: "\e224";
}
.glyphicon-piggy-bank:before {
content: "\e225";
}
.glyphicon-scissors:before {
content: "\e226";
}
.glyphicon-bitcoin:before {
content: "\e227";
}
.glyphicon-btc:before {
content: "\e227";
}
.glyphicon-xbt:before {
content: "\e227";
}
.glyphicon-yen:before {
content: "\00a5";
}
.glyphicon-jpy:before {
content: "\00a5";
}
.glyphicon-ruble:before {
content: "\20bd";
}
.glyphicon-rub:before {
content: "\20bd";
}
.glyphicon-scale:before {
content: "\e230";
}
.glyphicon-ice-lolly:before {
content: "\e231";
}
.glyphicon-ice-lolly-tasted:before {
content: "\e232";
}
.glyphicon-education:before {
content: "\e233";
}
.glyphicon-option-horizontal:before {
content: "\e234";
}
.glyphicon-option-vertical:before {
content: "\e235";
}
.glyphicon-menu-hamburger:before {
content: "\e236";
}
.glyphicon-modal-window:before {
content: "\e237";
}
.glyphicon-oil:before {
content: "\e238";
}
.glyphicon-grain:before {
content: "\e239";
}
.glyphicon-sunglasses:before {
content: "\e240";
}
.glyphicon-text-size:before {
content: "\e241";
}
.glyphicon-text-color:before {
content: "\e242";
}
.glyphicon-text-background:before {
content: "\e243";
}
.glyphicon-object-align-top:before {
content: "\e244";
}
.glyphicon-object-align-bottom:before {
content: "\e245";
}
.glyphicon-object-align-horizontal:before {
content: "\e246";
}
.glyphicon-object-align-left:before {
content: "\e247";
}
.glyphicon-object-align-vertical:before {
content: "\e248";
}
.glyphicon-object-align-right:before {
content: "\e249";
}
.glyphicon-triangle-right:before {
content: "\e250";
}
.glyphicon-triangle-left:before {
content: "\e251";
}
.glyphicon-triangle-bottom:before {
content: "\e252";
}
.glyphicon-triangle-top:before {
content: "\e253";
}
.glyphicon-console:before {
content: "\e254";
}
.glyphicon-superscript:before {
content: "\e255";
}
.glyphicon-subscript:before {
content: "\e256";
}
.glyphicon-menu-left:before {
content: "\e257";
}
.glyphicon-menu-right:before {
content: "\e258";
}
.glyphicon-menu-down:before {
content: "\e259";
}
.glyphicon-menu-up:before {
content: "\e260";
}
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
*:before,
*:after {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
html {
font-size: 10px;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
body {
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 13px;
line-height: 1.42857143;
color: #000;
background-color: #fff;
}
input,
button,
select,
textarea {
font-family: inherit;
font-size: inherit;
line-height: inherit;
}
a {
color: #337ab7;
text-decoration: none;
}
a:hover,
a:focus {
color: #23527c;
text-decoration: underline;
}
a:focus {
outline: 5px auto -webkit-focus-ring-color;
outline-offset: -2px;
}
figure {
margin: 0;
}
img {
vertical-align: middle;
}
.img-responsive,
.thumbnail > img,
.thumbnail a > img,
.carousel-inner > .item > img,
.carousel-inner > .item > a > img {
display: block;
max-width: 100%;
height: auto;
}
.img-rounded {
border-radius: 3px;
}
.img-thumbnail {
padding: 4px;
line-height: 1.42857143;
background-color: #fff;
border: 1px solid #ddd;
border-radius: 2px;
-webkit-transition: all 0.2s ease-in-out;
-o-transition: all 0.2s ease-in-out;
transition: all 0.2s ease-in-out;
display: inline-block;
max-width: 100%;
height: auto;
}
.img-circle {
border-radius: 50%;
}
hr {
margin-top: 18px;
margin-bottom: 18px;
border: 0;
border-top: 1px solid #eeeeee;
}
.sr-only {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
}
.sr-only-focusable:active,
.sr-only-focusable:focus {
position: static;
width: auto;
height: auto;
margin: 0;
overflow: visible;
clip: auto;
}
[role="button"] {
cursor: pointer;
}
h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6 {
font-family: inherit;
font-weight: 500;
line-height: 1.1;
color: inherit;
}
h1 small,
h2 small,
h3 small,
h4 small,
h5 small,
h6 small,
.h1 small,
.h2 small,
.h3 small,
.h4 small,
.h5 small,
.h6 small,
h1 .small,
h2 .small,
h3 .small,
h4 .small,
h5 .small,
h6 .small,
.h1 .small,
.h2 .small,
.h3 .small,
.h4 .small,
.h5 .small,
.h6 .small {
font-weight: normal;
line-height: 1;
color: #777777;
}
h1,
.h1,
h2,
.h2,
h3,
.h3 {
margin-top: 18px;
margin-bottom: 9px;
}
h1 small,
.h1 small,
h2 small,
.h2 small,
h3 small,
.h3 small,
h1 .small,
.h1 .small,
h2 .small,
.h2 .small,
h3 .small,
.h3 .small {
font-size: 65%;
}
h4,
.h4,
h5,
.h5,
h6,
.h6 {
margin-top: 9px;
margin-bottom: 9px;
}
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: 33px;
}
h2,
.h2 {
font-size: 27px;
}
h3,
.h3 {
font-size: 23px;
}
h4,
.h4 {
font-size: 17px;
}
h5,
.h5 {
font-size: 13px;
}
h6,
.h6 {
font-size: 12px;
}
p {
margin: 0 0 9px;
}
.lead {
margin-bottom: 18px;
font-size: 14px;
font-weight: 300;
line-height: 1.4;
}
@media (min-width: 768px) {
.lead {
font-size: 19.5px;
}
}
small,
.small {
font-size: 92%;
}
mark,
.mark {
background-color: #fcf8e3;
padding: .2em;
}
.text-left {
text-align: left;
}
.text-right {
text-align: right;
}
.text-center {
text-align: center;
}
.text-justify {
text-align: justify;
}
.text-nowrap {
white-space: nowrap;
}
.text-lowercase {
text-transform: lowercase;
}
.text-uppercase {
text-transform: uppercase;
}
.text-capitalize {
text-transform: capitalize;
}
.text-muted {
color: #777777;
}
.text-primary {
color: #337ab7;
}
a.text-primary:hover,
a.text-primary:focus {
color: #286090;
}
.text-success {
color: #3c763d;
}
a.text-success:hover,
a.text-success:focus {
color: #2b542c;
}
.text-info {
color: #31708f;
}
a.text-info:hover,
a.text-info:focus {
color: #245269;
}
.text-warning {
color: #8a6d3b;
}
a.text-warning:hover,
a.text-warning:focus {
color: #66512c;
}
.text-danger {
color: #a94442;
}
a.text-danger:hover,
a.text-danger:focus {
color: #843534;
}
.bg-primary {
color: #fff;
background-color: #337ab7;
}
a.bg-primary:hover,
a.bg-primary:focus {
background-color: #286090;
}
.bg-success {
background-color: #dff0d8;
}
a.bg-success:hover,
a.bg-success:focus {
background-color: #c1e2b3;
}
.bg-info {
background-color: #d9edf7;
}
a.bg-info:hover,
a.bg-info:focus {
background-color: #afd9ee;
}
.bg-warning {
background-color: #fcf8e3;
}
a.bg-warning:hover,
a.bg-warning:focus {
background-color: #f7ecb5;
}
.bg-danger {
background-color: #f2dede;
}
a.bg-danger:hover,
a.bg-danger:focus {
background-color: #e4b9b9;
}
.page-header {
padding-bottom: 8px;
margin: 36px 0 18px;
border-bottom: 1px solid #eeeeee;
}
ul,
ol {
margin-top: 0;
margin-bottom: 9px;
}
ul ul,
ol ul,
ul ol,
ol ol {
margin-bottom: 0;
}
.list-unstyled {
padding-left: 0;
list-style: none;
}
.list-inline {
padding-left: 0;
list-style: none;
margin-left: -5px;
}
.list-inline > li {
display: inline-block;
padding-left: 5px;
padding-right: 5px;
}
dl {
margin-top: 0;
margin-bottom: 18px;
}
dt,
dd {
line-height: 1.42857143;
}
dt {
font-weight: bold;
}
dd {
margin-left: 0;
}
@media (min-width: 541px) {
.dl-horizontal dt {
float: left;
width: 160px;
clear: left;
text-align: right;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.dl-horizontal dd {
margin-left: 180px;
}
}
abbr[title],
abbr[data-original-title] {
cursor: help;
border-bottom: 1px dotted #777777;
}
.initialism {
font-size: 90%;
text-transform: uppercase;
}
blockquote {
padding: 9px 18px;
margin: 0 0 18px;
font-size: inherit;
border-left: 5px solid #eeeeee;
}
blockquote p:last-child,
blockquote ul:last-child,
blockquote ol:last-child {
margin-bottom: 0;
}
blockquote footer,
blockquote small,
blockquote .small {
display: block;
font-size: 80%;
line-height: 1.42857143;
color: #777777;
}
blockquote footer:before,
blockquote small:before,
blockquote .small:before {
content: '\2014 \00A0';
}
.blockquote-reverse,
blockquote.pull-right {
padding-right: 15px;
padding-left: 0;
border-right: 5px solid #eeeeee;
border-left: 0;
text-align: right;
}
.blockquote-reverse footer:before,
blockquote.pull-right footer:before,
.blockquote-reverse small:before,
blockquote.pull-right small:before,
.blockquote-reverse .small:before,
blockquote.pull-right .small:before {
content: '';
}
.blockquote-reverse footer:after,
blockquote.pull-right footer:after,
.blockquote-reverse small:after,
blockquote.pull-right small:after,
.blockquote-reverse .small:after,
blockquote.pull-right .small:after {
content: '\00A0 \2014';
}
address {
margin-bottom: 18px;
font-style: normal;
line-height: 1.42857143;
}
code,
kbd,
pre,
samp {
font-family: monospace;
}
code {
padding: 2px 4px;
font-size: 90%;
color: #c7254e;
background-color: #f9f2f4;
border-radius: 2px;
}
kbd {
padding: 2px 4px;
font-size: 90%;
color: #888;
background-color: transparent;
border-radius: 1px;
box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
}
kbd kbd {
padding: 0;
font-size: 100%;
font-weight: bold;
box-shadow: none;
}
pre {
display: block;
padding: 8.5px;
margin: 0 0 9px;
font-size: 12px;
line-height: 1.42857143;
word-break: break-all;
word-wrap: break-word;
color: #333333;
background-color: #f5f5f5;
border: 1px solid #ccc;
border-radius: 2px;
}
pre code {
padding: 0;
font-size: inherit;
color: inherit;
white-space: pre-wrap;
background-color: transparent;
border-radius: 0;
}
.pre-scrollable {
max-height: 340px;
overflow-y: scroll;
}
.container {
margin-right: auto;
margin-left: auto;
padding-left: 0px;
padding-right: 0px;
}
@media (min-width: 768px) {
.container {
width: 768px;
}
}
@media (min-width: 992px) {
.container {
width: 940px;
}
}
@media (min-width: 1200px) {
.container {
width: 1140px;
}
}
.container-fluid {
margin-right: auto;
margin-left: auto;
padding-left: 0px;
padding-right: 0px;
}
.row {
margin-left: 0px;
margin-right: 0px;
}
.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
position: relative;
min-height: 1px;
padding-left: 0px;
padding-right: 0px;
}
.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
float: left;
}
.col-xs-12 {
width: 100%;
}
.col-xs-11 {
width: 91.66666667%;
}
.col-xs-10 {
width: 83.33333333%;
}
.col-xs-9 {
width: 75%;
}
.col-xs-8 {
width: 66.66666667%;
}
.col-xs-7 {
width: 58.33333333%;
}
.col-xs-6 {
width: 50%;
}
.col-xs-5 {
width: 41.66666667%;
}
.col-xs-4 {
width: 33.33333333%;
}
.col-xs-3 {
width: 25%;
}
.col-xs-2 {
width: 16.66666667%;
}
.col-xs-1 {
width: 8.33333333%;
}
.col-xs-pull-12 {
right: 100%;
}
.col-xs-pull-11 {
right: 91.66666667%;
}
.col-xs-pull-10 {
right: 83.33333333%;
}
.col-xs-pull-9 {
right: 75%;
}
.col-xs-pull-8 {
right: 66.66666667%;
}
.col-xs-pull-7 {
right: 58.33333333%;
}
.col-xs-pull-6 {
right: 50%;
}
.col-xs-pull-5 {
right: 41.66666667%;
}
.col-xs-pull-4 {
right: 33.33333333%;
}
.col-xs-pull-3 {
right: 25%;
}
.col-xs-pull-2 {
right: 16.66666667%;
}
.col-xs-pull-1 {
right: 8.33333333%;
}
.col-xs-pull-0 {
right: auto;
}
.col-xs-push-12 {
left: 100%;
}
.col-xs-push-11 {
left: 91.66666667%;
}
.col-xs-push-10 {
left: 83.33333333%;
}
.col-xs-push-9 {
left: 75%;
}
.col-xs-push-8 {
left: 66.66666667%;
}
.col-xs-push-7 {
left: 58.33333333%;
}
.col-xs-push-6 {
left: 50%;
}
.col-xs-push-5 {
left: 41.66666667%;
}
.col-xs-push-4 {
left: 33.33333333%;
}
.col-xs-push-3 {
left: 25%;
}
.col-xs-push-2 {
left: 16.66666667%;
}
.col-xs-push-1 {
left: 8.33333333%;
}
.col-xs-push-0 {
left: auto;
}
.col-xs-offset-12 {
margin-left: 100%;
}
.col-xs-offset-11 {
margin-left: 91.66666667%;
}
.col-xs-offset-10 {
margin-left: 83.33333333%;
}
.col-xs-offset-9 {
margin-left: 75%;
}
.col-xs-offset-8 {
margin-left: 66.66666667%;
}
.col-xs-offset-7 {
margin-left: 58.33333333%;
}
.col-xs-offset-6 {
margin-left: 50%;
}
.col-xs-offset-5 {
margin-left: 41.66666667%;
}
.col-xs-offset-4 {
margin-left: 33.33333333%;
}
.col-xs-offset-3 {
margin-left: 25%;
}
.col-xs-offset-2 {
margin-left: 16.66666667%;
}
.col-xs-offset-1 {
margin-left: 8.33333333%;
}
.col-xs-offset-0 {
margin-left: 0%;
}
@media (min-width: 768px) {
.col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
float: left;
}
.col-sm-12 {
width: 100%;
}
.col-sm-11 {
width: 91.66666667%;
}
.col-sm-10 {
width: 83.33333333%;
}
.col-sm-9 {
width: 75%;
}
.col-sm-8 {
width: 66.66666667%;
}
.col-sm-7 {
width: 58.33333333%;
}
.col-sm-6 {
width: 50%;
}
.col-sm-5 {
width: 41.66666667%;
}
.col-sm-4 {
width: 33.33333333%;
}
.col-sm-3 {
width: 25%;
}
.col-sm-2 {
width: 16.66666667%;
}
.col-sm-1 {
width: 8.33333333%;
}
.col-sm-pull-12 {
right: 100%;
}
.col-sm-pull-11 {
right: 91.66666667%;
}
.col-sm-pull-10 {
right: 83.33333333%;
}
.col-sm-pull-9 {
right: 75%;
}
.col-sm-pull-8 {
right: 66.66666667%;
}
.col-sm-pull-7 {
right: 58.33333333%;
}
.col-sm-pull-6 {
right: 50%;
}
.col-sm-pull-5 {
right: 41.66666667%;
}
.col-sm-pull-4 {
right: 33.33333333%;
}
.col-sm-pull-3 {
right: 25%;
}
.col-sm-pull-2 {
right: 16.66666667%;
}
.col-sm-pull-1 {
right: 8.33333333%;
}
.col-sm-pull-0 {
right: auto;
}
.col-sm-push-12 {
left: 100%;
}
.col-sm-push-11 {
left: 91.66666667%;
}
.col-sm-push-10 {
left: 83.33333333%;
}
.col-sm-push-9 {
left: 75%;
}
.col-sm-push-8 {
left: 66.66666667%;
}
.col-sm-push-7 {
left: 58.33333333%;
}
.col-sm-push-6 {
left: 50%;
}
.col-sm-push-5 {
left: 41.66666667%;
}
.col-sm-push-4 {
left: 33.33333333%;
}
.col-sm-push-3 {
left: 25%;
}
.col-sm-push-2 {
left: 16.66666667%;
}
.col-sm-push-1 {
left: 8.33333333%;
}
.col-sm-push-0 {
left: auto;
}
.col-sm-offset-12 {
margin-left: 100%;
}
.col-sm-offset-11 {
margin-left: 91.66666667%;
}
.col-sm-offset-10 {
margin-left: 83.33333333%;
}
.col-sm-offset-9 {
margin-left: 75%;
}
.col-sm-offset-8 {
margin-left: 66.66666667%;
}
.col-sm-offset-7 {
margin-left: 58.33333333%;
}
.col-sm-offset-6 {
margin-left: 50%;
}
.col-sm-offset-5 {
margin-left: 41.66666667%;
}
.col-sm-offset-4 {
margin-left: 33.33333333%;
}
.col-sm-offset-3 {
margin-left: 25%;
}
.col-sm-offset-2 {
margin-left: 16.66666667%;
}
.col-sm-offset-1 {
margin-left: 8.33333333%;
}
.col-sm-offset-0 {
margin-left: 0%;
}
}
@media (min-width: 992px) {
.col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
float: left;
}
.col-md-12 {
width: 100%;
}
.col-md-11 {
width: 91.66666667%;
}
.col-md-10 {
width: 83.33333333%;
}
.col-md-9 {
width: 75%;
}
.col-md-8 {
width: 66.66666667%;
}
.col-md-7 {
width: 58.33333333%;
}
.col-md-6 {
width: 50%;
}
.col-md-5 {
width: 41.66666667%;
}
.col-md-4 {
width: 33.33333333%;
}
.col-md-3 {
width: 25%;
}
.col-md-2 {
width: 16.66666667%;
}
.col-md-1 {
width: 8.33333333%;
}
.col-md-pull-12 {
right: 100%;
}
.col-md-pull-11 {
right: 91.66666667%;
}
.col-md-pull-10 {
right: 83.33333333%;
}
.col-md-pull-9 {
right: 75%;
}
.col-md-pull-8 {
right: 66.66666667%;
}
.col-md-pull-7 {
right: 58.33333333%;
}
.col-md-pull-6 {
right: 50%;
}
.col-md-pull-5 {
right: 41.66666667%;
}
.col-md-pull-4 {
right: 33.33333333%;
}
.col-md-pull-3 {
right: 25%;
}
.col-md-pull-2 {
right: 16.66666667%;
}
.col-md-pull-1 {
right: 8.33333333%;
}
.col-md-pull-0 {
right: auto;
}
.col-md-push-12 {
left: 100%;
}
.col-md-push-11 {
left: 91.66666667%;
}
.col-md-push-10 {
left: 83.33333333%;
}
.col-md-push-9 {
left: 75%;
}
.col-md-push-8 {
left: 66.66666667%;
}
.col-md-push-7 {
left: 58.33333333%;
}
.col-md-push-6 {
left: 50%;
}
.col-md-push-5 {
left: 41.66666667%;
}
.col-md-push-4 {
left: 33.33333333%;
}
.col-md-push-3 {
left: 25%;
}
.col-md-push-2 {
left: 16.66666667%;
}
.col-md-push-1 {
left: 8.33333333%;
}
.col-md-push-0 {
left: auto;
}
.col-md-offset-12 {
margin-left: 100%;
}
.col-md-offset-11 {
margin-left: 91.66666667%;
}
.col-md-offset-10 {
margin-left: 83.33333333%;
}
.col-md-offset-9 {
margin-left: 75%;
}
.col-md-offset-8 {
margin-left: 66.66666667%;
}
.col-md-offset-7 {
margin-left: 58.33333333%;
}
.col-md-offset-6 {
margin-left: 50%;
}
.col-md-offset-5 {
margin-left: 41.66666667%;
}
.col-md-offset-4 {
margin-left: 33.33333333%;
}
.col-md-offset-3 {
margin-left: 25%;
}
.col-md-offset-2 {
margin-left: 16.66666667%;
}
.col-md-offset-1 {
margin-left: 8.33333333%;
}
.col-md-offset-0 {
margin-left: 0%;
}
}
@media (min-width: 1200px) {
.col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
float: left;
}
.col-lg-12 {
width: 100%;
}
.col-lg-11 {
width: 91.66666667%;
}
.col-lg-10 {
width: 83.33333333%;
}
.col-lg-9 {
width: 75%;
}
.col-lg-8 {
width: 66.66666667%;
}
.col-lg-7 {
width: 58.33333333%;
}
.col-lg-6 {
width: 50%;
}
.col-lg-5 {
width: 41.66666667%;
}
.col-lg-4 {
width: 33.33333333%;
}
.col-lg-3 {
width: 25%;
}
.col-lg-2 {
width: 16.66666667%;
}
.col-lg-1 {
width: 8.33333333%;
}
.col-lg-pull-12 {
right: 100%;
}
.col-lg-pull-11 {
right: 91.66666667%;
}
.col-lg-pull-10 {
right: 83.33333333%;
}
.col-lg-pull-9 {
right: 75%;
}
.col-lg-pull-8 {
right: 66.66666667%;
}
.col-lg-pull-7 {
right: 58.33333333%;
}
.col-lg-pull-6 {
right: 50%;
}
.col-lg-pull-5 {
right: 41.66666667%;
}
.col-lg-pull-4 {
right: 33.33333333%;
}
.col-lg-pull-3 {
right: 25%;
}
.col-lg-pull-2 {
right: 16.66666667%;
}
.col-lg-pull-1 {
right: 8.33333333%;
}
.col-lg-pull-0 {
right: auto;
}
.col-lg-push-12 {
left: 100%;
}
.col-lg-push-11 {
left: 91.66666667%;
}
.col-lg-push-10 {
left: 83.33333333%;
}
.col-lg-push-9 {
left: 75%;
}
.col-lg-push-8 {
left: 66.66666667%;
}
.col-lg-push-7 {
left: 58.33333333%;
}
.col-lg-push-6 {
left: 50%;
}
.col-lg-push-5 {
left: 41.66666667%;
}
.col-lg-push-4 {
left: 33.33333333%;
}
.col-lg-push-3 {
left: 25%;
}
.col-lg-push-2 {
left: 16.66666667%;
}
.col-lg-push-1 {
left: 8.33333333%;
}
.col-lg-push-0 {
left: auto;
}
.col-lg-offset-12 {
margin-left: 100%;
}
.col-lg-offset-11 {
margin-left: 91.66666667%;
}
.col-lg-offset-10 {
margin-left: 83.33333333%;
}
.col-lg-offset-9 {
margin-left: 75%;
}
.col-lg-offset-8 {
margin-left: 66.66666667%;
}
.col-lg-offset-7 {
margin-left: 58.33333333%;
}
.col-lg-offset-6 {
margin-left: 50%;
}
.col-lg-offset-5 {
margin-left: 41.66666667%;
}
.col-lg-offset-4 {
margin-left: 33.33333333%;
}
.col-lg-offset-3 {
margin-left: 25%;
}
.col-lg-offset-2 {
margin-left: 16.66666667%;
}
.col-lg-offset-1 {
margin-left: 8.33333333%;
}
.col-lg-offset-0 {
margin-left: 0%;
}
}
table {
background-color: transparent;
}
caption {
padding-top: 8px;
padding-bottom: 8px;
color: #777777;
text-align: left;
}
th {
text-align: left;
}
.table {
width: 100%;
max-width: 100%;
margin-bottom: 18px;
}
.table > thead > tr > th,
.table > tbody > tr > th,
.table > tfoot > tr > th,
.table > thead > tr > td,
.table > tbody > tr > td,
.table > tfoot > tr > td {
padding: 8px;
line-height: 1.42857143;
vertical-align: top;
border-top: 1px solid #ddd;
}
.table > thead > tr > th {
vertical-align: bottom;
border-bottom: 2px solid #ddd;
}
.table > caption + thead > tr:first-child > th,
.table > colgroup + thead > tr:first-child > th,
.table > thead:first-child > tr:first-child > th,
.table > caption + thead > tr:first-child > td,
.table > colgroup + thead > tr:first-child > td,
.table > thead:first-child > tr:first-child > td {
border-top: 0;
}
.table > tbody + tbody {
border-top: 2px solid #ddd;
}
.table .table {
background-color: #fff;
}
.table-condensed > thead > tr > th,
.table-condensed > tbody > tr > th,
.table-condensed > tfoot > tr > th,
.table-condensed > thead > tr > td,
.table-condensed > tbody > tr > td,
.table-condensed > tfoot > tr > td {
padding: 5px;
}
.table-bordered {
border: 1px solid #ddd;
}
.table-bordered > thead > tr > th,
.table-bordered > tbody > tr > th,
.table-bordered > tfoot > tr > th,
.table-bordered > thead > tr > td,
.table-bordered > tbody > tr > td,
.table-bordered > tfoot > tr > td {
border: 1px solid #ddd;
}
.table-bordered > thead > tr > th,
.table-bordered > thead > tr > td {
border-bottom-width: 2px;
}
.table-striped > tbody > tr:nth-of-type(odd) {
background-color: #f9f9f9;
}
.table-hover > tbody > tr:hover {
background-color: #f5f5f5;
}
table col[class*="col-"] {
position: static;
float: none;
display: table-column;
}
table td[class*="col-"],
table th[class*="col-"] {
position: static;
float: none;
display: table-cell;
}
.table > thead > tr > td.active,
.table > tbody > tr > td.active,
.table > tfoot > tr > td.active,
.table > thead > tr > th.active,
.table > tbody > tr > th.active,
.table > tfoot > tr > th.active,
.table > thead > tr.active > td,
.table > tbody > tr.active > td,
.table > tfoot > tr.active > td,
.table > thead > tr.active > th,
.table > tbody > tr.active > th,
.table > tfoot > tr.active > th {
background-color: #f5f5f5;
}
.table-hover > tbody > tr > td.active:hover,
.table-hover > tbody > tr > th.active:hover,
.table-hover > tbody > tr.active:hover > td,
.table-hover > tbody > tr:hover > .active,
.table-hover > tbody > tr.active:hover > th {
background-color: #e8e8e8;
}
.table > thead > tr > td.success,
.table > tbody > tr > td.success,
.table > tfoot > tr > td.success,
.table > thead > tr > th.success,
.table > tbody > tr > th.success,
.table > tfoot > tr > th.success,
.table > thead > tr.success > td,
.table > tbody > tr.success > td,
.table > tfoot > tr.success > td,
.table > thead > tr.success > th,
.table > tbody > tr.success > th,
.table > tfoot > tr.success > th {
background-color: #dff0d8;
}
.table-hover > tbody > tr > td.success:hover,
.table-hover > tbody > tr > th.success:hover,
.table-hover > tbody > tr.success:hover > td,
.table-hover > tbody > tr:hover > .success,
.table-hover > tbody > tr.success:hover > th {
background-color: #d0e9c6;
}
.table > thead > tr > td.info,
.table > tbody > tr > td.info,
.table > tfoot > tr > td.info,
.table > thead > tr > th.info,
.table > tbody > tr > th.info,
.table > tfoot > tr > th.info,
.table > thead > tr.info > td,
.table > tbody > tr.info > td,
.table > tfoot > tr.info > td,
.table > thead > tr.info > th,
.table > tbody > tr.info > th,
.table > tfoot > tr.info > th {
background-color: #d9edf7;
}
.table-hover > tbody > tr > td.info:hover,
.table-hover > tbody > tr > th.info:hover,
.table-hover > tbody > tr.info:hover > td,
.table-hover > tbody > tr:hover > .info,
.table-hover > tbody > tr.info:hover > th {
background-color: #c4e3f3;
}
.table > thead > tr > td.warning,
.table > tbody > tr > td.warning,
.table > tfoot > tr > td.warning,
.table > thead > tr > th.warning,
.table > tbody > tr > th.warning,
.table > tfoot > tr > th.warning,
.table > thead > tr.warning > td,
.table > tbody > tr.warning > td,
.table > tfoot > tr.warning > td,
.table > thead > tr.warning > th,
.table > tbody > tr.warning > th,
.table > tfoot > tr.warning > th {
background-color: #fcf8e3;
}
.table-hover > tbody > tr > td.warning:hover,
.table-hover > tbody > tr > th.warning:hover,
.table-hover > tbody > tr.warning:hover > td,
.table-hover > tbody > tr:hover > .warning,
.table-hover > tbody > tr.warning:hover > th {
background-color: #faf2cc;
}
.table > thead > tr > td.danger,
.table > tbody > tr > td.danger,
.table > tfoot > tr > td.danger,
.table > thead > tr > th.danger,
.table > tbody > tr > th.danger,
.table > tfoot > tr > th.danger,
.table > thead > tr.danger > td,
.table > tbody > tr.danger > td,
.table > tfoot > tr.danger > td,
.table > thead > tr.danger > th,
.table > tbody > tr.danger > th,
.table > tfoot > tr.danger > th {
background-color: #f2dede;
}
.table-hover > tbody > tr > td.danger:hover,
.table-hover > tbody > tr > th.danger:hover,
.table-hover > tbody > tr.danger:hover > td,
.table-hover > tbody > tr:hover > .danger,
.table-hover > tbody > tr.danger:hover > th {
background-color: #ebcccc;
}
.table-responsive {
overflow-x: auto;
min-height: 0.01%;
}
@media screen and (max-width: 767px) {
.table-responsive {
width: 100%;
margin-bottom: 13.5px;
overflow-y: hidden;
-ms-overflow-style: -ms-autohiding-scrollbar;
border: 1px solid #ddd;
}
.table-responsive > .table {
margin-bottom: 0;
}
.table-responsive > .table > thead > tr > th,
.table-responsive > .table > tbody > tr > th,
.table-responsive > .table > tfoot > tr > th,
.table-responsive > .table > thead > tr > td,
.table-responsive > .table > tbody > tr > td,
.table-responsive > .table > tfoot > tr > td {
white-space: nowrap;
}
.table-responsive > .table-bordered {
border: 0;
}
.table-responsive > .table-bordered > thead > tr > th:first-child,
.table-responsive > .table-bordered > tbody > tr > th:first-child,
.table-responsive > .table-bordered > tfoot > tr > th:first-child,
.table-responsive > .table-bordered > thead > tr > td:first-child,
.table-responsive > .table-bordered > tbody > tr > td:first-child,
.table-responsive > .table-bordered > tfoot > tr > td:first-child {
border-left: 0;
}
.table-responsive > .table-bordered > thead > tr > th:last-child,
.table-responsive > .table-bordered > tbody > tr > th:last-child,
.table-responsive > .table-bordered > tfoot > tr > th:last-child,
.table-responsive > .table-bordered > thead > tr > td:last-child,
.table-responsive > .table-bordered > tbody > tr > td:last-child,
.table-responsive > .table-bordered > tfoot > tr > td:last-child {
border-right: 0;
}
.table-responsive > .table-bordered > tbody > tr:last-child > th,
.table-responsive > .table-bordered > tfoot > tr:last-child > th,
.table-responsive > .table-bordered > tbody > tr:last-child > td,
.table-responsive > .table-bordered > tfoot > tr:last-child > td {
border-bottom: 0;
}
}
fieldset {
padding: 0;
margin: 0;
border: 0;
min-width: 0;
}
legend {
display: block;
width: 100%;
padding: 0;
margin-bottom: 18px;
font-size: 19.5px;
line-height: inherit;
color: #333333;
border: 0;
border-bottom: 1px solid #e5e5e5;
}
label {
display: inline-block;
max-width: 100%;
margin-bottom: 5px;
font-weight: bold;
}
input[type="search"] {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
input[type="radio"],
input[type="checkbox"] {
margin: 4px 0 0;
margin-top: 1px \9;
line-height: normal;
}
input[type="file"] {
display: block;
}
input[type="range"] {
display: block;
width: 100%;
}
select[multiple],
select[size] {
height: auto;
}
input[type="file"]:focus,
input[type="radio"]:focus,
input[type="checkbox"]:focus {
outline: 5px auto -webkit-focus-ring-color;
outline-offset: -2px;
}
output {
display: block;
padding-top: 7px;
font-size: 13px;
line-height: 1.42857143;
color: #555555;
}
.form-control {
display: block;
width: 100%;
height: 32px;
padding: 6px 12px;
font-size: 13px;
line-height: 1.42857143;
color: #555555;
background-color: #fff;
background-image: none;
border: 1px solid #ccc;
border-radius: 2px;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-webkit-transition: border-color ease-in-out .15s, 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, 0.6);
box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
}
.form-control::-moz-placeholder {
color: #999;
opacity: 1;
}
.form-control:-ms-input-placeholder {
color: #999;
}
.form-control::-webkit-input-placeholder {
color: #999;
}
.form-control::-ms-expand {
border: 0;
background-color: transparent;
}
.form-control[disabled],
.form-control[readonly],
fieldset[disabled] .form-control {
background-color: #eeeeee;
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: 32px;
}
input[type="date"].input-sm,
input[type="time"].input-sm,
input[type="datetime-local"].input-sm,
input[type="month"].input-sm,
.input-group-sm input[type="date"],
.input-group-sm input[type="time"],
.input-group-sm input[type="datetime-local"],
.input-group-sm input[type="month"] {
line-height: 30px;
}
input[type="date"].input-lg,
input[type="time"].input-lg,
input[type="datetime-local"].input-lg,
input[type="month"].input-lg,
.input-group-lg input[type="date"],
.input-group-lg input[type="time"],
.input-group-lg input[type="datetime-local"],
.input-group-lg input[type="month"] {
line-height: 45px;
}
}
.form-group {
margin-bottom: 15px;
}
.radio,
.checkbox {
position: relative;
display: block;
margin-top: 10px;
margin-bottom: 10px;
}
.radio label,
.checkbox label {
min-height: 18px;
padding-left: 20px;
margin-bottom: 0;
font-weight: normal;
cursor: pointer;
}
.radio input[type="radio"],
.radio-inline input[type="radio"],
.checkbox input[type="checkbox"],
.checkbox-inline input[type="checkbox"] {
position: absolute;
margin-left: -20px;
margin-top: 4px \9;
}
.radio + .radio,
.checkbox + .checkbox {
margin-top: -5px;
}
.radio-inline,
.checkbox-inline {
position: relative;
display: inline-block;
padding-left: 20px;
margin-bottom: 0;
vertical-align: middle;
font-weight: normal;
cursor: pointer;
}
.radio-inline + .radio-inline,
.checkbox-inline + .checkbox-inline {
margin-top: 0;
margin-left: 10px;
}
input[type="radio"][disabled],
input[type="checkbox"][disabled],
input[type="radio"].disabled,
input[type="checkbox"].disabled,
fieldset[disabled] input[type="radio"],
fieldset[disabled] input[type="checkbox"] {
cursor: not-allowed;
}
.radio-inline.disabled,
.checkbox-inline.disabled,
fieldset[disabled] .radio-inline,
fieldset[disabled] .checkbox-inline {
cursor: not-allowed;
}
.radio.disabled label,
.checkbox.disabled label,
fieldset[disabled] .radio label,
fieldset[disabled] .checkbox label {
cursor: not-allowed;
}
.form-control-static {
padding-top: 7px;
padding-bottom: 7px;
margin-bottom: 0;
min-height: 31px;
}
.form-control-static.input-lg,
.form-control-static.input-sm {
padding-left: 0;
padding-right: 0;
}
.input-sm {
height: 30px;
padding: 5px 10px;
font-size: 12px;
line-height: 1.5;
border-radius: 1px;
}
select.input-sm {
height: 30px;
line-height: 30px;
}
textarea.input-sm,
select[multiple].input-sm {
height: auto;
}
.form-group-sm .form-control {
height: 30px;
padding: 5px 10px;
font-size: 12px;
line-height: 1.5;
border-radius: 1px;
}
.form-group-sm select.form-control {
height: 30px;
line-height: 30px;
}
.form-group-sm textarea.form-control,
.form-group-sm select[multiple].form-control {
height: auto;
}
.form-group-sm .form-control-static {
height: 30px;
min-height: 30px;
padding: 6px 10px;
font-size: 12px;
line-height: 1.5;
}
.input-lg {
height: 45px;
padding: 10px 16px;
font-size: 17px;
line-height: 1.3333333;
border-radius: 3px;
}
select.input-lg {
height: 45px;
line-height: 45px;
}
textarea.input-lg,
select[multiple].input-lg {
height: auto;
}
.form-group-lg .form-control {
height: 45px;
padding: 10px 16px;
font-size: 17px;
line-height: 1.3333333;
border-radius: 3px;
}
.form-group-lg select.form-control {
height: 45px;
line-height: 45px;
}
.form-group-lg textarea.form-control,
.form-group-lg select[multiple].form-control {
height: auto;
}
.form-group-lg .form-control-static {
height: 45px;
min-height: 35px;
padding: 11px 16px;
font-size: 17px;
line-height: 1.3333333;
}
.has-feedback {
position: relative;
}
.has-feedback .form-control {
padding-right: 40px;
}
.form-control-feedback {
position: absolute;
top: 0;
right: 0;
z-index: 2;
display: block;
width: 32px;
height: 32px;
line-height: 32px;
text-align: center;
pointer-events: none;
}
.input-lg + .form-control-feedback,
.input-group-lg + .form-control-feedback,
.form-group-lg .form-control + .form-control-feedback {
width: 45px;
height: 45px;
line-height: 45px;
}
.input-sm + .form-control-feedback,
.input-group-sm + .form-control-feedback,
.form-group-sm .form-control + .form-control-feedback {
width: 30px;
height: 30px;
line-height: 30px;
}
.has-success .help-block,
.has-success .control-label,
.has-success .radio,
.has-success .checkbox,
.has-success .radio-inline,
.has-success .checkbox-inline,
.has-success.radio label,
.has-success.checkbox label,
.has-success.radio-inline label,
.has-success.checkbox-inline label {
color: #3c763d;
}
.has-success .form-control {
border-color: #3c763d;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.has-success .form-control:focus {
border-color: #2b542c;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
}
.has-success .input-group-addon {
color: #3c763d;
border-color: #3c763d;
background-color: #dff0d8;
}
.has-success .form-control-feedback {
color: #3c763d;
}
.has-warning .help-block,
.has-warning .control-label,
.has-warning .radio,
.has-warning .checkbox,
.has-warning .radio-inline,
.has-warning .checkbox-inline,
.has-warning.radio label,
.has-warning.checkbox label,
.has-warning.radio-inline label,
.has-warning.checkbox-inline label {
color: #8a6d3b;
}
.has-warning .form-control {
border-color: #8a6d3b;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.has-warning .form-control:focus {
border-color: #66512c;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
}
.has-warning .input-group-addon {
color: #8a6d3b;
border-color: #8a6d3b;
background-color: #fcf8e3;
}
.has-warning .form-control-feedback {
color: #8a6d3b;
}
.has-error .help-block,
.has-error .control-label,
.has-error .radio,
.has-error .checkbox,
.has-error .radio-inline,
.has-error .checkbox-inline,
.has-error.radio label,
.has-error.checkbox label,
.has-error.radio-inline label,
.has-error.checkbox-inline label {
color: #a94442;
}
.has-error .form-control {
border-color: #a94442;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
}
.has-error .form-control:focus {
border-color: #843534;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
}
.has-error .input-group-addon {
color: #a94442;
border-color: #a94442;
background-color: #f2dede;
}
.has-error .form-control-feedback {
color: #a94442;
}
.has-feedback label ~ .form-control-feedback {
top: 23px;
}
.has-feedback label.sr-only ~ .form-control-feedback {
top: 0;
}
.help-block {
display: block;
margin-top: 5px;
margin-bottom: 10px;
color: #404040;
}
@media (min-width: 768px) {
.form-inline .form-group {
display: inline-block;
margin-bottom: 0;
vertical-align: middle;
}
.form-inline .form-control {
display: inline-block;
width: auto;
vertical-align: middle;
}
.form-inline .form-control-static {
display: inline-block;
}
.form-inline .input-group {
display: inline-table;
vertical-align: middle;
}
.form-inline .input-group .input-group-addon,
.form-inline .input-group .input-group-btn,
.form-inline .input-group .form-control {
width: auto;
}
.form-inline .input-group > .form-control {
width: 100%;
}
.form-inline .control-label {
margin-bottom: 0;
vertical-align: middle;
}
.form-inline .radio,
.form-inline .checkbox {
display: inline-block;
margin-top: 0;
margin-bottom: 0;
vertical-align: middle;
}
.form-inline .radio label,
.form-inline .checkbox label {
padding-left: 0;
}
.form-inline .radio input[type="radio"],
.form-inline .checkbox input[type="checkbox"] {
position: relative;
margin-left: 0;
}
.form-inline .has-feedback .form-control-feedback {
top: 0;
}
}
.form-horizontal .radio,
.form-horizontal .checkbox,
.form-horizontal .radio-inline,
.form-horizontal .checkbox-inline {
margin-top: 0;
margin-bottom: 0;
padding-top: 7px;
}
.form-horizontal .radio,
.form-horizontal .checkbox {
min-height: 25px;
}
.form-horizontal .form-group {
margin-left: 0px;
margin-right: 0px;
}
@media (min-width: 768px) {
.form-horizontal .control-label {
text-align: right;
margin-bottom: 0;
padding-top: 7px;
}
}
.form-horizontal .has-feedback .form-control-feedback {
right: 0px;
}
@media (min-width: 768px) {
.form-horizontal .form-group-lg .control-label {
padding-top: 11px;
font-size: 17px;
}
}
@media (min-width: 768px) {
.form-horizontal .form-group-sm .control-label {
padding-top: 6px;
font-size: 12px;
}
}
.btn {
display: inline-block;
margin-bottom: 0;
font-weight: normal;
text-align: center;
vertical-align: middle;
touch-action: manipulation;
cursor: pointer;
background-image: none;
border: 1px solid transparent;
white-space: nowrap;
padding: 6px 12px;
font-size: 13px;
line-height: 1.42857143;
border-radius: 2px;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.btn:focus,
.btn:active:focus,
.btn.active:focus,
.btn.focus,
.btn:active.focus,
.btn.active.focus {
outline: 5px auto -webkit-focus-ring-color;
outline-offset: -2px;
}
.btn:hover,
.btn:focus,
.btn.focus {
color: #333;
text-decoration: none;
}
.btn:active,
.btn.active {
outline: 0;
background-image: none;
-webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}
.btn.disabled,
.btn[disabled],
fieldset[disabled] .btn {
cursor: not-allowed;
opacity: 0.65;
filter: alpha(opacity=65);
-webkit-box-shadow: none;
box-shadow: none;
}
a.btn.disabled,
fieldset[disabled] a.btn {
pointer-events: none;
}
.btn-default {
color: #333;
background-color: #fff;
border-color: #ccc;
}
.btn-default:focus,
.btn-default.focus {
color: #333;
background-color: #e6e6e6;
border-color: #8c8c8c;
}
.btn-default:hover {
color: #333;
background-color: #e6e6e6;
border-color: #adadad;
}
.btn-default:active,
.btn-default.active,
.open > .dropdown-toggle.btn-default {
color: #333;
background-color: #e6e6e6;
border-color: #adadad;
}
.btn-default:active:hover,
.btn-default.active:hover,
.open > .dropdown-toggle.btn-default:hover,
.btn-default:active:focus,
.btn-default.active:focus,
.open > .dropdown-toggle.btn-default:focus,
.btn-default:active.focus,
.btn-default.active.focus,
.open > .dropdown-toggle.btn-default.focus {
color: #333;
background-color: #d4d4d4;
border-color: #8c8c8c;
}
.btn-default:active,
.btn-default.active,
.open > .dropdown-toggle.btn-default {
background-image: none;
}
.btn-default.disabled:hover,
.btn-default[disabled]:hover,
fieldset[disabled] .btn-default:hover,
.btn-default.disabled:focus,
.btn-default[disabled]:focus,
fieldset[disabled] .btn-default:focus,
.btn-default.disabled.focus,
.btn-default[disabled].focus,
fieldset[disabled] .btn-default.focus {
background-color: #fff;
border-color: #ccc;
}
.btn-default .badge {
color: #fff;
background-color: #333;
}
.btn-primary {
color: #fff;
background-color: #337ab7;
border-color: #2e6da4;
}
.btn-primary:focus,
.btn-primary.focus {
color: #fff;
background-color: #286090;
border-color: #122b40;
}
.btn-primary:hover {
color: #fff;
background-color: #286090;
border-color: #204d74;
}
.btn-primary:active,
.btn-primary.active,
.open > .dropdown-toggle.btn-primary {
color: #fff;
background-color: #286090;
border-color: #204d74;
}
.btn-primary:active:hover,
.btn-primary.active:hover,
.open > .dropdown-toggle.btn-primary:hover,
.btn-primary:active:focus,
.btn-primary.active:focus,
.open > .dropdown-toggle.btn-primary:focus,
.btn-primary:active.focus,
.btn-primary.active.focus,
.open > .dropdown-toggle.btn-primary.focus {
color: #fff;
background-color: #204d74;
border-color: #122b40;
}
.btn-primary:active,
.btn-primary.active,
.open > .dropdown-toggle.btn-primary {
background-image: none;
}
.btn-primary.disabled:hover,
.btn-primary[disabled]:hover,
fieldset[disabled] .btn-primary:hover,
.btn-primary.disabled:focus,
.btn-primary[disabled]:focus,
fieldset[disabled] .btn-primary:focus,
.btn-primary.disabled.focus,
.btn-primary[disabled].focus,
fieldset[disabled] .btn-primary.focus {
background-color: #337ab7;
border-color: #2e6da4;
}
.btn-primary .badge {
color: #337ab7;
background-color: #fff;
}
.btn-success {
color: #fff;
background-color: #5cb85c;
border-color: #4cae4c;
}
.btn-success:focus,
.btn-success.focus {
color: #fff;
background-color: #449d44;
border-color: #255625;
}
.btn-success:hover {
color: #fff;
background-color: #449d44;
border-color: #398439;
}
.btn-success:active,
.btn-success.active,
.open > .dropdown-toggle.btn-success {
color: #fff;
background-color: #449d44;
border-color: #398439;
}
.btn-success:active:hover,
.btn-success.active:hover,
.open > .dropdown-toggle.btn-success:hover,
.btn-success:active:focus,
.btn-success.active:focus,
.open > .dropdown-toggle.btn-success:focus,
.btn-success:active.focus,
.btn-success.active.focus,
.open > .dropdown-toggle.btn-success.focus {
color: #fff;
background-color: #398439;
border-color: #255625;
}
.btn-success:active,
.btn-success.active,
.open > .dropdown-toggle.btn-success {
background-image: none;
}
.btn-success.disabled:hover,
.btn-success[disabled]:hover,
fieldset[disabled] .btn-success:hover,
.btn-success.disabled:focus,
.btn-success[disabled]:focus,
fieldset[disabled] .btn-success:focus,
.btn-success.disabled.focus,
.btn-success[disabled].focus,
fieldset[disabled] .btn-success.focus {
background-color: #5cb85c;
border-color: #4cae4c;
}
.btn-success .badge {
color: #5cb85c;
background-color: #fff;
}
.btn-info {
color: #fff;
background-color: #5bc0de;
border-color: #46b8da;
}
.btn-info:focus,
.btn-info.focus {
color: #fff;
background-color: #31b0d5;
border-color: #1b6d85;
}
.btn-info:hover {
color: #fff;
background-color: #31b0d5;
border-color: #269abc;
}
.btn-info:active,
.btn-info.active,
.open > .dropdown-toggle.btn-info {
color: #fff;
background-color: #31b0d5;
border-color: #269abc;
}
.btn-info:active:hover,
.btn-info.active:hover,
.open > .dropdown-toggle.btn-info:hover,
.btn-info:active:focus,
.btn-info.active:focus,
.open > .dropdown-toggle.btn-info:focus,
.btn-info:active.focus,
.btn-info.active.focus,
.open > .dropdown-toggle.btn-info.focus {
color: #fff;
background-color: #269abc;
border-color: #1b6d85;
}
.btn-info:active,
.btn-info.active,
.open > .dropdown-toggle.btn-info {
background-image: none;
}
.btn-info.disabled:hover,
.btn-info[disabled]:hover,
fieldset[disabled] .btn-info:hover,
.btn-info.disabled:focus,
.btn-info[disabled]:focus,
fieldset[disabled] .btn-info:focus,
.btn-info.disabled.focus,
.btn-info[disabled].focus,
fieldset[disabled] .btn-info.focus {
background-color: #5bc0de;
border-color: #46b8da;
}
.btn-info .badge {
color: #5bc0de;
background-color: #fff;
}
.btn-warning {
color: #fff;
background-color: #f0ad4e;
border-color: #eea236;
}
.btn-warning:focus,
.btn-warning.focus {
color: #fff;
background-color: #ec971f;
border-color: #985f0d;
}
.btn-warning:hover {
color: #fff;
background-color: #ec971f;
border-color: #d58512;
}
.btn-warning:active,
.btn-warning.active,
.open > .dropdown-toggle.btn-warning {
color: #fff;
background-color: #ec971f;
border-color: #d58512;
}
.btn-warning:active:hover,
.btn-warning.active:hover,
.open > .dropdown-toggle.btn-warning:hover,
.btn-warning:active:focus,
.btn-warning.active:focus,
.open > .dropdown-toggle.btn-warning:focus,
.btn-warning:active.focus,
.btn-warning.active.focus,
.open > .dropdown-toggle.btn-warning.focus {
color: #fff;
background-color: #d58512;
border-color: #985f0d;
}
.btn-warning:active,
.btn-warning.active,
.open > .dropdown-toggle.btn-warning {
background-image: none;
}
.btn-warning.disabled:hover,
.btn-warning[disabled]:hover,
fieldset[disabled] .btn-warning:hover,
.btn-warning.disabled:focus,
.btn-warning[disabled]:focus,
fieldset[disabled] .btn-warning:focus,
.btn-warning.disabled.focus,
.btn-warning[disabled].focus,
fieldset[disabled] .btn-warning.focus {
background-color: #f0ad4e;
border-color: #eea236;
}
.btn-warning .badge {
color: #f0ad4e;
background-color: #fff;
}
.btn-danger {
color: #fff;
background-color: #d9534f;
border-color: #d43f3a;
}
.btn-danger:focus,
.btn-danger.focus {
color: #fff;
background-color: #c9302c;
border-color: #761c19;
}
.btn-danger:hover {
color: #fff;
background-color: #c9302c;
border-color: #ac2925;
}
.btn-danger:active,
.btn-danger.active,
.open > .dropdown-toggle.btn-danger {
color: #fff;
background-color: #c9302c;
border-color: #ac2925;
}
.btn-danger:active:hover,
.btn-danger.active:hover,
.open > .dropdown-toggle.btn-danger:hover,
.btn-danger:active:focus,
.btn-danger.active:focus,
.open > .dropdown-toggle.btn-danger:focus,
.btn-danger:active.focus,
.btn-danger.active.focus,
.open > .dropdown-toggle.btn-danger.focus {
color: #fff;
background-color: #ac2925;
border-color: #761c19;
}
.btn-danger:active,
.btn-danger.active,
.open > .dropdown-toggle.btn-danger {
background-image: none;
}
.btn-danger.disabled:hover,
.btn-danger[disabled]:hover,
fieldset[disabled] .btn-danger:hover,
.btn-danger.disabled:focus,
.btn-danger[disabled]:focus,
fieldset[disabled] .btn-danger:focus,
.btn-danger.disabled.focus,
.btn-danger[disabled].focus,
fieldset[disabled] .btn-danger.focus {
background-color: #d9534f;
border-color: #d43f3a;
}
.btn-danger .badge {
color: #d9534f;
background-color: #fff;
}
.btn-link {
color: #337ab7;
font-weight: normal;
border-radius: 0;
}
.btn-link,
.btn-link:active,
.btn-link.active,
.btn-link[disabled],
fieldset[disabled] .btn-link {
background-color: transparent;
-webkit-box-shadow: none;
box-shadow: none;
}
.btn-link,
.btn-link:hover,
.btn-link:focus,
.btn-link:active {
border-color: transparent;
}
.btn-link:hover,
.btn-link:focus {
color: #23527c;
text-decoration: underline;
background-color: transparent;
}
.btn-link[disabled]:hover,
fieldset[disabled] .btn-link:hover,
.btn-link[disabled]:focus,
fieldset[disabled] .btn-link:focus {
color: #777777;
text-decoration: none;
}
.btn-lg,
.btn-group-lg > .btn {
padding: 10px 16px;
font-size: 17px;
line-height: 1.3333333;
border-radius: 3px;
}
.btn-sm,
.btn-group-sm > .btn {
padding: 5px 10px;
font-size: 12px;
line-height: 1.5;
border-radius: 1px;
}
.btn-xs,
.btn-group-xs > .btn {
padding: 1px 5px;
font-size: 12px;
line-height: 1.5;
border-radius: 1px;
}
.btn-block {
display: block;
width: 100%;
}
.btn-block + .btn-block {
margin-top: 5px;
}
input[type="submit"].btn-block,
input[type="reset"].btn-block,
input[type="button"].btn-block {
width: 100%;
}
.fade {
opacity: 0;
-webkit-transition: opacity 0.15s linear;
-o-transition: opacity 0.15s linear;
transition: opacity 0.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-property: height, visibility;
transition-property: height, visibility;
-webkit-transition-duration: 0.35s;
transition-duration: 0.35s;
-webkit-transition-timing-function: ease;
transition-timing-function: ease;
}
.caret {
display: inline-block;
width: 0;
height: 0;
margin-left: 2px;
vertical-align: middle;
border-top: 4px dashed;
border-top: 4px solid \9;
border-right: 4px solid transparent;
border-left: 4px solid transparent;
}
.dropup,
.dropdown {
position: relative;
}
.dropdown-toggle:focus {
outline: 0;
}
.dropdown-menu {
position: absolute;
top: 100%;
left: 0;
z-index: 1000;
display: none;
float: left;
min-width: 160px;
padding: 5px 0;
margin: 2px 0 0;
list-style: none;
font-size: 13px;
text-align: left;
background-color: #fff;
border: 1px solid #ccc;
border: 1px solid rgba(0, 0, 0, 0.15);
border-radius: 2px;
-webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
background-clip: padding-box;
}
.dropdown-menu.pull-right {
right: 0;
left: auto;
}
.dropdown-menu .divider {
height: 1px;
margin: 8px 0;
overflow: hidden;
background-color: #e5e5e5;
}
.dropdown-menu > li > a {
display: block;
padding: 3px 20px;
clear: both;
font-weight: normal;
line-height: 1.42857143;
color: #333333;
white-space: nowrap;
}
.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus {
text-decoration: none;
color: #262626;
background-color: #f5f5f5;
}
.dropdown-menu > .active > a,
.dropdown-menu > .active > a:hover,
.dropdown-menu > .active > a:focus {
color: #fff;
text-decoration: none;
outline: 0;
background-color: #337ab7;
}
.dropdown-menu > .disabled > a,
.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus {
color: #777777;
}
.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus {
text-decoration: none;
background-color: transparent;
background-image: none;
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
cursor: not-allowed;
}
.open > .dropdown-menu {
display: block;
}
.open > a {
outline: 0;
}
.dropdown-menu-right {
left: auto;
right: 0;
}
.dropdown-menu-left {
left: 0;
right: auto;
}
.dropdown-header {
display: block;
padding: 3px 20px;
font-size: 12px;
line-height: 1.42857143;
color: #777777;
white-space: nowrap;
}
.dropdown-backdrop {
position: fixed;
left: 0;
right: 0;
bottom: 0;
top: 0;
z-index: 990;
}
.pull-right > .dropdown-menu {
right: 0;
left: auto;
}
.dropup .caret,
.navbar-fixed-bottom .dropdown .caret {
border-top: 0;
border-bottom: 4px dashed;
border-bottom: 4px solid \9;
content: "";
}
.dropup .dropdown-menu,
.navbar-fixed-bottom .dropdown .dropdown-menu {
top: auto;
bottom: 100%;
margin-bottom: 2px;
}
@media (min-width: 541px) {
.navbar-right .dropdown-menu {
left: auto;
right: 0;
}
.navbar-right .dropdown-menu-left {
left: 0;
right: auto;
}
}
.btn-group,
.btn-group-vertical {
position: relative;
display: inline-block;
vertical-align: middle;
}
.btn-group > .btn,
.btn-group-vertical > .btn {
position: relative;
float: left;
}
.btn-group > .btn:hover,
.btn-group-vertical > .btn:hover,
.btn-group > .btn:focus,
.btn-group-vertical > .btn:focus,
.btn-group > .btn:active,
.btn-group-vertical > .btn:active,
.btn-group > .btn.active,
.btn-group-vertical > .btn.active {
z-index: 2;
}
.btn-group .btn + .btn,
.btn-group .btn + .btn-group,
.btn-group .btn-group + .btn,
.btn-group .btn-group + .btn-group {
margin-left: -1px;
}
.btn-toolbar {
margin-left: -5px;
}
.btn-toolbar .btn,
.btn-toolbar .btn-group,
.btn-toolbar .input-group {
float: left;
}
.btn-toolbar > .btn,
.btn-toolbar > .btn-group,
.btn-toolbar > .input-group {
margin-left: 5px;
}
.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
border-radius: 0;
}
.btn-group > .btn:first-child {
margin-left: 0;
}
.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
border-bottom-right-radius: 0;
border-top-right-radius: 0;
}
.btn-group > .btn:last-child:not(:first-child),
.btn-group > .dropdown-toggle:not(:first-child) {
border-bottom-left-radius: 0;
border-top-left-radius: 0;
}
.btn-group > .btn-group {
float: left;
}
.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
border-radius: 0;
}
.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,
.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
border-bottom-right-radius: 0;
border-top-right-radius: 0;
}
.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
border-bottom-left-radius: 0;
border-top-left-radius: 0;
}
.btn-group .dropdown-toggle:active,
.btn-group.open .dropdown-toggle {
outline: 0;
}
.btn-group > .btn + .dropdown-toggle {
padding-left: 8px;
padding-right: 8px;
}
.btn-group > .btn-lg + .dropdown-toggle {
padding-left: 12px;
padding-right: 12px;
}
.btn-group.open .dropdown-toggle {
-webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}
.btn-group.open .dropdown-toggle.btn-link {
-webkit-box-shadow: none;
box-shadow: none;
}
.btn .caret {
margin-left: 0;
}
.btn-lg .caret {
border-width: 5px 5px 0;
border-bottom-width: 0;
}
.dropup .btn-lg .caret {
border-width: 0 5px 5px;
}
.btn-group-vertical > .btn,
.btn-group-vertical > .btn-group,
.btn-group-vertical > .btn-group > .btn {
display: block;
float: none;
width: 100%;
max-width: 100%;
}
.btn-group-vertical > .btn-group > .btn {
float: none;
}
.btn-group-vertical > .btn + .btn,
.btn-group-vertical > .btn + .btn-group,
.btn-group-vertical > .btn-group + .btn,
.btn-group-vertical > .btn-group + .btn-group {
margin-top: -1px;
margin-left: 0;
}
.btn-group-vertical > .btn:not(:first-child):not(:last-child) {
border-radius: 0;
}
.btn-group-vertical > .btn:first-child:not(:last-child) {
border-top-right-radius: 2px;
border-top-left-radius: 2px;
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
}
.btn-group-vertical > .btn:last-child:not(:first-child) {
border-top-right-radius: 0;
border-top-left-radius: 0;
border-bottom-right-radius: 2px;
border-bottom-left-radius: 2px;
}
.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
border-radius: 0;
}
.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
}
.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
border-top-right-radius: 0;
border-top-left-radius: 0;
}
.btn-group-justified {
display: table;
width: 100%;
table-layout: fixed;
border-collapse: separate;
}
.btn-group-justified > .btn,
.btn-group-justified > .btn-group {
float: none;
display: table-cell;
width: 1%;
}
.btn-group-justified > .btn-group .btn {
width: 100%;
}
.btn-group-justified > .btn-group .dropdown-menu {
left: auto;
}
[data-toggle="buttons"] > .btn input[type="radio"],
[data-toggle="buttons"] > .btn-group > .btn input[type="radio"],
[data-toggle="buttons"] > .btn input[type="checkbox"],
[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] {
position: absolute;
clip: rect(0, 0, 0, 0);
pointer-events: none;
}
.input-group {
position: relative;
display: table;
border-collapse: separate;
}
.input-group[class*="col-"] {
float: none;
padding-left: 0;
padding-right: 0;
}
.input-group .form-control {
position: relative;
z-index: 2;
float: left;
width: 100%;
margin-bottom: 0;
}
.input-group .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: 45px;
padding: 10px 16px;
font-size: 17px;
line-height: 1.3333333;
border-radius: 3px;
}
select.input-group-lg > .form-control,
select.input-group-lg > .input-group-addon,
select.input-group-lg > .input-group-btn > .btn {
height: 45px;
line-height: 45px;
}
textarea.input-group-lg > .form-control,
textarea.input-group-lg > .input-group-addon,
textarea.input-group-lg > .input-group-btn > .btn,
select[multiple].input-group-lg > .form-control,
select[multiple].input-group-lg > .input-group-addon,
select[multiple].input-group-lg > .input-group-btn > .btn {
height: auto;
}
.input-group-sm > .form-control,
.input-group-sm > .input-group-addon,
.input-group-sm > .input-group-btn > .btn {
height: 30px;
padding: 5px 10px;
font-size: 12px;
line-height: 1.5;
border-radius: 1px;
}
select.input-group-sm > .form-control,
select.input-group-sm > .input-group-addon,
select.input-group-sm > .input-group-btn > .btn {
height: 30px;
line-height: 30px;
}
textarea.input-group-sm > .form-control,
textarea.input-group-sm > .input-group-addon,
textarea.input-group-sm > .input-group-btn > .btn,
select[multiple].input-group-sm > .form-control,
select[multiple].input-group-sm > .input-group-addon,
select[multiple].input-group-sm > .input-group-btn > .btn {
height: auto;
}
.input-group-addon,
.input-group-btn,
.input-group .form-control {
display: table-cell;
}
.input-group-addon:not(:first-child):not(:last-child),
.input-group-btn:not(:first-child):not(:last-child),
.input-group .form-control:not(:first-child):not(:last-child) {
border-radius: 0;
}
.input-group-addon,
.input-group-btn {
width: 1%;
white-space: nowrap;
vertical-align: middle;
}
.input-group-addon {
padding: 6px 12px;
font-size: 13px;
font-weight: normal;
line-height: 1;
color: #555555;
text-align: center;
background-color: #eeeeee;
border: 1px solid #ccc;
border-radius: 2px;
}
.input-group-addon.input-sm {
padding: 5px 10px;
font-size: 12px;
border-radius: 1px;
}
.input-group-addon.input-lg {
padding: 10px 16px;
font-size: 17px;
border-radius: 3px;
}
.input-group-addon input[type="radio"],
.input-group-addon input[type="checkbox"] {
margin-top: 0;
}
.input-group .form-control:first-child,
.input-group-addon:first-child,
.input-group-btn:first-child > .btn,
.input-group-btn:first-child > .btn-group > .btn,
.input-group-btn:first-child > .dropdown-toggle,
.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
border-bottom-right-radius: 0;
border-top-right-radius: 0;
}
.input-group-addon:first-child {
border-right: 0;
}
.input-group .form-control:last-child,
.input-group-addon:last-child,
.input-group-btn:last-child > .btn,
.input-group-btn:last-child > .btn-group > .btn,
.input-group-btn:last-child > .dropdown-toggle,
.input-group-btn:first-child > .btn:not(:first-child),
.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
border-bottom-left-radius: 0;
border-top-left-radius: 0;
}
.input-group-addon:last-child {
border-left: 0;
}
.input-group-btn {
position: relative;
font-size: 0;
white-space: nowrap;
}
.input-group-btn > .btn {
position: relative;
}
.input-group-btn > .btn + .btn {
margin-left: -1px;
}
.input-group-btn > .btn:hover,
.input-group-btn > .btn:focus,
.input-group-btn > .btn:active {
z-index: 2;
}
.input-group-btn:first-child > .btn,
.input-group-btn:first-child > .btn-group {
margin-right: -1px;
}
.input-group-btn:last-child > .btn,
.input-group-btn:last-child > .btn-group {
z-index: 2;
margin-left: -1px;
}
.nav {
margin-bottom: 0;
padding-left: 0;
list-style: none;
}
.nav > li {
position: relative;
display: block;
}
.nav > li > a {
position: relative;
display: block;
padding: 10px 15px;
}
.nav > li > a:hover,
.nav > li > a:focus {
text-decoration: none;
background-color: #eeeeee;
}
.nav > li.disabled > a {
color: #777777;
}
.nav > li.disabled > a:hover,
.nav > li.disabled > a:focus {
color: #777777;
text-decoration: none;
background-color: transparent;
cursor: not-allowed;
}
.nav .open > a,
.nav .open > a:hover,
.nav .open > a:focus {
background-color: #eeeeee;
border-color: #337ab7;
}
.nav .nav-divider {
height: 1px;
margin: 8px 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: 2px 2px 0 0;
}
.nav-tabs > li > a:hover {
border-color: #eeeeee #eeeeee #ddd;
}
.nav-tabs > li.active > a,
.nav-tabs > li.active > a:hover,
.nav-tabs > li.active > a:focus {
color: #555555;
background-color: #fff;
border: 1px solid #ddd;
border-bottom-color: transparent;
cursor: default;
}
.nav-tabs.nav-justified {
width: 100%;
border-bottom: 0;
}
.nav-tabs.nav-justified > li {
float: none;
}
.nav-tabs.nav-justified > li > a {
text-align: center;
margin-bottom: 5px;
}
.nav-tabs.nav-justified > .dropdown .dropdown-menu {
top: auto;
left: auto;
}
@media (min-width: 768px) {
.nav-tabs.nav-justified > li {
display: table-cell;
width: 1%;
}
.nav-tabs.nav-justified > li > a {
margin-bottom: 0;
}
}
.nav-tabs.nav-justified > li > a {
margin-right: 0;
border-radius: 2px;
}
.nav-tabs.nav-justified > .active > a,
.nav-tabs.nav-justified > .active > a:hover,
.nav-tabs.nav-justified > .active > a:focus {
border: 1px solid #ddd;
}
@media (min-width: 768px) {
.nav-tabs.nav-justified > li > a {
border-bottom: 1px solid #ddd;
border-radius: 2px 2px 0 0;
}
.nav-tabs.nav-justified > .active > a,
.nav-tabs.nav-justified > .active > a:hover,
.nav-tabs.nav-justified > .active > a:focus {
border-bottom-color: #fff;
}
}
.nav-pills > li {
float: left;
}
.nav-pills > li > a {
border-radius: 2px;
}
.nav-pills > li + li {
margin-left: 2px;
}
.nav-pills > li.active > a,
.nav-pills > li.active > a:hover,
.nav-pills > li.active > a:focus {
color: #fff;
background-color: #337ab7;
}
.nav-stacked > li {
float: none;
}
.nav-stacked > li + li {
margin-top: 2px;
margin-left: 0;
}
.nav-justified {
width: 100%;
}
.nav-justified > li {
float: none;
}
.nav-justified > li > a {
text-align: center;
margin-bottom: 5px;
}
.nav-justified > .dropdown .dropdown-menu {
top: auto;
left: auto;
}
@media (min-width: 768px) {
.nav-justified > li {
display: table-cell;
width: 1%;
}
.nav-justified > li > a {
margin-bottom: 0;
}
}
.nav-tabs-justified {
border-bottom: 0;
}
.nav-tabs-justified > li > a {
margin-right: 0;
border-radius: 2px;
}
.nav-tabs-justified > .active > a,
.nav-tabs-justified > .active > a:hover,
.nav-tabs-justified > .active > a:focus {
border: 1px solid #ddd;
}
@media (min-width: 768px) {
.nav-tabs-justified > li > a {
border-bottom: 1px solid #ddd;
border-radius: 2px 2px 0 0;
}
.nav-tabs-justified > .active > a,
.nav-tabs-justified > .active > a:hover,
.nav-tabs-justified > .active > a:focus {
border-bottom-color: #fff;
}
}
.tab-content > .tab-pane {
display: none;
}
.tab-content > .active {
display: block;
}
.nav-tabs .dropdown-menu {
margin-top: -1px;
border-top-right-radius: 0;
border-top-left-radius: 0;
}
.navbar {
position: relative;
min-height: 30px;
margin-bottom: 18px;
border: 1px solid transparent;
}
@media (min-width: 541px) {
.navbar {
border-radius: 2px;
}
}
@media (min-width: 541px) {
.navbar-header {
float: left;
}
}
.navbar-collapse {
overflow-x: visible;
padding-right: 0px;
padding-left: 0px;
border-top: 1px solid transparent;
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
-webkit-overflow-scrolling: touch;
}
.navbar-collapse.in {
overflow-y: auto;
}
@media (min-width: 541px) {
.navbar-collapse {
width: auto;
border-top: 0;
box-shadow: none;
}
.navbar-collapse.collapse {
display: block !important;
height: auto !important;
padding-bottom: 0;
overflow: visible !important;
}
.navbar-collapse.in {
overflow-y: visible;
}
.navbar-fixed-top .navbar-collapse,
.navbar-static-top .navbar-collapse,
.navbar-fixed-bottom .navbar-collapse {
padding-left: 0;
padding-right: 0;
}
}
.navbar-fixed-top .navbar-collapse,
.navbar-fixed-bottom .navbar-collapse {
max-height: 340px;
}
@media (max-device-width: 540px) and (orientation: landscape) {
.navbar-fixed-top .navbar-collapse,
.navbar-fixed-bottom .navbar-collapse {
max-height: 200px;
}
}
.container > .navbar-header,
.container-fluid > .navbar-header,
.container > .navbar-collapse,
.container-fluid > .navbar-collapse {
margin-right: 0px;
margin-left: 0px;
}
@media (min-width: 541px) {
.container > .navbar-header,
.container-fluid > .navbar-header,
.container > .navbar-collapse,
.container-fluid > .navbar-collapse {
margin-right: 0;
margin-left: 0;
}
}
.navbar-static-top {
z-index: 1000;
border-width: 0 0 1px;
}
@media (min-width: 541px) {
.navbar-static-top {
border-radius: 0;
}
}
.navbar-fixed-top,
.navbar-fixed-bottom {
position: fixed;
right: 0;
left: 0;
z-index: 1030;
}
@media (min-width: 541px) {
.navbar-fixed-top,
.navbar-fixed-bottom {
border-radius: 0;
}
}
.navbar-fixed-top {
top: 0;
border-width: 0 0 1px;
}
.navbar-fixed-bottom {
bottom: 0;
margin-bottom: 0;
border-width: 1px 0 0;
}
.navbar-brand {
float: left;
padding: 6px 0px;
font-size: 17px;
line-height: 18px;
height: 30px;
}
.navbar-brand:hover,
.navbar-brand:focus {
text-decoration: none;
}
.navbar-brand > img {
display: block;
}
@media (min-width: 541px) {
.navbar > .container .navbar-brand,
.navbar > .container-fluid .navbar-brand {
margin-left: 0px;
}
}
.navbar-toggle {
position: relative;
float: right;
margin-right: 0px;
padding: 9px 10px;
margin-top: -2px;
margin-bottom: -2px;
background-color: transparent;
background-image: none;
border: 1px solid transparent;
border-radius: 2px;
}
.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: 541px) {
.navbar-toggle {
display: none;
}
}
.navbar-nav {
margin: 3px 0px;
}
.navbar-nav > li > a {
padding-top: 10px;
padding-bottom: 10px;
line-height: 18px;
}
@media (max-width: 540px) {
.navbar-nav .open .dropdown-menu {
position: static;
float: none;
width: auto;
margin-top: 0;
background-color: transparent;
border: 0;
box-shadow: none;
}
.navbar-nav .open .dropdown-menu > li > a,
.navbar-nav .open .dropdown-menu .dropdown-header {
padding: 5px 15px 5px 25px;
}
.navbar-nav .open .dropdown-menu > li > a {
line-height: 18px;
}
.navbar-nav .open .dropdown-menu > li > a:hover,
.navbar-nav .open .dropdown-menu > li > a:focus {
background-image: none;
}
}
@media (min-width: 541px) {
.navbar-nav {
float: left;
margin: 0;
}
.navbar-nav > li {
float: left;
}
.navbar-nav > li > a {
padding-top: 6px;
padding-bottom: 6px;
}
}
.navbar-form {
margin-left: 0px;
margin-right: 0px;
padding: 10px 0px;
border-top: 1px solid transparent;
border-bottom: 1px solid transparent;
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
margin-top: -1px;
margin-bottom: -1px;
}
@media (min-width: 768px) {
.navbar-form .form-group {
display: inline-block;
margin-bottom: 0;
vertical-align: middle;
}
.navbar-form .form-control {
display: inline-block;
width: auto;
vertical-align: middle;
}
.navbar-form .form-control-static {
display: inline-block;
}
.navbar-form .input-group {
display: inline-table;
vertical-align: middle;
}
.navbar-form .input-group .input-group-addon,
.navbar-form .input-group .input-group-btn,
.navbar-form .input-group .form-control {
width: auto;
}
.navbar-form .input-group > .form-control {
width: 100%;
}
.navbar-form .control-label {
margin-bottom: 0;
vertical-align: middle;
}
.navbar-form .radio,
.navbar-form .checkbox {
display: inline-block;
margin-top: 0;
margin-bottom: 0;
vertical-align: middle;
}
.navbar-form .radio label,
.navbar-form .checkbox label {
padding-left: 0;
}
.navbar-form .radio input[type="radio"],
.navbar-form .checkbox input[type="checkbox"] {
position: relative;
margin-left: 0;
}
.navbar-form .has-feedback .form-control-feedback {
top: 0;
}
}
@media (max-width: 540px) {
.navbar-form .form-group {
margin-bottom: 5px;
}
.navbar-form .form-group:last-child {
margin-bottom: 0;
}
}
@media (min-width: 541px) {
.navbar-form {
width: auto;
border: 0;
margin-left: 0;
margin-right: 0;
padding-top: 0;
padding-bottom: 0;
-webkit-box-shadow: none;
box-shadow: none;
}
}
.navbar-nav > li > .dropdown-menu {
margin-top: 0;
border-top-right-radius: 0;
border-top-left-radius: 0;
}
.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
margin-bottom: 0;
border-top-right-radius: 2px;
border-top-left-radius: 2px;
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
}
.navbar-btn {
margin-top: -1px;
margin-bottom: -1px;
}
.navbar-btn.btn-sm {
margin-top: 0px;
margin-bottom: 0px;
}
.navbar-btn.btn-xs {
margin-top: 4px;
margin-bottom: 4px;
}
.navbar-text {
margin-top: 6px;
margin-bottom: 6px;
}
@media (min-width: 541px) {
.navbar-text {
float: left;
margin-left: 0px;
margin-right: 0px;
}
}
@media (min-width: 541px) {
.navbar-left {
float: left !important;
float: left;
}
.navbar-right {
float: right !important;
float: right;
margin-right: 0px;
}
.navbar-right ~ .navbar-right {
margin-right: 0;
}
}
.navbar-default {
background-color: #f8f8f8;
border-color: #e7e7e7;
}
.navbar-default .navbar-brand {
color: #777;
}
.navbar-default .navbar-brand:hover,
.navbar-default .navbar-brand:focus {
color: #5e5e5e;
background-color: transparent;
}
.navbar-default .navbar-text {
color: #777;
}
.navbar-default .navbar-nav > li > a {
color: #777;
}
.navbar-default .navbar-nav > li > a:hover,
.navbar-default .navbar-nav > li > a:focus {
color: #333;
background-color: transparent;
}
.navbar-default .navbar-nav > .active > a,
.navbar-default .navbar-nav > .active > a:hover,
.navbar-default .navbar-nav > .active > a:focus {
color: #555;
background-color: #e7e7e7;
}
.navbar-default .navbar-nav > .disabled > a,
.navbar-default .navbar-nav > .disabled > a:hover,
.navbar-default .navbar-nav > .disabled > a:focus {
color: #ccc;
background-color: transparent;
}
.navbar-default .navbar-toggle {
border-color: #ddd;
}
.navbar-default .navbar-toggle:hover,
.navbar-default .navbar-toggle:focus {
background-color: #ddd;
}
.navbar-default .navbar-toggle .icon-bar {
background-color: #888;
}
.navbar-default .navbar-collapse,
.navbar-default .navbar-form {
border-color: #e7e7e7;
}
.navbar-default .navbar-nav > .open > a,
.navbar-default .navbar-nav > .open > a:hover,
.navbar-default .navbar-nav > .open > a:focus {
background-color: #e7e7e7;
color: #555;
}
@media (max-width: 540px) {
.navbar-default .navbar-nav .open .dropdown-menu > li > a {
color: #777;
}
.navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
.navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
color: #333;
background-color: transparent;
}
.navbar-default .navbar-nav .open .dropdown-menu > .active > a,
.navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
.navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
color: #555;
background-color: #e7e7e7;
}
.navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
.navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
.navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
color: #ccc;
background-color: transparent;
}
}
.navbar-default .navbar-link {
color: #777;
}
.navbar-default .navbar-link:hover {
color: #333;
}
.navbar-default .btn-link {
color: #777;
}
.navbar-default .btn-link:hover,
.navbar-default .btn-link:focus {
color: #333;
}
.navbar-default .btn-link[disabled]:hover,
fieldset[disabled] .navbar-default .btn-link:hover,
.navbar-default .btn-link[disabled]:focus,
fieldset[disabled] .navbar-default .btn-link:focus {
color: #ccc;
}
.navbar-inverse {
background-color: #222;
border-color: #080808;
}
.navbar-inverse .navbar-brand {
color: #9d9d9d;
}
.navbar-inverse .navbar-brand:hover,
.navbar-inverse .navbar-brand:focus {
color: #fff;
background-color: transparent;
}
.navbar-inverse .navbar-text {
color: #9d9d9d;
}
.navbar-inverse .navbar-nav > li > a {
color: #9d9d9d;
}
.navbar-inverse .navbar-nav > li > a:hover,
.navbar-inverse .navbar-nav > li > a:focus {
color: #fff;
background-color: transparent;
}
.navbar-inverse .navbar-nav > .active > a,
.navbar-inverse .navbar-nav > .active > a:hover,
.navbar-inverse .navbar-nav > .active > a:focus {
color: #fff;
background-color: #080808;
}
.navbar-inverse .navbar-nav > .disabled > a,
.navbar-inverse .navbar-nav > .disabled > a:hover,
.navbar-inverse .navbar-nav > .disabled > a:focus {
color: #444;
background-color: transparent;
}
.navbar-inverse .navbar-toggle {
border-color: #333;
}
.navbar-inverse .navbar-toggle:hover,
.navbar-inverse .navbar-toggle:focus {
background-color: #333;
}
.navbar-inverse .navbar-toggle .icon-bar {
background-color: #fff;
}
.navbar-inverse .navbar-collapse,
.navbar-inverse .navbar-form {
border-color: #101010;
}
.navbar-inverse .navbar-nav > .open > a,
.navbar-inverse .navbar-nav > .open > a:hover,
.navbar-inverse .navbar-nav > .open > a:focus {
background-color: #080808;
color: #fff;
}
@media (max-width: 540px) {
.navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
border-color: #080808;
}
.navbar-inverse .navbar-nav .open .dropdown-menu .divider {
background-color: #080808;
}
.navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
color: #9d9d9d;
}
.navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
.navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
color: #fff;
background-color: transparent;
}
.navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
.navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
.navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
color: #fff;
background-color: #080808;
}
.navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
.navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
.navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
color: #444;
background-color: transparent;
}
}
.navbar-inverse .navbar-link {
color: #9d9d9d;
}
.navbar-inverse .navbar-link:hover {
color: #fff;
}
.navbar-inverse .btn-link {
color: #9d9d9d;
}
.navbar-inverse .btn-link:hover,
.navbar-inverse .btn-link:focus {
color: #fff;
}
.navbar-inverse .btn-link[disabled]:hover,
fieldset[disabled] .navbar-inverse .btn-link:hover,
.navbar-inverse .btn-link[disabled]:focus,
fieldset[disabled] .navbar-inverse .btn-link:focus {
color: #444;
}
.breadcrumb {
padding: 8px 15px;
margin-bottom: 18px;
list-style: none;
background-color: #f5f5f5;
border-radius: 2px;
}
.breadcrumb > li {
display: inline-block;
}
.breadcrumb > li + li:before {
content: "/\00a0";
padding: 0 5px;
color: #5e5e5e;
}
.breadcrumb > .active {
color: #777777;
}
.pagination {
display: inline-block;
padding-left: 0;
margin: 18px 0;
border-radius: 2px;
}
.pagination > li {
display: inline;
}
.pagination > li > a,
.pagination > li > span {
position: relative;
float: left;
padding: 6px 12px;
line-height: 1.42857143;
text-decoration: none;
color: #337ab7;
background-color: #fff;
border: 1px solid #ddd;
margin-left: -1px;
}
.pagination > li:first-child > a,
.pagination > li:first-child > span {
margin-left: 0;
border-bottom-left-radius: 2px;
border-top-left-radius: 2px;
}
.pagination > li:last-child > a,
.pagination > li:last-child > span {
border-bottom-right-radius: 2px;
border-top-right-radius: 2px;
}
.pagination > li > a:hover,
.pagination > li > span:hover,
.pagination > li > a:focus,
.pagination > li > span:focus {
z-index: 2;
color: #23527c;
background-color: #eeeeee;
border-color: #ddd;
}
.pagination > .active > a,
.pagination > .active > span,
.pagination > .active > a:hover,
.pagination > .active > span:hover,
.pagination > .active > a:focus,
.pagination > .active > span:focus {
z-index: 3;
color: #fff;
background-color: #337ab7;
border-color: #337ab7;
cursor: default;
}
.pagination > .disabled > span,
.pagination > .disabled > span:hover,
.pagination > .disabled > span:focus,
.pagination > .disabled > a,
.pagination > .disabled > a:hover,
.pagination > .disabled > a:focus {
color: #777777;
background-color: #fff;
border-color: #ddd;
cursor: not-allowed;
}
.pagination-lg > li > a,
.pagination-lg > li > span {
padding: 10px 16px;
font-size: 17px;
line-height: 1.3333333;
}
.pagination-lg > li:first-child > a,
.pagination-lg > li:first-child > span {
border-bottom-left-radius: 3px;
border-top-left-radius: 3px;
}
.pagination-lg > li:last-child > a,
.pagination-lg > li:last-child > span {
border-bottom-right-radius: 3px;
border-top-right-radius: 3px;
}
.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-bottom-left-radius: 1px;
border-top-left-radius: 1px;
}
.pagination-sm > li:last-child > a,
.pagination-sm > li:last-child > span {
border-bottom-right-radius: 1px;
border-top-right-radius: 1px;
}
.pager {
padding-left: 0;
margin: 18px 0;
list-style: none;
text-align: center;
}
.pager li {
display: inline;
}
.pager li > a,
.pager li > span {
display: inline-block;
padding: 5px 14px;
background-color: #fff;
border: 1px solid #ddd;
border-radius: 15px;
}
.pager li > a:hover,
.pager li > a:focus {
text-decoration: none;
background-color: #eeeeee;
}
.pager .next > a,
.pager .next > span {
float: right;
}
.pager .previous > a,
.pager .previous > span {
float: left;
}
.pager .disabled > a,
.pager .disabled > a:hover,
.pager .disabled > a:focus,
.pager .disabled > span {
color: #777777;
background-color: #fff;
cursor: not-allowed;
}
.label {
display: inline;
padding: .2em .6em .3em;
font-size: 75%;
font-weight: bold;
line-height: 1;
color: #fff;
text-align: center;
white-space: nowrap;
vertical-align: baseline;
border-radius: .25em;
}
a.label:hover,
a.label:focus {
color: #fff;
text-decoration: none;
cursor: pointer;
}
.label:empty {
display: none;
}
.btn .label {
position: relative;
top: -1px;
}
.label-default {
background-color: #777777;
}
.label-default[href]:hover,
.label-default[href]:focus {
background-color: #5e5e5e;
}
.label-primary {
background-color: #337ab7;
}
.label-primary[href]:hover,
.label-primary[href]:focus {
background-color: #286090;
}
.label-success {
background-color: #5cb85c;
}
.label-success[href]:hover,
.label-success[href]:focus {
background-color: #449d44;
}
.label-info {
background-color: #5bc0de;
}
.label-info[href]:hover,
.label-info[href]:focus {
background-color: #31b0d5;
}
.label-warning {
background-color: #f0ad4e;
}
.label-warning[href]:hover,
.label-warning[href]:focus {
background-color: #ec971f;
}
.label-danger {
background-color: #d9534f;
}
.label-danger[href]:hover,
.label-danger[href]:focus {
background-color: #c9302c;
}
.badge {
display: inline-block;
min-width: 10px;
padding: 3px 7px;
font-size: 12px;
font-weight: bold;
color: #fff;
line-height: 1;
vertical-align: middle;
white-space: nowrap;
text-align: center;
background-color: #777777;
border-radius: 10px;
}
.badge:empty {
display: none;
}
.btn .badge {
position: relative;
top: -1px;
}
.btn-xs .badge,
.btn-group-xs > .btn .badge {
top: 0;
padding: 1px 5px;
}
a.badge:hover,
a.badge:focus {
color: #fff;
text-decoration: none;
cursor: pointer;
}
.list-group-item.active > .badge,
.nav-pills > .active > a > .badge {
color: #337ab7;
background-color: #fff;
}
.list-group-item > .badge {
float: right;
}
.list-group-item > .badge + .badge {
margin-right: 5px;
}
.nav-pills > li > a > .badge {
margin-left: 3px;
}
.jumbotron {
padding-top: 30px;
padding-bottom: 30px;
margin-bottom: 30px;
color: inherit;
background-color: #eeeeee;
}
.jumbotron h1,
.jumbotron .h1 {
color: inherit;
}
.jumbotron p {
margin-bottom: 15px;
font-size: 20px;
font-weight: 200;
}
.jumbotron > hr {
border-top-color: #d5d5d5;
}
.container .jumbotron,
.container-fluid .jumbotron {
border-radius: 3px;
padding-left: 0px;
padding-right: 0px;
}
.jumbotron .container {
max-width: 100%;
}
@media screen and (min-width: 768px) {
.jumbotron {
padding-top: 48px;
padding-bottom: 48px;
}
.container .jumbotron,
.container-fluid .jumbotron {
padding-left: 60px;
padding-right: 60px;
}
.jumbotron h1,
.jumbotron .h1 {
font-size: 59px;
}
}
.thumbnail {
display: block;
padding: 4px;
margin-bottom: 18px;
line-height: 1.42857143;
background-color: #fff;
border: 1px solid #ddd;
border-radius: 2px;
-webkit-transition: border 0.2s ease-in-out;
-o-transition: border 0.2s ease-in-out;
transition: border 0.2s ease-in-out;
}
.thumbnail > img,
.thumbnail a > img {
margin-left: auto;
margin-right: auto;
}
a.thumbnail:hover,
a.thumbnail:focus,
a.thumbnail.active {
border-color: #337ab7;
}
.thumbnail .caption {
padding: 9px;
color: #000;
}
.alert {
padding: 15px;
margin-bottom: 18px;
border: 1px solid transparent;
border-radius: 2px;
}
.alert h4 {
margin-top: 0;
color: inherit;
}
.alert .alert-link {
font-weight: bold;
}
.alert > p,
.alert > ul {
margin-bottom: 0;
}
.alert > p + p {
margin-top: 5px;
}
.alert-dismissable,
.alert-dismissible {
padding-right: 35px;
}
.alert-dismissable .close,
.alert-dismissible .close {
position: relative;
top: -2px;
right: -21px;
color: inherit;
}
.alert-success {
background-color: #dff0d8;
border-color: #d6e9c6;
color: #3c763d;
}
.alert-success hr {
border-top-color: #c9e2b3;
}
.alert-success .alert-link {
color: #2b542c;
}
.alert-info {
background-color: #d9edf7;
border-color: #bce8f1;
color: #31708f;
}
.alert-info hr {
border-top-color: #a6e1ec;
}
.alert-info .alert-link {
color: #245269;
}
.alert-warning {
background-color: #fcf8e3;
border-color: #faebcc;
color: #8a6d3b;
}
.alert-warning hr {
border-top-color: #f7e1b5;
}
.alert-warning .alert-link {
color: #66512c;
}
.alert-danger {
background-color: #f2dede;
border-color: #ebccd1;
color: #a94442;
}
.alert-danger hr {
border-top-color: #e4b9c0;
}
.alert-danger .alert-link {
color: #843534;
}
@-webkit-keyframes progress-bar-stripes {
from {
background-position: 40px 0;
}
to {
background-position: 0 0;
}
}
@keyframes progress-bar-stripes {
from {
background-position: 40px 0;
}
to {
background-position: 0 0;
}
}
.progress {
overflow: hidden;
height: 18px;
margin-bottom: 18px;
background-color: #f5f5f5;
border-radius: 2px;
-webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
}
.progress-bar {
float: left;
width: 0%;
height: 100%;
font-size: 12px;
line-height: 18px;
color: #fff;
text-align: center;
background-color: #337ab7;
-webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
-webkit-transition: width 0.6s ease;
-o-transition: width 0.6s ease;
transition: width 0.6s ease;
}
.progress-striped .progress-bar,
.progress-bar-striped {
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-size: 40px 40px;
}
.progress.active .progress-bar,
.progress-bar.active {
-webkit-animation: progress-bar-stripes 2s linear infinite;
-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, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.progress-bar-info {
background-color: #5bc0de;
}
.progress-striped .progress-bar-info {
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.progress-bar-warning {
background-color: #f0ad4e;
}
.progress-striped .progress-bar-warning {
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.progress-bar-danger {
background-color: #d9534f;
}
.progress-striped .progress-bar-danger {
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}
.media {
margin-top: 15px;
}
.media:first-child {
margin-top: 0;
}
.media,
.media-body {
zoom: 1;
overflow: hidden;
}
.media-body {
width: 10000px;
}
.media-object {
display: block;
}
.media-object.img-thumbnail {
max-width: none;
}
.media-right,
.media > .pull-right {
padding-left: 10px;
}
.media-left,
.media > .pull-left {
padding-right: 10px;
}
.media-left,
.media-right,
.media-body {
display: table-cell;
vertical-align: top;
}
.media-middle {
vertical-align: middle;
}
.media-bottom {
vertical-align: bottom;
}
.media-heading {
margin-top: 0;
margin-bottom: 5px;
}
.media-list {
padding-left: 0;
list-style: none;
}
.list-group {
margin-bottom: 20px;
padding-left: 0;
}
.list-group-item {
position: relative;
display: block;
padding: 10px 15px;
margin-bottom: -1px;
background-color: #fff;
border: 1px solid #ddd;
}
.list-group-item:first-child {
border-top-right-radius: 2px;
border-top-left-radius: 2px;
}
.list-group-item:last-child {
margin-bottom: 0;
border-bottom-right-radius: 2px;
border-bottom-left-radius: 2px;
}
a.list-group-item,
button.list-group-item {
color: #555;
}
a.list-group-item .list-group-item-heading,
button.list-group-item .list-group-item-heading {
color: #333;
}
a.list-group-item:hover,
button.list-group-item:hover,
a.list-group-item:focus,
button.list-group-item:focus {
text-decoration: none;
color: #555;
background-color: #f5f5f5;
}
button.list-group-item {
width: 100%;
text-align: left;
}
.list-group-item.disabled,
.list-group-item.disabled:hover,
.list-group-item.disabled:focus {
background-color: #eeeeee;
color: #777777;
cursor: not-allowed;
}
.list-group-item.disabled .list-group-item-heading,
.list-group-item.disabled:hover .list-group-item-heading,
.list-group-item.disabled:focus .list-group-item-heading {
color: inherit;
}
.list-group-item.disabled .list-group-item-text,
.list-group-item.disabled:hover .list-group-item-text,
.list-group-item.disabled:focus .list-group-item-text {
color: #777777;
}
.list-group-item.active,
.list-group-item.active:hover,
.list-group-item.active:focus {
z-index: 2;
color: #fff;
background-color: #337ab7;
border-color: #337ab7;
}
.list-group-item.active .list-group-item-heading,
.list-group-item.active:hover .list-group-item-heading,
.list-group-item.active:focus .list-group-item-heading,
.list-group-item.active .list-group-item-heading > small,
.list-group-item.active:hover .list-group-item-heading > small,
.list-group-item.active:focus .list-group-item-heading > small,
.list-group-item.active .list-group-item-heading > .small,
.list-group-item.active:hover .list-group-item-heading > .small,
.list-group-item.active:focus .list-group-item-heading > .small {
color: inherit;
}
.list-group-item.active .list-group-item-text,
.list-group-item.active:hover .list-group-item-text,
.list-group-item.active:focus .list-group-item-text {
color: #c7ddef;
}
.list-group-item-success {
color: #3c763d;
background-color: #dff0d8;
}
a.list-group-item-success,
button.list-group-item-success {
color: #3c763d;
}
a.list-group-item-success .list-group-item-heading,
button.list-group-item-success .list-group-item-heading {
color: inherit;
}
a.list-group-item-success:hover,
button.list-group-item-success:hover,
a.list-group-item-success:focus,
button.list-group-item-success:focus {
color: #3c763d;
background-color: #d0e9c6;
}
a.list-group-item-success.active,
button.list-group-item-success.active,
a.list-group-item-success.active:hover,
button.list-group-item-success.active:hover,
a.list-group-item-success.active:focus,
button.list-group-item-success.active:focus {
color: #fff;
background-color: #3c763d;
border-color: #3c763d;
}
.list-group-item-info {
color: #31708f;
background-color: #d9edf7;
}
a.list-group-item-info,
button.list-group-item-info {
color: #31708f;
}
a.list-group-item-info .list-group-item-heading,
button.list-group-item-info .list-group-item-heading {
color: inherit;
}
a.list-group-item-info:hover,
button.list-group-item-info:hover,
a.list-group-item-info:focus,
button.list-group-item-info:focus {
color: #31708f;
background-color: #c4e3f3;
}
a.list-group-item-info.active,
button.list-group-item-info.active,
a.list-group-item-info.active:hover,
button.list-group-item-info.active:hover,
a.list-group-item-info.active:focus,
button.list-group-item-info.active:focus {
color: #fff;
background-color: #31708f;
border-color: #31708f;
}
.list-group-item-warning {
color: #8a6d3b;
background-color: #fcf8e3;
}
a.list-group-item-warning,
button.list-group-item-warning {
color: #8a6d3b;
}
a.list-group-item-warning .list-group-item-heading,
button.list-group-item-warning .list-group-item-heading {
color: inherit;
}
a.list-group-item-warning:hover,
button.list-group-item-warning:hover,
a.list-group-item-warning:focus,
button.list-group-item-warning:focus {
color: #8a6d3b;
background-color: #faf2cc;
}
a.list-group-item-warning.active,
button.list-group-item-warning.active,
a.list-group-item-warning.active:hover,
button.list-group-item-warning.active:hover,
a.list-group-item-warning.active:focus,
button.list-group-item-warning.active:focus {
color: #fff;
background-color: #8a6d3b;
border-color: #8a6d3b;
}
.list-group-item-danger {
color: #a94442;
background-color: #f2dede;
}
a.list-group-item-danger,
button.list-group-item-danger {
color: #a94442;
}
a.list-group-item-danger .list-group-item-heading,
button.list-group-item-danger .list-group-item-heading {
color: inherit;
}
a.list-group-item-danger:hover,
button.list-group-item-danger:hover,
a.list-group-item-danger:focus,
button.list-group-item-danger:focus {
color: #a94442;
background-color: #ebcccc;
}
a.list-group-item-danger.active,
button.list-group-item-danger.active,
a.list-group-item-danger.active:hover,
button.list-group-item-danger.active:hover,
a.list-group-item-danger.active:focus,
button.list-group-item-danger.active:focus {
color: #fff;
background-color: #a94442;
border-color: #a94442;
}
.list-group-item-heading {
margin-top: 0;
margin-bottom: 5px;
}
.list-group-item-text {
margin-bottom: 0;
line-height: 1.3;
}
.panel {
margin-bottom: 18px;
background-color: #fff;
border: 1px solid transparent;
border-radius: 2px;
-webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
}
.panel-body {
padding: 15px;
}
.panel-heading {
padding: 10px 15px;
border-bottom: 1px solid transparent;
border-top-right-radius: 1px;
border-top-left-radius: 1px;
}
.panel-heading > .dropdown .dropdown-toggle {
color: inherit;
}
.panel-title {
margin-top: 0;
margin-bottom: 0;
font-size: 15px;
color: inherit;
}
.panel-title > a,
.panel-title > small,
.panel-title > .small,
.panel-title > small > a,
.panel-title > .small > a {
color: inherit;
}
.panel-footer {
padding: 10px 15px;
background-color: #f5f5f5;
border-top: 1px solid #ddd;
border-bottom-right-radius: 1px;
border-bottom-left-radius: 1px;
}
.panel > .list-group,
.panel > .panel-collapse > .list-group {
margin-bottom: 0;
}
.panel > .list-group .list-group-item,
.panel > .panel-collapse > .list-group .list-group-item {
border-width: 1px 0;
border-radius: 0;
}
.panel > .list-group:first-child .list-group-item:first-child,
.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {
border-top: 0;
border-top-right-radius: 1px;
border-top-left-radius: 1px;
}
.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: 1px;
border-bottom-left-radius: 1px;
}
.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {
border-top-right-radius: 0;
border-top-left-radius: 0;
}
.panel-heading + .list-group .list-group-item:first-child {
border-top-width: 0;
}
.list-group + .panel-footer {
border-top-width: 0;
}
.panel > .table,
.panel > .table-responsive > .table,
.panel > .panel-collapse > .table {
margin-bottom: 0;
}
.panel > .table caption,
.panel > .table-responsive > .table caption,
.panel > .panel-collapse > .table caption {
padding-left: 15px;
padding-right: 15px;
}
.panel > .table:first-child,
.panel > .table-responsive:first-child > .table:first-child {
border-top-right-radius: 1px;
border-top-left-radius: 1px;
}
.panel > .table:first-child > thead:first-child > tr:first-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,
.panel > .table:first-child > tbody:first-child > tr:first-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {
border-top-left-radius: 1px;
border-top-right-radius: 1px;
}
.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
border-top-left-radius: 1px;
}
.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
border-top-right-radius: 1px;
}
.panel > .table:last-child,
.panel > .table-responsive:last-child > .table:last-child {
border-bottom-right-radius: 1px;
border-bottom-left-radius: 1px;
}
.panel > .table:last-child > tbody:last-child > tr:last-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {
border-bottom-left-radius: 1px;
border-bottom-right-radius: 1px;
}
.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
border-bottom-left-radius: 1px;
}
.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
border-bottom-right-radius: 1px;
}
.panel > .panel-body + .table,
.panel > .panel-body + .table-responsive,
.panel > .table + .panel-body,
.panel > .table-responsive + .panel-body {
border-top: 1px solid #ddd;
}
.panel > .table > tbody:first-child > tr:first-child th,
.panel > .table > tbody:first-child > tr:first-child td {
border-top: 0;
}
.panel > .table-bordered,
.panel > .table-responsive > .table-bordered {
border: 0;
}
.panel > .table-bordered > thead > tr > th:first-child,
.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
.panel > .table-bordered > tbody > tr > th:first-child,
.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
.panel > .table-bordered > tfoot > tr > th:first-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
.panel > .table-bordered > thead > tr > td:first-child,
.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
.panel > .table-bordered > tbody > tr > td:first-child,
.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
.panel > .table-bordered > tfoot > tr > td:first-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
border-left: 0;
}
.panel > .table-bordered > thead > tr > th:last-child,
.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
.panel > .table-bordered > tbody > tr > th:last-child,
.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
.panel > .table-bordered > tfoot > tr > th:last-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
.panel > .table-bordered > thead > tr > td:last-child,
.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
.panel > .table-bordered > tbody > tr > td:last-child,
.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
.panel > .table-bordered > tfoot > tr > td:last-child,
.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
border-right: 0;
}
.panel > .table-bordered > thead > tr:first-child > td,
.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
.panel > .table-bordered > tbody > tr:first-child > td,
.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
.panel > .table-bordered > thead > tr:first-child > th,
.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
.panel > .table-bordered > tbody > tr:first-child > th,
.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
border-bottom: 0;
}
.panel > .table-bordered > tbody > tr:last-child > td,
.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
.panel > .table-bordered > tfoot > tr:last-child > td,
.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
.panel > .table-bordered > tbody > tr:last-child > th,
.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
.panel > .table-bordered > tfoot > tr:last-child > th,
.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
border-bottom: 0;
}
.panel > .table-responsive {
border: 0;
margin-bottom: 0;
}
.panel-group {
margin-bottom: 18px;
}
.panel-group .panel {
margin-bottom: 0;
border-radius: 2px;
}
.panel-group .panel + .panel {
margin-top: 5px;
}
.panel-group .panel-heading {
border-bottom: 0;
}
.panel-group .panel-heading + .panel-collapse > .panel-body,
.panel-group .panel-heading + .panel-collapse > .list-group {
border-top: 1px solid #ddd;
}
.panel-group .panel-footer {
border-top: 0;
}
.panel-group .panel-footer + .panel-collapse .panel-body {
border-bottom: 1px solid #ddd;
}
.panel-default {
border-color: #ddd;
}
.panel-default > .panel-heading {
color: #333333;
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: #333333;
}
.panel-default > .panel-footer + .panel-collapse > .panel-body {
border-bottom-color: #ddd;
}
.panel-primary {
border-color: #337ab7;
}
.panel-primary > .panel-heading {
color: #fff;
background-color: #337ab7;
border-color: #337ab7;
}
.panel-primary > .panel-heading + .panel-collapse > .panel-body {
border-top-color: #337ab7;
}
.panel-primary > .panel-heading .badge {
color: #337ab7;
background-color: #fff;
}
.panel-primary > .panel-footer + .panel-collapse > .panel-body {
border-bottom-color: #337ab7;
}
.panel-success {
border-color: #d6e9c6;
}
.panel-success > .panel-heading {
color: #3c763d;
background-color: #dff0d8;
border-color: #d6e9c6;
}
.panel-success > .panel-heading + .panel-collapse > .panel-body {
border-top-color: #d6e9c6;
}
.panel-success > .panel-heading .badge {
color: #dff0d8;
background-color: #3c763d;
}
.panel-success > .panel-footer + .panel-collapse > .panel-body {
border-bottom-color: #d6e9c6;
}
.panel-info {
border-color: #bce8f1;
}
.panel-info > .panel-heading {
color: #31708f;
background-color: #d9edf7;
border-color: #bce8f1;
}
.panel-info > .panel-heading + .panel-collapse > .panel-body {
border-top-color: #bce8f1;
}
.panel-info > .panel-heading .badge {
color: #d9edf7;
background-color: #31708f;
}
.panel-info > .panel-footer + .panel-collapse > .panel-body {
border-bottom-color: #bce8f1;
}
.panel-warning {
border-color: #faebcc;
}
.panel-warning > .panel-heading {
color: #8a6d3b;
background-color: #fcf8e3;
border-color: #faebcc;
}
.panel-warning > .panel-heading + .panel-collapse > .panel-body {
border-top-color: #faebcc;
}
.panel-warning > .panel-heading .badge {
color: #fcf8e3;
background-color: #8a6d3b;
}
.panel-warning > .panel-footer + .panel-collapse > .panel-body {
border-bottom-color: #faebcc;
}
.panel-danger {
border-color: #ebccd1;
}
.panel-danger > .panel-heading {
color: #a94442;
background-color: #f2dede;
border-color: #ebccd1;
}
.panel-danger > .panel-heading + .panel-collapse > .panel-body {
border-top-color: #ebccd1;
}
.panel-danger > .panel-heading .badge {
color: #f2dede;
background-color: #a94442;
}
.panel-danger > .panel-footer + .panel-collapse > .panel-body {
border-bottom-color: #ebccd1;
}
.embed-responsive {
position: relative;
display: block;
height: 0;
padding: 0;
overflow: hidden;
}
.embed-responsive .embed-responsive-item,
.embed-responsive iframe,
.embed-responsive embed,
.embed-responsive object,
.embed-responsive video {
position: absolute;
top: 0;
left: 0;
bottom: 0;
height: 100%;
width: 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: 2px;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
}
.well blockquote {
border-color: #ddd;
border-color: rgba(0, 0, 0, 0.15);
}
.well-lg {
padding: 24px;
border-radius: 3px;
}
.well-sm {
padding: 9px;
border-radius: 1px;
}
.close {
float: right;
font-size: 19.5px;
font-weight: bold;
line-height: 1;
color: #000;
text-shadow: 0 1px 0 #fff;
opacity: 0.2;
filter: alpha(opacity=20);
}
.close:hover,
.close:focus {
color: #000;
text-decoration: none;
cursor: pointer;
opacity: 0.5;
filter: alpha(opacity=50);
}
button.close {
padding: 0;
cursor: pointer;
background: transparent;
border: 0;
-webkit-appearance: none;
}
.modal-open {
overflow: hidden;
}
.modal {
display: none;
overflow: hidden;
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 1050;
-webkit-overflow-scrolling: touch;
outline: 0;
}
.modal.fade .modal-dialog {
-webkit-transform: translate(0, -25%);
-ms-transform: translate(0, -25%);
-o-transform: translate(0, -25%);
transform: translate(0, -25%);
-webkit-transition: -webkit-transform 0.3s ease-out;
-moz-transition: -moz-transform 0.3s ease-out;
-o-transition: -o-transform 0.3s ease-out;
transition: transform 0.3s ease-out;
}
.modal.in .modal-dialog {
-webkit-transform: translate(0, 0);
-ms-transform: translate(0, 0);
-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;
border: 1px solid #999;
border: 1px solid rgba(0, 0, 0, 0.2);
border-radius: 3px;
-webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
background-clip: padding-box;
outline: 0;
}
.modal-backdrop {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 1040;
background-color: #000;
}
.modal-backdrop.fade {
opacity: 0;
filter: alpha(opacity=0);
}
.modal-backdrop.in {
opacity: 0.5;
filter: alpha(opacity=50);
}
.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-left: 5px;
margin-bottom: 0;
}
.modal-footer .btn-group .btn + .btn {
margin-left: -1px;
}
.modal-footer .btn-block + .btn-block {
margin-left: 0;
}
.modal-scrollbar-measure {
position: absolute;
top: -9999px;
width: 50px;
height: 50px;
overflow: scroll;
}
@media (min-width: 768px) {
.modal-dialog {
width: 600px;
margin: 30px auto;
}
.modal-content {
-webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
}
.modal-sm {
width: 300px;
}
}
@media (min-width: 992px) {
.modal-lg {
width: 900px;
}
}
.tooltip {
position: absolute;
z-index: 1070;
display: block;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-style: normal;
font-weight: normal;
letter-spacing: normal;
line-break: auto;
line-height: 1.42857143;
text-align: left;
text-align: start;
text-decoration: none;
text-shadow: none;
text-transform: none;
white-space: normal;
word-break: normal;
word-spacing: normal;
word-wrap: normal;
font-size: 12px;
opacity: 0;
filter: alpha(opacity=0);
}
.tooltip.in {
opacity: 0.9;
filter: alpha(opacity=90);
}
.tooltip.top {
margin-top: -3px;
padding: 5px 0;
}
.tooltip.right {
margin-left: 3px;
padding: 0 5px;
}
.tooltip.bottom {
margin-top: 3px;
padding: 5px 0;
}
.tooltip.left {
margin-left: -3px;
padding: 0 5px;
}
.tooltip-inner {
max-width: 200px;
padding: 3px 8px;
color: #fff;
text-align: center;
background-color: #000;
border-radius: 2px;
}
.tooltip-arrow {
position: absolute;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
}
.tooltip.top .tooltip-arrow {
bottom: 0;
left: 50%;
margin-left: -5px;
border-width: 5px 5px 0;
border-top-color: #000;
}
.tooltip.top-left .tooltip-arrow {
bottom: 0;
right: 5px;
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-style: normal;
font-weight: normal;
letter-spacing: normal;
line-break: auto;
line-height: 1.42857143;
text-align: left;
text-align: start;
text-decoration: none;
text-shadow: none;
text-transform: none;
white-space: normal;
word-break: normal;
word-spacing: normal;
word-wrap: normal;
font-size: 13px;
background-color: #fff;
background-clip: padding-box;
border: 1px solid #ccc;
border: 1px solid rgba(0, 0, 0, 0.2);
border-radius: 3px;
-webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
}
.popover.top {
margin-top: -10px;
}
.popover.right {
margin-left: 10px;
}
.popover.bottom {
margin-top: 10px;
}
.popover.left {
margin-left: -10px;
}
.popover-title {
margin: 0;
padding: 8px 14px;
font-size: 13px;
background-color: #f7f7f7;
border-bottom: 1px solid #ebebeb;
border-radius: 2px 2px 0 0;
}
.popover-content {
padding: 9px 14px;
}
.popover > .arrow,
.popover > .arrow:after {
position: absolute;
display: block;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
}
.popover > .arrow {
border-width: 11px;
}
.popover > .arrow:after {
border-width: 10px;
content: "";
}
.popover.top > .arrow {
left: 50%;
margin-left: -11px;
border-bottom-width: 0;
border-top-color: #999999;
border-top-color: rgba(0, 0, 0, 0.25);
bottom: -11px;
}
.popover.top > .arrow:after {
content: " ";
bottom: 1px;
margin-left: -10px;
border-bottom-width: 0;
border-top-color: #fff;
}
.popover.right > .arrow {
top: 50%;
left: -11px;
margin-top: -11px;
border-left-width: 0;
border-right-color: #999999;
border-right-color: rgba(0, 0, 0, 0.25);
}
.popover.right > .arrow:after {
content: " ";
left: 1px;
bottom: -10px;
border-left-width: 0;
border-right-color: #fff;
}
.popover.bottom > .arrow {
left: 50%;
margin-left: -11px;
border-top-width: 0;
border-bottom-color: #999999;
border-bottom-color: rgba(0, 0, 0, 0.25);
top: -11px;
}
.popover.bottom > .arrow:after {
content: " ";
top: 1px;
margin-left: -10px;
border-top-width: 0;
border-bottom-color: #fff;
}
.popover.left > .arrow {
top: 50%;
right: -11px;
margin-top: -11px;
border-right-width: 0;
border-left-color: #999999;
border-left-color: rgba(0, 0, 0, 0.25);
}
.popover.left > .arrow:after {
content: " ";
right: 1px;
border-right-width: 0;
border-left-color: #fff;
bottom: -10px;
}
.carousel {
position: relative;
}
.carousel-inner {
position: relative;
overflow: hidden;
width: 100%;
}
.carousel-inner > .item {
display: none;
position: relative;
-webkit-transition: 0.6s ease-in-out left;
-o-transition: 0.6s ease-in-out left;
transition: 0.6s ease-in-out left;
}
.carousel-inner > .item > img,
.carousel-inner > .item > a > img {
line-height: 1;
}
@media all and (transform-3d), (-webkit-transform-3d) {
.carousel-inner > .item {
-webkit-transition: -webkit-transform 0.6s ease-in-out;
-moz-transition: -moz-transform 0.6s ease-in-out;
-o-transition: -o-transform 0.6s ease-in-out;
transition: transform 0.6s ease-in-out;
-webkit-backface-visibility: hidden;
-moz-backface-visibility: hidden;
backface-visibility: hidden;
-webkit-perspective: 1000px;
-moz-perspective: 1000px;
perspective: 1000px;
}
.carousel-inner > .item.next,
.carousel-inner > .item.active.right {
-webkit-transform: translate3d(100%, 0, 0);
transform: translate3d(100%, 0, 0);
left: 0;
}
.carousel-inner > .item.prev,
.carousel-inner > .item.active.left {
-webkit-transform: translate3d(-100%, 0, 0);
transform: translate3d(-100%, 0, 0);
left: 0;
}
.carousel-inner > .item.next.left,
.carousel-inner > .item.prev.right,
.carousel-inner > .item.active {
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
left: 0;
}
}
.carousel-inner > .active,
.carousel-inner > .next,
.carousel-inner > .prev {
display: block;
}
.carousel-inner > .active {
left: 0;
}
.carousel-inner > .next,
.carousel-inner > .prev {
position: absolute;
top: 0;
width: 100%;
}
.carousel-inner > .next {
left: 100%;
}
.carousel-inner > .prev {
left: -100%;
}
.carousel-inner > .next.left,
.carousel-inner > .prev.right {
left: 0;
}
.carousel-inner > .active.left {
left: -100%;
}
.carousel-inner > .active.right {
left: 100%;
}
.carousel-control {
position: absolute;
top: 0;
left: 0;
bottom: 0;
width: 15%;
opacity: 0.5;
filter: alpha(opacity=50);
font-size: 20px;
color: #fff;
text-align: center;
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
background-color: rgba(0, 0, 0, 0);
}
.carousel-control.left {
background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
}
.carousel-control.right {
left: auto;
right: 0;
background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
}
.carousel-control:hover,
.carousel-control:focus {
outline: 0;
color: #fff;
text-decoration: none;
opacity: 0.9;
filter: alpha(opacity=90);
}
.carousel-control .icon-prev,
.carousel-control .icon-next,
.carousel-control .glyphicon-chevron-left,
.carousel-control .glyphicon-chevron-right {
position: absolute;
top: 50%;
margin-top: -10px;
z-index: 5;
display: inline-block;
}
.carousel-control .icon-prev,
.carousel-control .glyphicon-chevron-left {
left: 50%;
margin-left: -10px;
}
.carousel-control .icon-next,
.carousel-control .glyphicon-chevron-right {
right: 50%;
margin-right: -10px;
}
.carousel-control .icon-prev,
.carousel-control .icon-next {
width: 20px;
height: 20px;
line-height: 1;
font-family: serif;
}
.carousel-control .icon-prev:before {
content: '\2039';
}
.carousel-control .icon-next:before {
content: '\203a';
}
.carousel-indicators {
position: absolute;
bottom: 10px;
left: 50%;
z-index: 15;
width: 60%;
margin-left: -30%;
padding-left: 0;
list-style: none;
text-align: center;
}
.carousel-indicators li {
display: inline-block;
width: 10px;
height: 10px;
margin: 1px;
text-indent: -999px;
border: 1px solid #fff;
border-radius: 10px;
cursor: pointer;
background-color: #000 \9;
background-color: rgba(0, 0, 0, 0);
}
.carousel-indicators .active {
margin: 0;
width: 12px;
height: 12px;
background-color: #fff;
}
.carousel-caption {
position: absolute;
left: 15%;
right: 15%;
bottom: 20px;
z-index: 10;
padding-top: 20px;
padding-bottom: 20px;
color: #fff;
text-align: center;
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
}
.carousel-caption .btn {
text-shadow: none;
}
@media screen and (min-width: 768px) {
.carousel-control .glyphicon-chevron-left,
.carousel-control .glyphicon-chevron-right,
.carousel-control .icon-prev,
.carousel-control .icon-next {
width: 30px;
height: 30px;
margin-top: -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 {
left: 20%;
right: 20%;
padding-bottom: 30px;
}
.carousel-indicators {
bottom: 20px;
}
}
.clearfix:before,
.clearfix:after,
.dl-horizontal dd:before,
.dl-horizontal dd:after,
.container:before,
.container:after,
.container-fluid:before,
.container-fluid:after,
.row:before,
.row:after,
.form-horizontal .form-group:before,
.form-horizontal .form-group:after,
.btn-toolbar:before,
.btn-toolbar:after,
.btn-group-vertical > .btn-group:before,
.btn-group-vertical > .btn-group:after,
.nav:before,
.nav:after,
.navbar:before,
.navbar:after,
.navbar-header:before,
.navbar-header:after,
.navbar-collapse:before,
.navbar-collapse:after,
.pager:before,
.pager:after,
.panel-body:before,
.panel-body:after,
.modal-header:before,
.modal-header:after,
.modal-footer:before,
.modal-footer:after,
.item_buttons:before,
.item_buttons:after {
content: " ";
display: table;
}
.clearfix:after,
.dl-horizontal dd:after,
.container:after,
.container-fluid:after,
.row:after,
.form-horizontal .form-group:after,
.btn-toolbar:after,
.btn-group-vertical > .btn-group:after,
.nav:after,
.navbar:after,
.navbar-header:after,
.navbar-collapse:after,
.pager:after,
.panel-body:after,
.modal-header:after,
.modal-footer:after,
.item_buttons:after {
clear: both;
}
.center-block {
display: block;
margin-left: auto;
margin-right: auto;
}
.pull-right {
float: right !important;
}
.pull-left {
float: left !important;
}
.hide {
display: none !important;
}
.show {
display: block !important;
}
.invisible {
visibility: hidden;
}
.text-hide {
font: 0/0 a;
color: transparent;
text-shadow: none;
background-color: transparent;
border: 0;
}
.hidden {
display: none !important;
}
.affix {
position: fixed;
}
@-ms-viewport {
width: device-width;
}
.visible-xs,
.visible-sm,
.visible-md,
.visible-lg {
display: none !important;
}
.visible-xs-block,
.visible-xs-inline,
.visible-xs-inline-block,
.visible-sm-block,
.visible-sm-inline,
.visible-sm-inline-block,
.visible-md-block,
.visible-md-inline,
.visible-md-inline-block,
.visible-lg-block,
.visible-lg-inline,
.visible-lg-inline-block {
display: none !important;
}
@media (max-width: 767px) {
.visible-xs {
display: block !important;
}
table.visible-xs {
display: table !important;
}
tr.visible-xs {
display: table-row !important;
}
th.visible-xs,
td.visible-xs {
display: table-cell !important;
}
}
@media (max-width: 767px) {
.visible-xs-block {
display: block !important;
}
}
@media (max-width: 767px) {
.visible-xs-inline {
display: inline !important;
}
}
@media (max-width: 767px) {
.visible-xs-inline-block {
display: inline-block !important;
}
}
@media (min-width: 768px) and (max-width: 991px) {
.visible-sm {
display: block !important;
}
table.visible-sm {
display: table !important;
}
tr.visible-sm {
display: table-row !important;
}
th.visible-sm,
td.visible-sm {
display: table-cell !important;
}
}
@media (min-width: 768px) and (max-width: 991px) {
.visible-sm-block {
display: block !important;
}
}
@media (min-width: 768px) and (max-width: 991px) {
.visible-sm-inline {
display: inline !important;
}
}
@media (min-width: 768px) and (max-width: 991px) {
.visible-sm-inline-block {
display: inline-block !important;
}
}
@media (min-width: 992px) and (max-width: 1199px) {
.visible-md {
display: block !important;
}
table.visible-md {
display: table !important;
}
tr.visible-md {
display: table-row !important;
}
th.visible-md,
td.visible-md {
display: table-cell !important;
}
}
@media (min-width: 992px) and (max-width: 1199px) {
.visible-md-block {
display: block !important;
}
}
@media (min-width: 992px) and (max-width: 1199px) {
.visible-md-inline {
display: inline !important;
}
}
@media (min-width: 992px) and (max-width: 1199px) {
.visible-md-inline-block {
display: inline-block !important;
}
}
@media (min-width: 1200px) {
.visible-lg {
display: block !important;
}
table.visible-lg {
display: table !important;
}
tr.visible-lg {
display: table-row !important;
}
th.visible-lg,
td.visible-lg {
display: table-cell !important;
}
}
@media (min-width: 1200px) {
.visible-lg-block {
display: block !important;
}
}
@media (min-width: 1200px) {
.visible-lg-inline {
display: inline !important;
}
}
@media (min-width: 1200px) {
.visible-lg-inline-block {
display: inline-block !important;
}
}
@media (max-width: 767px) {
.hidden-xs {
display: none !important;
}
}
@media (min-width: 768px) and (max-width: 991px) {
.hidden-sm {
display: none !important;
}
}
@media (min-width: 992px) and (max-width: 1199px) {
.hidden-md {
display: none !important;
}
}
@media (min-width: 1200px) {
.hidden-lg {
display: none !important;
}
}
.visible-print {
display: none !important;
}
@media print {
.visible-print {
display: block !important;
}
table.visible-print {
display: table !important;
}
tr.visible-print {
display: table-row !important;
}
th.visible-print,
td.visible-print {
display: table-cell !important;
}
}
.visible-print-block {
display: none !important;
}
@media print {
.visible-print-block {
display: block !important;
}
}
.visible-print-inline {
display: none !important;
}
@media print {
.visible-print-inline {
display: inline !important;
}
}
.visible-print-inline-block {
display: none !important;
}
@media print {
.visible-print-inline-block {
display: inline-block !important;
}
}
@media print {
.hidden-print {
display: none !important;
}
}
/*!
*
* Font Awesome
*
*/
/*!
* Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome
* License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
*/
/* FONT PATH
* -------------------------- */
@font-face {
font-family: 'FontAwesome';
src: url('../components/font-awesome/fonts/fontawesome-webfont.eot?v=4.2.0');
src: url('../components/font-awesome/fonts/fontawesome-webfont.eot?#iefix&v=4.2.0') format('embedded-opentype'), url('../components/font-awesome/fonts/fontawesome-webfont.woff?v=4.2.0') format('woff'), url('../components/font-awesome/fonts/fontawesome-webfont.ttf?v=4.2.0') format('truetype'), url('../components/font-awesome/fonts/fontawesome-webfont.svg?v=4.2.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;
}
/* makes the font 33% larger relative to the icon container */
.fa-lg {
font-size: 1.33333333em;
line-height: 0.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: 0.14285714em;
text-align: center;
}
.fa-li.fa-lg {
left: -1.85714286em;
}
.fa-border {
padding: .2em .25em .15em;
border: solid 0.08em #eee;
border-radius: .1em;
}
.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;
}
@-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 {
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
-webkit-transform: rotate(90deg);
-ms-transform: rotate(90deg);
transform: rotate(90deg);
}
.fa-rotate-180 {
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
-webkit-transform: rotate(180deg);
-ms-transform: rotate(180deg);
transform: rotate(180deg);
}
.fa-rotate-270 {
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
-webkit-transform: rotate(270deg);
-ms-transform: rotate(270deg);
transform: rotate(270deg);
}
.fa-flip-horizontal {
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 {
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;
}
/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
readers do not read off random characters that represent icons */
.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:before {
content: "\f09a";
}
.fa-github:before {
content: "\f09b";
}
.fa-unlock:before {
content: "\f09c";
}
.fa-credit-card:before {
content: "\f09d";
}
.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 {
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: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-rebel:before {
content: "\f1d0";
}
.fa-ge:before,
.fa-empire:before {
content: "\f1d1";
}
.fa-git-square:before {
content: "\f1d2";
}
.fa-git:before {
content: "\f1d3";
}
.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";
}
/*!
*
* IPython base
*
*/
.modal.fade .modal-dialog {
-webkit-transform: translate(0, 0);
-ms-transform: translate(0, 0);
-o-transform: translate(0, 0);
transform: translate(0, 0);
}
code {
color: #000;
}
pre {
font-size: inherit;
line-height: inherit;
}
label {
font-weight: normal;
}
/* Make the page background atleast 100% the height of the view port */
/* Make the page itself atleast 70% the height of the view port */
.border-box-sizing {
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
.corner-all {
border-radius: 2px;
}
.no-padding {
padding: 0px;
}
/* Flexible box model classes */
/* Taken from Alex Russell http://infrequently.org/2009/08/css-3-progress/ */
/* This file is a compatability layer. It allows the usage of flexible box
model layouts accross multiple browsers, including older browsers. The newest,
universal implementation of the flexible box model is used when available (see
`Modern browsers` comments below). Browsers that are known to implement this
new spec completely include:
Firefox 28.0+
Chrome 29.0+
Internet Explorer 11+
Opera 17.0+
Browsers not listed, including Safari, are supported via the styling under the
`Old browsers` comments below.
*/
.hbox {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
.hbox > * {
/* Old browsers */
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
/* Modern browsers */
flex: none;
}
.vbox {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
.vbox > * {
/* Old browsers */
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
/* Modern browsers */
flex: none;
}
.hbox.reverse,
.vbox.reverse,
.reverse {
/* Old browsers */
-webkit-box-direction: reverse;
-moz-box-direction: reverse;
box-direction: reverse;
/* Modern browsers */
flex-direction: row-reverse;
}
.hbox.box-flex0,
.vbox.box-flex0,
.box-flex0 {
/* Old browsers */
-webkit-box-flex: 0;
-moz-box-flex: 0;
box-flex: 0;
/* Modern browsers */
flex: none;
width: auto;
}
.hbox.box-flex1,
.vbox.box-flex1,
.box-flex1 {
/* Old browsers */
-webkit-box-flex: 1;
-moz-box-flex: 1;
box-flex: 1;
/* Modern browsers */
flex: 1;
}
.hbox.box-flex,
.vbox.box-flex,
.box-flex {
/* Old browsers */
/* Old browsers */
-webkit-box-flex: 1;
-moz-box-flex: 1;
box-flex: 1;
/* Modern browsers */
flex: 1;
}
.hbox.box-flex2,
.vbox.box-flex2,
.box-flex2 {
/* Old browsers */
-webkit-box-flex: 2;
-moz-box-flex: 2;
box-flex: 2;
/* Modern browsers */
flex: 2;
}
.box-group1 {
/* Deprecated */
-webkit-box-flex-group: 1;
-moz-box-flex-group: 1;
box-flex-group: 1;
}
.box-group2 {
/* Deprecated */
-webkit-box-flex-group: 2;
-moz-box-flex-group: 2;
box-flex-group: 2;
}
.hbox.start,
.vbox.start,
.start {
/* Old browsers */
-webkit-box-pack: start;
-moz-box-pack: start;
box-pack: start;
/* Modern browsers */
justify-content: flex-start;
}
.hbox.end,
.vbox.end,
.end {
/* Old browsers */
-webkit-box-pack: end;
-moz-box-pack: end;
box-pack: end;
/* Modern browsers */
justify-content: flex-end;
}
.hbox.center,
.vbox.center,
.center {
/* Old browsers */
-webkit-box-pack: center;
-moz-box-pack: center;
box-pack: center;
/* Modern browsers */
justify-content: center;
}
.hbox.baseline,
.vbox.baseline,
.baseline {
/* Old browsers */
-webkit-box-pack: baseline;
-moz-box-pack: baseline;
box-pack: baseline;
/* Modern browsers */
justify-content: baseline;
}
.hbox.stretch,
.vbox.stretch,
.stretch {
/* Old browsers */
-webkit-box-pack: stretch;
-moz-box-pack: stretch;
box-pack: stretch;
/* Modern browsers */
justify-content: stretch;
}
.hbox.align-start,
.vbox.align-start,
.align-start {
/* Old browsers */
-webkit-box-align: start;
-moz-box-align: start;
box-align: start;
/* Modern browsers */
align-items: flex-start;
}
.hbox.align-end,
.vbox.align-end,
.align-end {
/* Old browsers */
-webkit-box-align: end;
-moz-box-align: end;
box-align: end;
/* Modern browsers */
align-items: flex-end;
}
.hbox.align-center,
.vbox.align-center,
.align-center {
/* Old browsers */
-webkit-box-align: center;
-moz-box-align: center;
box-align: center;
/* Modern browsers */
align-items: center;
}
.hbox.align-baseline,
.vbox.align-baseline,
.align-baseline {
/* Old browsers */
-webkit-box-align: baseline;
-moz-box-align: baseline;
box-align: baseline;
/* Modern browsers */
align-items: baseline;
}
.hbox.align-stretch,
.vbox.align-stretch,
.align-stretch {
/* Old browsers */
-webkit-box-align: stretch;
-moz-box-align: stretch;
box-align: stretch;
/* Modern browsers */
align-items: stretch;
}
div.error {
margin: 2em;
text-align: center;
}
div.error > h1 {
font-size: 500%;
line-height: normal;
}
div.error > p {
font-size: 200%;
line-height: normal;
}
div.traceback-wrapper {
text-align: left;
max-width: 800px;
margin: auto;
}
/**
* Primary styles
*
* Author: Jupyter Development Team
*/
body {
background-color: #fff;
/* This makes sure that the body covers the entire window and needs to
be in a different element than the display: box in wrapper below */
position: absolute;
left: 0px;
right: 0px;
top: 0px;
bottom: 0px;
overflow: visible;
}
body > #header {
/* Initially hidden to prevent FLOUC */
display: none;
background-color: #fff;
/* Display over codemirror */
position: relative;
z-index: 100;
}
body > #header #header-container {
padding-bottom: 5px;
padding-top: 5px;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
body > #header .header-bar {
width: 100%;
height: 1px;
background: #e7e7e7;
margin-bottom: -1px;
}
@media print {
body > #header {
display: none !important;
}
}
#header-spacer {
width: 100%;
visibility: hidden;
}
@media print {
#header-spacer {
display: none;
}
}
#ipython_notebook {
padding-left: 0px;
padding-top: 1px;
padding-bottom: 1px;
}
@media (max-width: 991px) {
#ipython_notebook {
margin-left: 10px;
}
}
[dir="rtl"] #ipython_notebook {
float: right !important;
}
#noscript {
width: auto;
padding-top: 16px;
padding-bottom: 16px;
text-align: center;
font-size: 22px;
color: red;
font-weight: bold;
}
#ipython_notebook img {
height: 28px;
}
#site {
width: 100%;
display: none;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
overflow: auto;
}
@media print {
#site {
height: auto !important;
}
}
/* Smaller buttons */
.ui-button .ui-button-text {
padding: 0.2em 0.8em;
font-size: 77%;
}
input.ui-button {
padding: 0.3em 0.9em;
}
span#login_widget {
float: right;
}
span#login_widget > .button,
#logout {
color: #333;
background-color: #fff;
border-color: #ccc;
}
span#login_widget > .button:focus,
#logout:focus,
span#login_widget > .button.focus,
#logout.focus {
color: #333;
background-color: #e6e6e6;
border-color: #8c8c8c;
}
span#login_widget > .button:hover,
#logout:hover {
color: #333;
background-color: #e6e6e6;
border-color: #adadad;
}
span#login_widget > .button:active,
#logout:active,
span#login_widget > .button.active,
#logout.active,
.open > .dropdown-togglespan#login_widget > .button,
.open > .dropdown-toggle#logout {
color: #333;
background-color: #e6e6e6;
border-color: #adadad;
}
span#login_widget > .button:active:hover,
#logout:active:hover,
span#login_widget > .button.active:hover,
#logout.active:hover,
.open > .dropdown-togglespan#login_widget > .button:hover,
.open > .dropdown-toggle#logout:hover,
span#login_widget > .button:active:focus,
#logout:active:focus,
span#login_widget > .button.active:focus,
#logout.active:focus,
.open > .dropdown-togglespan#login_widget > .button:focus,
.open > .dropdown-toggle#logout:focus,
span#login_widget > .button:active.focus,
#logout:active.focus,
span#login_widget > .button.active.focus,
#logout.active.focus,
.open > .dropdown-togglespan#login_widget > .button.focus,
.open > .dropdown-toggle#logout.focus {
color: #333;
background-color: #d4d4d4;
border-color: #8c8c8c;
}
span#login_widget > .button:active,
#logout:active,
span#login_widget > .button.active,
#logout.active,
.open > .dropdown-togglespan#login_widget > .button,
.open > .dropdown-toggle#logout {
background-image: none;
}
span#login_widget > .button.disabled:hover,
#logout.disabled:hover,
span#login_widget > .button[disabled]:hover,
#logout[disabled]:hover,
fieldset[disabled] span#login_widget > .button:hover,
fieldset[disabled] #logout:hover,
span#login_widget > .button.disabled:focus,
#logout.disabled:focus,
span#login_widget > .button[disabled]:focus,
#logout[disabled]:focus,
fieldset[disabled] span#login_widget > .button:focus,
fieldset[disabled] #logout:focus,
span#login_widget > .button.disabled.focus,
#logout.disabled.focus,
span#login_widget > .button[disabled].focus,
#logout[disabled].focus,
fieldset[disabled] span#login_widget > .button.focus,
fieldset[disabled] #logout.focus {
background-color: #fff;
border-color: #ccc;
}
span#login_widget > .button .badge,
#logout .badge {
color: #fff;
background-color: #333;
}
.nav-header {
text-transform: none;
}
#header > span {
margin-top: 10px;
}
.modal_stretch .modal-dialog {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
min-height: 80vh;
}
.modal_stretch .modal-dialog .modal-body {
max-height: calc(100vh - 200px);
overflow: auto;
flex: 1;
}
@media (min-width: 768px) {
.modal .modal-dialog {
width: 700px;
}
}
@media (min-width: 768px) {
select.form-control {
margin-left: 12px;
margin-right: 12px;
}
}
/*!
*
* IPython auth
*
*/
.center-nav {
display: inline-block;
margin-bottom: -4px;
}
/*!
*
* IPython tree view
*
*/
/* We need an invisible input field on top of the sentense*/
/* "Drag file onto the list ..." */
.alternate_upload {
background-color: none;
display: inline;
}
.alternate_upload.form {
padding: 0;
margin: 0;
}
.alternate_upload input.fileinput {
text-align: center;
vertical-align: middle;
display: inline;
opacity: 0;
z-index: 2;
width: 12ex;
margin-right: -12ex;
}
.alternate_upload .btn-upload {
height: 22px;
}
/**
* Primary styles
*
* Author: Jupyter Development Team
*/
[dir="rtl"] #tabs li {
float: right;
}
ul#tabs {
margin-bottom: 4px;
}
[dir="rtl"] ul#tabs {
margin-right: 0px;
}
ul#tabs a {
padding-top: 6px;
padding-bottom: 4px;
}
ul.breadcrumb a:focus,
ul.breadcrumb a:hover {
text-decoration: none;
}
ul.breadcrumb i.icon-home {
font-size: 16px;
margin-right: 4px;
}
ul.breadcrumb span {
color: #5e5e5e;
}
.list_toolbar {
padding: 4px 0 4px 0;
vertical-align: middle;
}
.list_toolbar .tree-buttons {
padding-top: 1px;
}
[dir="rtl"] .list_toolbar .tree-buttons {
float: left !important;
}
[dir="rtl"] .list_toolbar .pull-right {
padding-top: 1px;
float: left !important;
}
[dir="rtl"] .list_toolbar .pull-left {
float: right !important;
}
.dynamic-buttons {
padding-top: 3px;
display: inline-block;
}
.list_toolbar [class*="span"] {
min-height: 24px;
}
.list_header {
font-weight: bold;
background-color: #EEE;
}
.list_placeholder {
font-weight: bold;
padding-top: 4px;
padding-bottom: 4px;
padding-left: 7px;
padding-right: 7px;
}
.list_container {
margin-top: 4px;
margin-bottom: 20px;
border: 1px solid #ddd;
border-radius: 2px;
}
.list_container > div {
border-bottom: 1px solid #ddd;
}
.list_container > div:hover .list-item {
background-color: red;
}
.list_container > div:last-child {
border: none;
}
.list_item:hover .list_item {
background-color: #ddd;
}
.list_item a {
text-decoration: none;
}
.list_item:hover {
background-color: #fafafa;
}
.list_header > div,
.list_item > div {
padding-top: 4px;
padding-bottom: 4px;
padding-left: 7px;
padding-right: 7px;
line-height: 22px;
}
.list_header > div input,
.list_item > div input {
margin-right: 7px;
margin-left: 14px;
vertical-align: baseline;
line-height: 22px;
position: relative;
top: -1px;
}
.list_header > div .item_link,
.list_item > div .item_link {
margin-left: -1px;
vertical-align: baseline;
line-height: 22px;
}
.new-file input[type=checkbox] {
visibility: hidden;
}
.item_name {
line-height: 22px;
height: 24px;
}
.item_icon {
font-size: 14px;
color: #5e5e5e;
margin-right: 7px;
margin-left: 7px;
line-height: 22px;
vertical-align: baseline;
}
.item_buttons {
line-height: 1em;
margin-left: -5px;
}
.item_buttons .btn,
.item_buttons .btn-group,
.item_buttons .input-group {
float: left;
}
.item_buttons > .btn,
.item_buttons > .btn-group,
.item_buttons > .input-group {
margin-left: 5px;
}
.item_buttons .btn {
min-width: 13ex;
}
.item_buttons .running-indicator {
padding-top: 4px;
color: #5cb85c;
}
.item_buttons .kernel-name {
padding-top: 4px;
color: #5bc0de;
margin-right: 7px;
float: left;
}
.toolbar_info {
height: 24px;
line-height: 24px;
}
.list_item input:not([type=checkbox]) {
padding-top: 3px;
padding-bottom: 3px;
height: 22px;
line-height: 14px;
margin: 0px;
}
.highlight_text {
color: blue;
}
#project_name {
display: inline-block;
padding-left: 7px;
margin-left: -2px;
}
#project_name > .breadcrumb {
padding: 0px;
margin-bottom: 0px;
background-color: transparent;
font-weight: bold;
}
#tree-selector {
padding-right: 0px;
}
[dir="rtl"] #tree-selector a {
float: right;
}
#button-select-all {
min-width: 50px;
}
#select-all {
margin-left: 7px;
margin-right: 2px;
}
.menu_icon {
margin-right: 2px;
}
.tab-content .row {
margin-left: 0px;
margin-right: 0px;
}
.folder_icon:before {
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;
content: "\f114";
}
.folder_icon:before.pull-left {
margin-right: .3em;
}
.folder_icon:before.pull-right {
margin-left: .3em;
}
.notebook_icon:before {
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;
content: "\f02d";
position: relative;
top: -1px;
}
.notebook_icon:before.pull-left {
margin-right: .3em;
}
.notebook_icon:before.pull-right {
margin-left: .3em;
}
.running_notebook_icon:before {
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;
content: "\f02d";
position: relative;
top: -1px;
color: #5cb85c;
}
.running_notebook_icon:before.pull-left {
margin-right: .3em;
}
.running_notebook_icon:before.pull-right {
margin-left: .3em;
}
.file_icon:before {
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;
content: "\f016";
position: relative;
top: -2px;
}
.file_icon:before.pull-left {
margin-right: .3em;
}
.file_icon:before.pull-right {
margin-left: .3em;
}
#notebook_toolbar .pull-right {
padding-top: 0px;
margin-right: -1px;
}
ul#new-menu {
left: auto;
right: 0;
}
[dir="rtl"] #new-menu {
text-align: right;
}
.kernel-menu-icon {
padding-right: 12px;
width: 24px;
content: "\f096";
}
.kernel-menu-icon:before {
content: "\f096";
}
.kernel-menu-icon-current:before {
content: "\f00c";
}
#tab_content {
padding-top: 20px;
}
#running .panel-group .panel {
margin-top: 3px;
margin-bottom: 1em;
}
#running .panel-group .panel .panel-heading {
background-color: #EEE;
padding-top: 4px;
padding-bottom: 4px;
padding-left: 7px;
padding-right: 7px;
line-height: 22px;
}
#running .panel-group .panel .panel-heading a:focus,
#running .panel-group .panel .panel-heading a:hover {
text-decoration: none;
}
#running .panel-group .panel .panel-body {
padding: 0px;
}
#running .panel-group .panel .panel-body .list_container {
margin-top: 0px;
margin-bottom: 0px;
border: 0px;
border-radius: 0px;
}
#running .panel-group .panel .panel-body .list_container .list_item {
border-bottom: 1px solid #ddd;
}
#running .panel-group .panel .panel-body .list_container .list_item:last-child {
border-bottom: 0px;
}
[dir="rtl"] #running .col-sm-8 {
float: right !important;
}
.delete-button {
display: none;
}
.duplicate-button {
display: none;
}
.rename-button {
display: none;
}
.shutdown-button {
display: none;
}
.dynamic-instructions {
display: inline-block;
padding-top: 4px;
}
/*!
*
* IPython text editor webapp
*
*/
.selected-keymap i.fa {
padding: 0px 5px;
}
.selected-keymap i.fa:before {
content: "\f00c";
}
#mode-menu {
overflow: auto;
max-height: 20em;
}
.edit_app #header {
-webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
}
.edit_app #menubar .navbar {
/* Use a negative 1 bottom margin, so the border overlaps the border of the
header */
margin-bottom: -1px;
}
.dirty-indicator {
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;
width: 20px;
}
.dirty-indicator.pull-left {
margin-right: .3em;
}
.dirty-indicator.pull-right {
margin-left: .3em;
}
.dirty-indicator-dirty {
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;
width: 20px;
}
.dirty-indicator-dirty.pull-left {
margin-right: .3em;
}
.dirty-indicator-dirty.pull-right {
margin-left: .3em;
}
.dirty-indicator-clean {
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;
width: 20px;
}
.dirty-indicator-clean.pull-left {
margin-right: .3em;
}
.dirty-indicator-clean.pull-right {
margin-left: .3em;
}
.dirty-indicator-clean:before {
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;
content: "\f00c";
}
.dirty-indicator-clean:before.pull-left {
margin-right: .3em;
}
.dirty-indicator-clean:before.pull-right {
margin-left: .3em;
}
#filename {
font-size: 16pt;
display: table;
padding: 0px 5px;
}
#current-mode {
padding-left: 5px;
padding-right: 5px;
}
#texteditor-backdrop {
padding-top: 20px;
padding-bottom: 20px;
}
@media not print {
#texteditor-backdrop {
background-color: #EEE;
}
}
@media print {
#texteditor-backdrop #texteditor-container .CodeMirror-gutter,
#texteditor-backdrop #texteditor-container .CodeMirror-gutters {
background-color: #fff;
}
}
@media not print {
#texteditor-backdrop #texteditor-container .CodeMirror-gutter,
#texteditor-backdrop #texteditor-container .CodeMirror-gutters {
background-color: #fff;
}
}
@media not print {
#texteditor-backdrop #texteditor-container {
padding: 0px;
background-color: #fff;
-webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
}
}
/*!
*
* IPython notebook
*
*/
/* CSS font colors for translated ANSI colors. */
.ansibold {
font-weight: bold;
}
/* use dark versions for foreground, to improve visibility */
.ansiblack {
color: black;
}
.ansired {
color: darkred;
}
.ansigreen {
color: darkgreen;
}
.ansiyellow {
color: #c4a000;
}
.ansiblue {
color: darkblue;
}
.ansipurple {
color: darkviolet;
}
.ansicyan {
color: steelblue;
}
.ansigray {
color: gray;
}
/* and light for background, for the same reason */
.ansibgblack {
background-color: black;
}
.ansibgred {
background-color: red;
}
.ansibggreen {
background-color: green;
}
.ansibgyellow {
background-color: yellow;
}
.ansibgblue {
background-color: blue;
}
.ansibgpurple {
background-color: magenta;
}
.ansibgcyan {
background-color: cyan;
}
.ansibggray {
background-color: gray;
}
div.cell {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
border-radius: 2px;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
border-width: 1px;
border-style: solid;
border-color: transparent;
width: 100%;
padding: 5px;
/* This acts as a spacer between cells, that is outside the border */
margin: 0px;
outline: none;
border-left-width: 1px;
padding-left: 5px;
background: linear-gradient(to right, transparent -40px, transparent 1px, transparent 1px, transparent 100%);
}
div.cell.jupyter-soft-selected {
border-left-color: #90CAF9;
border-left-color: #E3F2FD;
border-left-width: 1px;
padding-left: 5px;
border-right-color: #E3F2FD;
border-right-width: 1px;
background: #E3F2FD;
}
@media print {
div.cell.jupyter-soft-selected {
border-color: transparent;
}
}
div.cell.selected {
border-color: #ababab;
border-left-width: 0px;
padding-left: 6px;
background: linear-gradient(to right, #42A5F5 -40px, #42A5F5 5px, transparent 5px, transparent 100%);
}
@media print {
div.cell.selected {
border-color: transparent;
}
}
div.cell.selected.jupyter-soft-selected {
border-left-width: 0;
padding-left: 6px;
background: linear-gradient(to right, #42A5F5 -40px, #42A5F5 7px, #E3F2FD 7px, #E3F2FD 100%);
}
.edit_mode div.cell.selected {
border-color: #66BB6A;
border-left-width: 0px;
padding-left: 6px;
background: linear-gradient(to right, #66BB6A -40px, #66BB6A 5px, transparent 5px, transparent 100%);
}
@media print {
.edit_mode div.cell.selected {
border-color: transparent;
}
}
.prompt {
/* This needs to be wide enough for 3 digit prompt numbers: In[100]: */
min-width: 14ex;
/* This padding is tuned to match the padding on the CodeMirror editor. */
padding: 0.4em;
margin: 0px;
font-family: monospace;
text-align: right;
/* This has to match that of the the CodeMirror class line-height below */
line-height: 1.21429em;
/* Don't highlight prompt number selection */
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
/* Use default cursor */
cursor: default;
}
@media (max-width: 540px) {
.prompt {
text-align: left;
}
}
div.inner_cell {
min-width: 0;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
/* Old browsers */
-webkit-box-flex: 1;
-moz-box-flex: 1;
box-flex: 1;
/* Modern browsers */
flex: 1;
}
/* input_area and input_prompt must match in top border and margin for alignment */
div.input_area {
border: 1px solid #cfcfcf;
border-radius: 2px;
background: #f7f7f7;
line-height: 1.21429em;
}
/* This is needed so that empty prompt areas can collapse to zero height when there
is no content in the output_subarea and the prompt. The main purpose of this is
to make sure that empty JavaScript output_subareas have no height. */
div.prompt:empty {
padding-top: 0;
padding-bottom: 0;
}
div.unrecognized_cell {
padding: 5px 5px 5px 0px;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
div.unrecognized_cell .inner_cell {
border-radius: 2px;
padding: 5px;
font-weight: bold;
color: red;
border: 1px solid #cfcfcf;
background: #eaeaea;
}
div.unrecognized_cell .inner_cell a {
color: inherit;
text-decoration: none;
}
div.unrecognized_cell .inner_cell a:hover {
color: inherit;
text-decoration: none;
}
@media (max-width: 540px) {
div.unrecognized_cell > div.prompt {
display: none;
}
}
div.code_cell {
/* avoid page breaking on code cells when printing */
}
@media print {
div.code_cell {
page-break-inside: avoid;
}
}
/* any special styling for code cells that are currently running goes here */
div.input {
page-break-inside: avoid;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
@media (max-width: 540px) {
div.input {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
}
/* input_area and input_prompt must match in top border and margin for alignment */
div.input_prompt {
color: #303F9F;
border-top: 1px solid transparent;
}
div.input_area > div.highlight {
margin: 0.4em;
border: none;
padding: 0px;
background-color: transparent;
}
div.input_area > div.highlight > pre {
margin: 0px;
border: none;
padding: 0px;
background-color: transparent;
}
/* The following gets added to the <head> if it is detected that the user has a
* monospace font with inconsistent normal/bold/italic height. See
* notebookmain.js. Such fonts will have keywords vertically offset with
* respect to the rest of the text. The user should select a better font.
* See: https://github.com/ipython/ipython/issues/1503
*
* .CodeMirror span {
* vertical-align: bottom;
* }
*/
.CodeMirror {
line-height: 1.21429em;
/* Changed from 1em to our global default */
font-size: 14px;
height: auto;
/* Changed to auto to autogrow */
background: none;
/* Changed from white to allow our bg to show through */
}
.CodeMirror-scroll {
/* The CodeMirror docs are a bit fuzzy on if overflow-y should be hidden or visible.*/
/* We have found that if it is visible, vertical scrollbars appear with font size changes.*/
overflow-y: hidden;
overflow-x: auto;
}
.CodeMirror-lines {
/* In CM2, this used to be 0.4em, but in CM3 it went to 4px. We need the em value because */
/* we have set a different line-height and want this to scale with that. */
padding: 0.4em;
}
.CodeMirror-linenumber {
padding: 0 8px 0 4px;
}
.CodeMirror-gutters {
border-bottom-left-radius: 2px;
border-top-left-radius: 2px;
}
.CodeMirror pre {
/* In CM3 this went to 4px from 0 in CM2. We need the 0 value because of how we size */
/* .CodeMirror-lines */
padding: 0;
border: 0;
border-radius: 0;
}
/*
Original style from softwaremaniacs.org (c) Ivan Sagalaev <Maniac@SoftwareManiacs.Org>
Adapted from GitHub theme
*/
.highlight-base {
color: #000;
}
.highlight-variable {
color: #000;
}
.highlight-variable-2 {
color: #1a1a1a;
}
.highlight-variable-3 {
color: #333333;
}
.highlight-string {
color: #BA2121;
}
.highlight-comment {
color: #408080;
font-style: italic;
}
.highlight-number {
color: #080;
}
.highlight-atom {
color: #88F;
}
.highlight-keyword {
color: #008000;
font-weight: bold;
}
.highlight-builtin {
color: #008000;
}
.highlight-error {
color: #f00;
}
.highlight-operator {
color: #AA22FF;
font-weight: bold;
}
.highlight-meta {
color: #AA22FF;
}
/* previously not defined, copying from default codemirror */
.highlight-def {
color: #00f;
}
.highlight-string-2 {
color: #f50;
}
.highlight-qualifier {
color: #555;
}
.highlight-bracket {
color: #997;
}
.highlight-tag {
color: #170;
}
.highlight-attribute {
color: #00c;
}
.highlight-header {
color: blue;
}
.highlight-quote {
color: #090;
}
.highlight-link {
color: #00c;
}
/* apply the same style to codemirror */
.cm-s-ipython span.cm-keyword {
color: #008000;
font-weight: bold;
}
.cm-s-ipython span.cm-atom {
color: #88F;
}
.cm-s-ipython span.cm-number {
color: #080;
}
.cm-s-ipython span.cm-def {
color: #00f;
}
.cm-s-ipython span.cm-variable {
color: #000;
}
.cm-s-ipython span.cm-operator {
color: #AA22FF;
font-weight: bold;
}
.cm-s-ipython span.cm-variable-2 {
color: #1a1a1a;
}
.cm-s-ipython span.cm-variable-3 {
color: #333333;
}
.cm-s-ipython span.cm-comment {
color: #408080;
font-style: italic;
}
.cm-s-ipython span.cm-string {
color: #BA2121;
}
.cm-s-ipython span.cm-string-2 {
color: #f50;
}
.cm-s-ipython span.cm-meta {
color: #AA22FF;
}
.cm-s-ipython span.cm-qualifier {
color: #555;
}
.cm-s-ipython span.cm-builtin {
color: #008000;
}
.cm-s-ipython span.cm-bracket {
color: #997;
}
.cm-s-ipython span.cm-tag {
color: #170;
}
.cm-s-ipython span.cm-attribute {
color: #00c;
}
.cm-s-ipython span.cm-header {
color: blue;
}
.cm-s-ipython span.cm-quote {
color: #090;
}
.cm-s-ipython span.cm-link {
color: #00c;
}
.cm-s-ipython span.cm-error {
color: #f00;
}
.cm-s-ipython span.cm-tab {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=);
background-position: right;
background-repeat: no-repeat;
}
div.output_wrapper {
/* this position must be relative to enable descendents to be absolute within it */
position: relative;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
z-index: 1;
}
/* class for the output area when it should be height-limited */
div.output_scroll {
/* ideally, this would be max-height, but FF barfs all over that */
height: 24em;
/* FF needs this *and the wrapper* to specify full width, or it will shrinkwrap */
width: 100%;
overflow: auto;
border-radius: 2px;
-webkit-box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.8);
display: block;
}
/* output div while it is collapsed */
div.output_collapsed {
margin: 0px;
padding: 0px;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
div.out_prompt_overlay {
height: 100%;
padding: 0px 0.4em;
position: absolute;
border-radius: 2px;
}
div.out_prompt_overlay:hover {
/* use inner shadow to get border that is computed the same on WebKit/FF */
-webkit-box-shadow: inset 0 0 1px #000;
box-shadow: inset 0 0 1px #000;
background: rgba(240, 240, 240, 0.5);
}
div.output_prompt {
color: #D84315;
}
/* This class is the outer container of all output sections. */
div.output_area {
padding: 0px;
page-break-inside: avoid;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
div.output_area .MathJax_Display {
text-align: left !important;
}
div.output_area .rendered_html table {
margin-left: 0;
margin-right: 0;
}
div.output_area .rendered_html img {
margin-left: 0;
margin-right: 0;
}
div.output_area img,
div.output_area svg {
max-width: 100%;
height: auto;
}
div.output_area img.unconfined,
div.output_area svg.unconfined {
max-width: none;
}
/* This is needed to protect the pre formating from global settings such
as that of bootstrap */
.output {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
@media (max-width: 540px) {
div.output_area {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: vertical;
-moz-box-align: stretch;
display: box;
box-orient: vertical;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: column;
align-items: stretch;
}
}
div.output_area pre {
margin: 0;
padding: 0;
border: 0;
vertical-align: baseline;
color: black;
background-color: transparent;
border-radius: 0;
}
/* This class is for the output subarea inside the output_area and after
the prompt div. */
div.output_subarea {
overflow-x: auto;
padding: 0.4em;
/* Old browsers */
-webkit-box-flex: 1;
-moz-box-flex: 1;
box-flex: 1;
/* Modern browsers */
flex: 1;
max-width: calc(100% - 14ex);
}
div.output_scroll div.output_subarea {
overflow-x: visible;
}
/* The rest of the output_* classes are for special styling of the different
output types */
/* all text output has this class: */
div.output_text {
text-align: left;
color: #000;
/* This has to match that of the the CodeMirror class line-height below */
line-height: 1.21429em;
}
/* stdout/stderr are 'text' as well as 'stream', but execute_result/error are *not* streams */
div.output_stderr {
background: #fdd;
/* very light red background for stderr */
}
div.output_latex {
text-align: left;
}
/* Empty output_javascript divs should have no height */
div.output_javascript:empty {
padding: 0;
}
.js-error {
color: darkred;
}
/* raw_input styles */
div.raw_input_container {
line-height: 1.21429em;
padding-top: 5px;
}
pre.raw_input_prompt {
/* nothing needed here. */
}
input.raw_input {
font-family: monospace;
font-size: inherit;
color: inherit;
width: auto;
/* make sure input baseline aligns with prompt */
vertical-align: baseline;
/* padding + margin = 0.5em between prompt and cursor */
padding: 0em 0.25em;
margin: 0em 0.25em;
}
input.raw_input:focus {
box-shadow: none;
}
p.p-space {
margin-bottom: 10px;
}
div.output_unrecognized {
padding: 5px;
font-weight: bold;
color: red;
}
div.output_unrecognized a {
color: inherit;
text-decoration: none;
}
div.output_unrecognized a:hover {
color: inherit;
text-decoration: none;
}
.rendered_html {
color: #000;
/* any extras will just be numbers: */
}
.rendered_html em {
font-style: italic;
}
.rendered_html strong {
font-weight: bold;
}
.rendered_html u {
text-decoration: underline;
}
.rendered_html :link {
text-decoration: underline;
}
.rendered_html :visited {
text-decoration: underline;
}
.rendered_html h1 {
font-size: 185.7%;
margin: 1.08em 0 0 0;
font-weight: bold;
line-height: 1.0;
}
.rendered_html h2 {
font-size: 157.1%;
margin: 1.27em 0 0 0;
font-weight: bold;
line-height: 1.0;
}
.rendered_html h3 {
font-size: 128.6%;
margin: 1.55em 0 0 0;
font-weight: bold;
line-height: 1.0;
}
.rendered_html h4 {
font-size: 100%;
margin: 2em 0 0 0;
font-weight: bold;
line-height: 1.0;
}
.rendered_html h5 {
font-size: 100%;
margin: 2em 0 0 0;
font-weight: bold;
line-height: 1.0;
font-style: italic;
}
.rendered_html h6 {
font-size: 100%;
margin: 2em 0 0 0;
font-weight: bold;
line-height: 1.0;
font-style: italic;
}
.rendered_html h1:first-child {
margin-top: 0.538em;
}
.rendered_html h2:first-child {
margin-top: 0.636em;
}
.rendered_html h3:first-child {
margin-top: 0.777em;
}
.rendered_html h4:first-child {
margin-top: 1em;
}
.rendered_html h5:first-child {
margin-top: 1em;
}
.rendered_html h6:first-child {
margin-top: 1em;
}
.rendered_html ul {
list-style: disc;
margin: 0em 2em;
padding-left: 0px;
}
.rendered_html ul ul {
list-style: square;
margin: 0em 2em;
}
.rendered_html ul ul ul {
list-style: circle;
margin: 0em 2em;
}
.rendered_html ol {
list-style: decimal;
margin: 0em 2em;
padding-left: 0px;
}
.rendered_html ol ol {
list-style: upper-alpha;
margin: 0em 2em;
}
.rendered_html ol ol ol {
list-style: lower-alpha;
margin: 0em 2em;
}
.rendered_html ol ol ol ol {
list-style: lower-roman;
margin: 0em 2em;
}
.rendered_html ol ol ol ol ol {
list-style: decimal;
margin: 0em 2em;
}
.rendered_html * + ul {
margin-top: 1em;
}
.rendered_html * + ol {
margin-top: 1em;
}
.rendered_html hr {
color: black;
background-color: black;
}
.rendered_html pre {
margin: 1em 2em;
}
.rendered_html pre,
.rendered_html code {
border: 0;
background-color: #fff;
color: #000;
font-size: 100%;
padding: 0px;
}
.rendered_html blockquote {
margin: 1em 2em;
}
.rendered_html table {
margin-left: auto;
margin-right: auto;
border: 1px solid black;
border-collapse: collapse;
}
.rendered_html tr,
.rendered_html th,
.rendered_html td {
border: 1px solid black;
border-collapse: collapse;
margin: 1em 2em;
}
.rendered_html td,
.rendered_html th {
text-align: left;
vertical-align: middle;
padding: 4px;
}
.rendered_html th {
font-weight: bold;
}
.rendered_html * + table {
margin-top: 1em;
}
.rendered_html p {
text-align: left;
}
.rendered_html * + p {
margin-top: 1em;
}
.rendered_html img {
display: block;
margin-left: auto;
margin-right: auto;
}
.rendered_html * + img {
margin-top: 1em;
}
.rendered_html img,
.rendered_html svg {
max-width: 100%;
height: auto;
}
.rendered_html img.unconfined,
.rendered_html svg.unconfined {
max-width: none;
}
div.text_cell {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
}
@media (max-width: 540px) {
div.text_cell > div.prompt {
display: none;
}
}
div.text_cell_render {
/*font-family: "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;*/
outline: none;
resize: none;
width: inherit;
border-style: none;
padding: 0.5em 0.5em 0.5em 0.4em;
color: #000;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
a.anchor-link:link {
text-decoration: none;
padding: 0px 20px;
visibility: hidden;
}
h1:hover .anchor-link,
h2:hover .anchor-link,
h3:hover .anchor-link,
h4:hover .anchor-link,
h5:hover .anchor-link,
h6:hover .anchor-link {
visibility: visible;
}
.text_cell.rendered .input_area {
display: none;
}
.text_cell.rendered .rendered_html {
overflow-x: auto;
overflow-y: hidden;
}
.text_cell.unrendered .text_cell_render {
display: none;
}
.cm-header-1,
.cm-header-2,
.cm-header-3,
.cm-header-4,
.cm-header-5,
.cm-header-6 {
font-weight: bold;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.cm-header-1 {
font-size: 185.7%;
}
.cm-header-2 {
font-size: 157.1%;
}
.cm-header-3 {
font-size: 128.6%;
}
.cm-header-4 {
font-size: 110%;
}
.cm-header-5 {
font-size: 100%;
font-style: italic;
}
.cm-header-6 {
font-size: 100%;
font-style: italic;
}
/*!
*
* IPython notebook webapp
*
*/
@media (max-width: 767px) {
.notebook_app {
padding-left: 0px;
padding-right: 0px;
}
}
#ipython-main-app {
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
height: 100%;
}
div#notebook_panel {
margin: 0px;
padding: 0px;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
height: 100%;
}
div#notebook {
font-size: 14px;
line-height: 20px;
overflow-y: hidden;
overflow-x: auto;
width: 100%;
/* This spaces the page away from the edge of the notebook area */
padding-top: 20px;
margin: 0px;
outline: none;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
min-height: 100%;
}
@media not print {
#notebook-container {
padding: 15px;
background-color: #fff;
min-height: 0;
-webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
}
}
@media print {
#notebook-container {
width: 100%;
}
}
div.ui-widget-content {
border: 1px solid #ababab;
outline: none;
}
pre.dialog {
background-color: #f7f7f7;
border: 1px solid #ddd;
border-radius: 2px;
padding: 0.4em;
padding-left: 2em;
}
p.dialog {
padding: 0.2em;
}
/* Word-wrap output correctly. This is the CSS3 spelling, though Firefox seems
to not honor it correctly. Webkit browsers (Chrome, rekonq, Safari) do.
*/
pre,
code,
kbd,
samp {
white-space: pre-wrap;
}
#fonttest {
font-family: monospace;
}
p {
margin-bottom: 0;
}
.end_space {
min-height: 100px;
transition: height .2s ease;
}
.notebook_app > #header {
-webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
}
@media not print {
.notebook_app {
background-color: #EEE;
}
}
kbd {
border-style: solid;
border-width: 1px;
box-shadow: none;
margin: 2px;
padding-left: 2px;
padding-right: 2px;
padding-top: 1px;
padding-bottom: 1px;
}
/* CSS for the cell toolbar */
.celltoolbar {
border: thin solid #CFCFCF;
border-bottom: none;
background: #EEE;
border-radius: 2px 2px 0px 0px;
width: 100%;
height: 29px;
padding-right: 4px;
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
/* Old browsers */
-webkit-box-pack: end;
-moz-box-pack: end;
box-pack: end;
/* Modern browsers */
justify-content: flex-end;
display: -webkit-flex;
}
@media print {
.celltoolbar {
display: none;
}
}
.ctb_hideshow {
display: none;
vertical-align: bottom;
}
/* ctb_show is added to the ctb_hideshow div to show the cell toolbar.
Cell toolbars are only shown when the ctb_global_show class is also set.
*/
.ctb_global_show .ctb_show.ctb_hideshow {
display: block;
}
.ctb_global_show .ctb_show + .input_area,
.ctb_global_show .ctb_show + div.text_cell_input,
.ctb_global_show .ctb_show ~ div.text_cell_render {
border-top-right-radius: 0px;
border-top-left-radius: 0px;
}
.ctb_global_show .ctb_show ~ div.text_cell_render {
border: 1px solid #cfcfcf;
}
.celltoolbar {
font-size: 87%;
padding-top: 3px;
}
.celltoolbar select {
display: block;
width: 100%;
height: 32px;
padding: 6px 12px;
font-size: 13px;
line-height: 1.42857143;
color: #555555;
background-color: #fff;
background-image: none;
border: 1px solid #ccc;
border-radius: 2px;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-webkit-transition: border-color ease-in-out .15s, 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;
height: 30px;
padding: 5px 10px;
font-size: 12px;
line-height: 1.5;
border-radius: 1px;
width: inherit;
font-size: inherit;
height: 22px;
padding: 0px;
display: inline-block;
}
.celltoolbar select: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, 0.6);
box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
}
.celltoolbar select::-moz-placeholder {
color: #999;
opacity: 1;
}
.celltoolbar select:-ms-input-placeholder {
color: #999;
}
.celltoolbar select::-webkit-input-placeholder {
color: #999;
}
.celltoolbar select::-ms-expand {
border: 0;
background-color: transparent;
}
.celltoolbar select[disabled],
.celltoolbar select[readonly],
fieldset[disabled] .celltoolbar select {
background-color: #eeeeee;
opacity: 1;
}
.celltoolbar select[disabled],
fieldset[disabled] .celltoolbar select {
cursor: not-allowed;
}
textarea.celltoolbar select {
height: auto;
}
select.celltoolbar select {
height: 30px;
line-height: 30px;
}
textarea.celltoolbar select,
select[multiple].celltoolbar select {
height: auto;
}
.celltoolbar label {
margin-left: 5px;
margin-right: 5px;
}
.completions {
position: absolute;
z-index: 110;
overflow: hidden;
border: 1px solid #ababab;
border-radius: 2px;
-webkit-box-shadow: 0px 6px 10px -1px #adadad;
box-shadow: 0px 6px 10px -1px #adadad;
line-height: 1;
}
.completions select {
background: white;
outline: none;
border: none;
padding: 0px;
margin: 0px;
overflow: auto;
font-family: monospace;
font-size: 110%;
color: #000;
width: auto;
}
.completions select option.context {
color: #286090;
}
#kernel_logo_widget {
float: right !important;
float: right;
}
#kernel_logo_widget .current_kernel_logo {
display: none;
margin-top: -1px;
margin-bottom: -1px;
width: 32px;
height: 32px;
}
#menubar {
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
margin-top: 1px;
}
#menubar .navbar {
border-top: 1px;
border-radius: 0px 0px 2px 2px;
margin-bottom: 0px;
}
#menubar .navbar-toggle {
float: left;
padding-top: 7px;
padding-bottom: 7px;
border: none;
}
#menubar .navbar-collapse {
clear: left;
}
.nav-wrapper {
border-bottom: 1px solid #e7e7e7;
}
i.menu-icon {
padding-top: 4px;
}
ul#help_menu li a {
overflow: hidden;
padding-right: 2.2em;
}
ul#help_menu li a i {
margin-right: -1.2em;
}
.dropdown-submenu {
position: relative;
}
.dropdown-submenu > .dropdown-menu {
top: 0;
left: 100%;
margin-top: -6px;
margin-left: -1px;
}
.dropdown-submenu:hover > .dropdown-menu {
display: block;
}
.dropdown-submenu > a:after {
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;
display: block;
content: "\f0da";
float: right;
color: #333333;
margin-top: 2px;
margin-right: -10px;
}
.dropdown-submenu > a:after.pull-left {
margin-right: .3em;
}
.dropdown-submenu > a:after.pull-right {
margin-left: .3em;
}
.dropdown-submenu:hover > a:after {
color: #262626;
}
.dropdown-submenu.pull-left {
float: none;
}
.dropdown-submenu.pull-left > .dropdown-menu {
left: -100%;
margin-left: 10px;
}
#notification_area {
float: right !important;
float: right;
z-index: 10;
}
.indicator_area {
float: right !important;
float: right;
color: #777;
margin-left: 5px;
margin-right: 5px;
width: 11px;
z-index: 10;
text-align: center;
width: auto;
}
#kernel_indicator {
float: right !important;
float: right;
color: #777;
margin-left: 5px;
margin-right: 5px;
width: 11px;
z-index: 10;
text-align: center;
width: auto;
border-left: 1px solid;
}
#kernel_indicator .kernel_indicator_name {
padding-left: 5px;
padding-right: 5px;
}
#modal_indicator {
float: right !important;
float: right;
color: #777;
margin-left: 5px;
margin-right: 5px;
width: 11px;
z-index: 10;
text-align: center;
width: auto;
}
#readonly-indicator {
float: right !important;
float: right;
color: #777;
margin-left: 5px;
margin-right: 5px;
width: 11px;
z-index: 10;
text-align: center;
width: auto;
margin-top: 2px;
margin-bottom: 0px;
margin-left: 0px;
margin-right: 0px;
display: none;
}
.modal_indicator:before {
width: 1.28571429em;
text-align: center;
}
.edit_mode .modal_indicator:before {
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;
content: "\f040";
}
.edit_mode .modal_indicator:before.pull-left {
margin-right: .3em;
}
.edit_mode .modal_indicator:before.pull-right {
margin-left: .3em;
}
.command_mode .modal_indicator:before {
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;
content: ' ';
}
.command_mode .modal_indicator:before.pull-left {
margin-right: .3em;
}
.command_mode .modal_indicator:before.pull-right {
margin-left: .3em;
}
.kernel_idle_icon:before {
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;
content: "\f10c";
}
.kernel_idle_icon:before.pull-left {
margin-right: .3em;
}
.kernel_idle_icon:before.pull-right {
margin-left: .3em;
}
.kernel_busy_icon:before {
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;
content: "\f111";
}
.kernel_busy_icon:before.pull-left {
margin-right: .3em;
}
.kernel_busy_icon:before.pull-right {
margin-left: .3em;
}
.kernel_dead_icon:before {
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;
content: "\f1e2";
}
.kernel_dead_icon:before.pull-left {
margin-right: .3em;
}
.kernel_dead_icon:before.pull-right {
margin-left: .3em;
}
.kernel_disconnected_icon:before {
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;
content: "\f127";
}
.kernel_disconnected_icon:before.pull-left {
margin-right: .3em;
}
.kernel_disconnected_icon:before.pull-right {
margin-left: .3em;
}
.notification_widget {
color: #777;
z-index: 10;
background: rgba(240, 240, 240, 0.5);
margin-right: 4px;
color: #333;
background-color: #fff;
border-color: #ccc;
}
.notification_widget:focus,
.notification_widget.focus {
color: #333;
background-color: #e6e6e6;
border-color: #8c8c8c;
}
.notification_widget:hover {
color: #333;
background-color: #e6e6e6;
border-color: #adadad;
}
.notification_widget:active,
.notification_widget.active,
.open > .dropdown-toggle.notification_widget {
color: #333;
background-color: #e6e6e6;
border-color: #adadad;
}
.notification_widget:active:hover,
.notification_widget.active:hover,
.open > .dropdown-toggle.notification_widget:hover,
.notification_widget:active:focus,
.notification_widget.active:focus,
.open > .dropdown-toggle.notification_widget:focus,
.notification_widget:active.focus,
.notification_widget.active.focus,
.open > .dropdown-toggle.notification_widget.focus {
color: #333;
background-color: #d4d4d4;
border-color: #8c8c8c;
}
.notification_widget:active,
.notification_widget.active,
.open > .dropdown-toggle.notification_widget {
background-image: none;
}
.notification_widget.disabled:hover,
.notification_widget[disabled]:hover,
fieldset[disabled] .notification_widget:hover,
.notification_widget.disabled:focus,
.notification_widget[disabled]:focus,
fieldset[disabled] .notification_widget:focus,
.notification_widget.disabled.focus,
.notification_widget[disabled].focus,
fieldset[disabled] .notification_widget.focus {
background-color: #fff;
border-color: #ccc;
}
.notification_widget .badge {
color: #fff;
background-color: #333;
}
.notification_widget.warning {
color: #fff;
background-color: #f0ad4e;
border-color: #eea236;
}
.notification_widget.warning:focus,
.notification_widget.warning.focus {
color: #fff;
background-color: #ec971f;
border-color: #985f0d;
}
.notification_widget.warning:hover {
color: #fff;
background-color: #ec971f;
border-color: #d58512;
}
.notification_widget.warning:active,
.notification_widget.warning.active,
.open > .dropdown-toggle.notification_widget.warning {
color: #fff;
background-color: #ec971f;
border-color: #d58512;
}
.notification_widget.warning:active:hover,
.notification_widget.warning.active:hover,
.open > .dropdown-toggle.notification_widget.warning:hover,
.notification_widget.warning:active:focus,
.notification_widget.warning.active:focus,
.open > .dropdown-toggle.notification_widget.warning:focus,
.notification_widget.warning:active.focus,
.notification_widget.warning.active.focus,
.open > .dropdown-toggle.notification_widget.warning.focus {
color: #fff;
background-color: #d58512;
border-color: #985f0d;
}
.notification_widget.warning:active,
.notification_widget.warning.active,
.open > .dropdown-toggle.notification_widget.warning {
background-image: none;
}
.notification_widget.warning.disabled:hover,
.notification_widget.warning[disabled]:hover,
fieldset[disabled] .notification_widget.warning:hover,
.notification_widget.warning.disabled:focus,
.notification_widget.warning[disabled]:focus,
fieldset[disabled] .notification_widget.warning:focus,
.notification_widget.warning.disabled.focus,
.notification_widget.warning[disabled].focus,
fieldset[disabled] .notification_widget.warning.focus {
background-color: #f0ad4e;
border-color: #eea236;
}
.notification_widget.warning .badge {
color: #f0ad4e;
background-color: #fff;
}
.notification_widget.success {
color: #fff;
background-color: #5cb85c;
border-color: #4cae4c;
}
.notification_widget.success:focus,
.notification_widget.success.focus {
color: #fff;
background-color: #449d44;
border-color: #255625;
}
.notification_widget.success:hover {
color: #fff;
background-color: #449d44;
border-color: #398439;
}
.notification_widget.success:active,
.notification_widget.success.active,
.open > .dropdown-toggle.notification_widget.success {
color: #fff;
background-color: #449d44;
border-color: #398439;
}
.notification_widget.success:active:hover,
.notification_widget.success.active:hover,
.open > .dropdown-toggle.notification_widget.success:hover,
.notification_widget.success:active:focus,
.notification_widget.success.active:focus,
.open > .dropdown-toggle.notification_widget.success:focus,
.notification_widget.success:active.focus,
.notification_widget.success.active.focus,
.open > .dropdown-toggle.notification_widget.success.focus {
color: #fff;
background-color: #398439;
border-color: #255625;
}
.notification_widget.success:active,
.notification_widget.success.active,
.open > .dropdown-toggle.notification_widget.success {
background-image: none;
}
.notification_widget.success.disabled:hover,
.notification_widget.success[disabled]:hover,
fieldset[disabled] .notification_widget.success:hover,
.notification_widget.success.disabled:focus,
.notification_widget.success[disabled]:focus,
fieldset[disabled] .notification_widget.success:focus,
.notification_widget.success.disabled.focus,
.notification_widget.success[disabled].focus,
fieldset[disabled] .notification_widget.success.focus {
background-color: #5cb85c;
border-color: #4cae4c;
}
.notification_widget.success .badge {
color: #5cb85c;
background-color: #fff;
}
.notification_widget.info {
color: #fff;
background-color: #5bc0de;
border-color: #46b8da;
}
.notification_widget.info:focus,
.notification_widget.info.focus {
color: #fff;
background-color: #31b0d5;
border-color: #1b6d85;
}
.notification_widget.info:hover {
color: #fff;
background-color: #31b0d5;
border-color: #269abc;
}
.notification_widget.info:active,
.notification_widget.info.active,
.open > .dropdown-toggle.notification_widget.info {
color: #fff;
background-color: #31b0d5;
border-color: #269abc;
}
.notification_widget.info:active:hover,
.notification_widget.info.active:hover,
.open > .dropdown-toggle.notification_widget.info:hover,
.notification_widget.info:active:focus,
.notification_widget.info.active:focus,
.open > .dropdown-toggle.notification_widget.info:focus,
.notification_widget.info:active.focus,
.notification_widget.info.active.focus,
.open > .dropdown-toggle.notification_widget.info.focus {
color: #fff;
background-color: #269abc;
border-color: #1b6d85;
}
.notification_widget.info:active,
.notification_widget.info.active,
.open > .dropdown-toggle.notification_widget.info {
background-image: none;
}
.notification_widget.info.disabled:hover,
.notification_widget.info[disabled]:hover,
fieldset[disabled] .notification_widget.info:hover,
.notification_widget.info.disabled:focus,
.notification_widget.info[disabled]:focus,
fieldset[disabled] .notification_widget.info:focus,
.notification_widget.info.disabled.focus,
.notification_widget.info[disabled].focus,
fieldset[disabled] .notification_widget.info.focus {
background-color: #5bc0de;
border-color: #46b8da;
}
.notification_widget.info .badge {
color: #5bc0de;
background-color: #fff;
}
.notification_widget.danger {
color: #fff;
background-color: #d9534f;
border-color: #d43f3a;
}
.notification_widget.danger:focus,
.notification_widget.danger.focus {
color: #fff;
background-color: #c9302c;
border-color: #761c19;
}
.notification_widget.danger:hover {
color: #fff;
background-color: #c9302c;
border-color: #ac2925;
}
.notification_widget.danger:active,
.notification_widget.danger.active,
.open > .dropdown-toggle.notification_widget.danger {
color: #fff;
background-color: #c9302c;
border-color: #ac2925;
}
.notification_widget.danger:active:hover,
.notification_widget.danger.active:hover,
.open > .dropdown-toggle.notification_widget.danger:hover,
.notification_widget.danger:active:focus,
.notification_widget.danger.active:focus,
.open > .dropdown-toggle.notification_widget.danger:focus,
.notification_widget.danger:active.focus,
.notification_widget.danger.active.focus,
.open > .dropdown-toggle.notification_widget.danger.focus {
color: #fff;
background-color: #ac2925;
border-color: #761c19;
}
.notification_widget.danger:active,
.notification_widget.danger.active,
.open > .dropdown-toggle.notification_widget.danger {
background-image: none;
}
.notification_widget.danger.disabled:hover,
.notification_widget.danger[disabled]:hover,
fieldset[disabled] .notification_widget.danger:hover,
.notification_widget.danger.disabled:focus,
.notification_widget.danger[disabled]:focus,
fieldset[disabled] .notification_widget.danger:focus,
.notification_widget.danger.disabled.focus,
.notification_widget.danger[disabled].focus,
fieldset[disabled] .notification_widget.danger.focus {
background-color: #d9534f;
border-color: #d43f3a;
}
.notification_widget.danger .badge {
color: #d9534f;
background-color: #fff;
}
div#pager {
background-color: #fff;
font-size: 14px;
line-height: 20px;
overflow: hidden;
display: none;
position: fixed;
bottom: 0px;
width: 100%;
max-height: 50%;
padding-top: 8px;
-webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
/* Display over codemirror */
z-index: 100;
/* Hack which prevents jquery ui resizable from changing top. */
top: auto !important;
}
div#pager pre {
line-height: 1.21429em;
color: #000;
background-color: #f7f7f7;
padding: 0.4em;
}
div#pager #pager-button-area {
position: absolute;
top: 8px;
right: 20px;
}
div#pager #pager-contents {
position: relative;
overflow: auto;
width: 100%;
height: 100%;
}
div#pager #pager-contents #pager-container {
position: relative;
padding: 15px 0px;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
div#pager .ui-resizable-handle {
top: 0px;
height: 8px;
background: #f7f7f7;
border-top: 1px solid #cfcfcf;
border-bottom: 1px solid #cfcfcf;
/* This injects handle bars (a short, wide = symbol) for
the resize handle. */
}
div#pager .ui-resizable-handle::after {
content: '';
top: 2px;
left: 50%;
height: 3px;
width: 30px;
margin-left: -15px;
position: absolute;
border-top: 1px solid #cfcfcf;
}
.quickhelp {
/* Old browsers */
display: -webkit-box;
-webkit-box-orient: horizontal;
-webkit-box-align: stretch;
display: -moz-box;
-moz-box-orient: horizontal;
-moz-box-align: stretch;
display: box;
box-orient: horizontal;
box-align: stretch;
/* Modern browsers */
display: flex;
flex-direction: row;
align-items: stretch;
line-height: 1.8em;
}
.shortcut_key {
display: inline-block;
width: 21ex;
text-align: right;
font-family: monospace;
}
.shortcut_descr {
display: inline-block;
/* Old browsers */
-webkit-box-flex: 1;
-moz-box-flex: 1;
box-flex: 1;
/* Modern browsers */
flex: 1;
}
span.save_widget {
margin-top: 6px;
}
span.save_widget span.filename {
height: 1em;
line-height: 1em;
padding: 3px;
margin-left: 16px;
border: none;
font-size: 146.5%;
border-radius: 2px;
}
span.save_widget span.filename:hover {
background-color: #e6e6e6;
}
span.checkpoint_status,
span.autosave_status {
font-size: small;
}
@media (max-width: 767px) {
span.save_widget {
font-size: small;
}
span.checkpoint_status,
span.autosave_status {
display: none;
}
}
@media (min-width: 768px) and (max-width: 991px) {
span.checkpoint_status {
display: none;
}
span.autosave_status {
font-size: x-small;
}
}
.toolbar {
padding: 0px;
margin-left: -5px;
margin-top: 2px;
margin-bottom: 5px;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
.toolbar select,
.toolbar label {
width: auto;
vertical-align: middle;
margin-right: 2px;
margin-bottom: 0px;
display: inline;
font-size: 92%;
margin-left: 0.3em;
margin-right: 0.3em;
padding: 0px;
padding-top: 3px;
}
.toolbar .btn {
padding: 2px 8px;
}
.toolbar .btn-group {
margin-top: 0px;
margin-left: 5px;
}
#maintoolbar {
margin-bottom: -3px;
margin-top: -8px;
border: 0px;
min-height: 27px;
margin-left: 0px;
padding-top: 11px;
padding-bottom: 3px;
}
#maintoolbar .navbar-text {
float: none;
vertical-align: middle;
text-align: right;
margin-left: 5px;
margin-right: 0px;
margin-top: 0px;
}
.select-xs {
height: 24px;
}
.pulse,
.dropdown-menu > li > a.pulse,
li.pulse > a.dropdown-toggle,
li.pulse.open > a.dropdown-toggle {
background-color: #F37626;
color: white;
}
/**
* Primary styles
*
* Author: Jupyter Development Team
*/
/** WARNING IF YOU ARE EDITTING THIS FILE, if this is a .css file, It has a lot
* of chance of beeing generated from the ../less/[samename].less file, you can
* try to get back the less file by reverting somme commit in history
**/
/*
* We'll try to get something pretty, so we
* have some strange css to have the scroll bar on
* the left with fix button on the top right of the tooltip
*/
@-moz-keyframes fadeOut {
from {
opacity: 1;
}
to {
opacity: 0;
}
}
@-webkit-keyframes fadeOut {
from {
opacity: 1;
}
to {
opacity: 0;
}
}
@-moz-keyframes fadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@-webkit-keyframes fadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
/*properties of tooltip after "expand"*/
.bigtooltip {
overflow: auto;
height: 200px;
-webkit-transition-property: height;
-webkit-transition-duration: 500ms;
-moz-transition-property: height;
-moz-transition-duration: 500ms;
transition-property: height;
transition-duration: 500ms;
}
/*properties of tooltip before "expand"*/
.smalltooltip {
-webkit-transition-property: height;
-webkit-transition-duration: 500ms;
-moz-transition-property: height;
-moz-transition-duration: 500ms;
transition-property: height;
transition-duration: 500ms;
text-overflow: ellipsis;
overflow: hidden;
height: 80px;
}
.tooltipbuttons {
position: absolute;
padding-right: 15px;
top: 0px;
right: 0px;
}
.tooltiptext {
/*avoid the button to overlap on some docstring*/
padding-right: 30px;
}
.ipython_tooltip {
max-width: 700px;
/*fade-in animation when inserted*/
-webkit-animation: fadeOut 400ms;
-moz-animation: fadeOut 400ms;
animation: fadeOut 400ms;
-webkit-animation: fadeIn 400ms;
-moz-animation: fadeIn 400ms;
animation: fadeIn 400ms;
vertical-align: middle;
background-color: #f7f7f7;
overflow: visible;
border: #ababab 1px solid;
outline: none;
padding: 3px;
margin: 0px;
padding-left: 7px;
font-family: monospace;
min-height: 50px;
-moz-box-shadow: 0px 6px 10px -1px #adadad;
-webkit-box-shadow: 0px 6px 10px -1px #adadad;
box-shadow: 0px 6px 10px -1px #adadad;
border-radius: 2px;
position: absolute;
z-index: 1000;
}
.ipython_tooltip a {
float: right;
}
.ipython_tooltip .tooltiptext pre {
border: 0;
border-radius: 0;
font-size: 100%;
background-color: #f7f7f7;
}
.pretooltiparrow {
left: 0px;
margin: 0px;
top: -16px;
width: 40px;
height: 16px;
overflow: hidden;
position: absolute;
}
.pretooltiparrow:before {
background-color: #f7f7f7;
border: 1px #ababab solid;
z-index: 11;
content: "";
position: absolute;
left: 15px;
top: 10px;
width: 25px;
height: 25px;
-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
-ms-transform: rotate(45deg);
-o-transform: rotate(45deg);
}
ul.typeahead-list i {
margin-left: -10px;
width: 18px;
}
ul.typeahead-list {
max-height: 80vh;
overflow: auto;
}
ul.typeahead-list > li > a {
/** Firefox bug **/
/* see https://github.com/jupyter/notebook/issues/559 */
white-space: normal;
}
.cmd-palette .modal-body {
padding: 7px;
}
.cmd-palette form {
background: white;
}
.cmd-palette input {
outline: none;
}
.no-shortcut {
display: none;
}
.command-shortcut:before {
content: "(command)";
padding-right: 3px;
color: #777777;
}
.edit-shortcut:before {
content: "(edit)";
padding-right: 3px;
color: #777777;
}
#find-and-replace #replace-preview .match,
#find-and-replace #replace-preview .insert {
background-color: #BBDEFB;
border-color: #90CAF9;
border-style: solid;
border-width: 1px;
border-radius: 0px;
}
#find-and-replace #replace-preview .replace .match {
background-color: #FFCDD2;
border-color: #EF9A9A;
border-radius: 0px;
}
#find-and-replace #replace-preview .replace .insert {
background-color: #C8E6C9;
border-color: #A5D6A7;
border-radius: 0px;
}
#find-and-replace #replace-preview {
max-height: 60vh;
overflow: auto;
}
#find-and-replace #replace-preview pre {
padding: 5px 10px;
}
.terminal-app {
background: #EEE;
}
.terminal-app #header {
background: #fff;
-webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
}
.terminal-app .terminal {
width: 100%;
float: left;
font-family: monospace;
color: white;
background: black;
padding: 0.4em;
border-radius: 2px;
-webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.4);
box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.4);
}
.terminal-app .terminal,
.terminal-app .terminal dummy-screen {
line-height: 1em;
font-size: 14px;
}
.terminal-app .terminal .xterm-rows {
padding: 10px;
}
.terminal-app .terminal-cursor {
color: black;
background: white;
}
.terminal-app #terminado-container {
margin-top: 20px;
}
/*# sourceMappingURL=style.min.css.map */
</style>
<style type="text/css">
.highlight .hll { background-color: #ffffcc }
.highlight { background: #f8f8f8; }
.highlight .c { color: #408080; font-style: italic } /* Comment */
.highlight .err { border: 1px solid #FF0000 } /* Error */
.highlight .k { color: #008000; font-weight: bold } /* Keyword */
.highlight .o { color: #666666 } /* Operator */
.highlight .ch { color: #408080; font-style: italic } /* Comment.Hashbang */
.highlight .cm { color: #408080; font-style: italic } /* Comment.Multiline */
.highlight .cp { color: #BC7A00 } /* Comment.Preproc */
.highlight .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
.highlight .c1 { color: #408080; font-style: italic } /* Comment.Single */
.highlight .cs { color: #408080; font-style: italic } /* Comment.Special */
.highlight .gd { color: #A00000 } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gr { color: #FF0000 } /* Generic.Error */
.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
.highlight .gi { color: #00A000 } /* Generic.Inserted */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
.highlight .gt { color: #0044DD } /* Generic.Traceback */
.highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #008000 } /* Keyword.Pseudo */
.highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #B00040 } /* Keyword.Type */
.highlight .m { color: #666666 } /* Literal.Number */
.highlight .s { color: #BA2121 } /* Literal.String */
.highlight .na { color: #7D9029 } /* Name.Attribute */
.highlight .nb { color: #008000 } /* Name.Builtin */
.highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */
.highlight .no { color: #880000 } /* Name.Constant */
.highlight .nd { color: #AA22FF } /* Name.Decorator */
.highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */
.highlight .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #0000FF } /* Name.Function */
.highlight .nl { color: #A0A000 } /* Name.Label */
.highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
.highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */
.highlight .nv { color: #19177C } /* Name.Variable */
.highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mb { color: #666666 } /* Literal.Number.Bin */
.highlight .mf { color: #666666 } /* Literal.Number.Float */
.highlight .mh { color: #666666 } /* Literal.Number.Hex */
.highlight .mi { color: #666666 } /* Literal.Number.Integer */
.highlight .mo { color: #666666 } /* Literal.Number.Oct */
.highlight .sa { color: #BA2121 } /* Literal.String.Affix */
.highlight .sb { color: #BA2121 } /* Literal.String.Backtick */
.highlight .sc { color: #BA2121 } /* Literal.String.Char */
.highlight .dl { color: #BA2121 } /* Literal.String.Delimiter */
.highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
.highlight .s2 { color: #BA2121 } /* Literal.String.Double */
.highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
.highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */
.highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
.highlight .sx { color: #008000 } /* Literal.String.Other */
.highlight .sr { color: #BB6688 } /* Literal.String.Regex */
.highlight .s1 { color: #BA2121 } /* Literal.String.Single */
.highlight .ss { color: #19177C } /* Literal.String.Symbol */
.highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */
.highlight .fm { color: #0000FF } /* Name.Function.Magic */
.highlight .vc { color: #19177C } /* Name.Variable.Class */
.highlight .vg { color: #19177C } /* Name.Variable.Global */
.highlight .vi { color: #19177C } /* Name.Variable.Instance */
.highlight .vm { color: #19177C } /* Name.Variable.Magic */
.highlight .il { color: #666666 } /* Literal.Number.Integer.Long */
</style>
<style type="text/css">
/* Temporary definitions which will become obsolete with Notebook release 5.0 */
.ansi-black-fg { color: #3E424D; }
.ansi-black-bg { background-color: #3E424D; }
.ansi-black-intense-fg { color: #282C36; }
.ansi-black-intense-bg { background-color: #282C36; }
.ansi-red-fg { color: #E75C58; }
.ansi-red-bg { background-color: #E75C58; }
.ansi-red-intense-fg { color: #B22B31; }
.ansi-red-intense-bg { background-color: #B22B31; }
.ansi-green-fg { color: #00A250; }
.ansi-green-bg { background-color: #00A250; }
.ansi-green-intense-fg { color: #007427; }
.ansi-green-intense-bg { background-color: #007427; }
.ansi-yellow-fg { color: #DDB62B; }
.ansi-yellow-bg { background-color: #DDB62B; }
.ansi-yellow-intense-fg { color: #B27D12; }
.ansi-yellow-intense-bg { background-color: #B27D12; }
.ansi-blue-fg { color: #208FFB; }
.ansi-blue-bg { background-color: #208FFB; }
.ansi-blue-intense-fg { color: #0065CA; }
.ansi-blue-intense-bg { background-color: #0065CA; }
.ansi-magenta-fg { color: #D160C4; }
.ansi-magenta-bg { background-color: #D160C4; }
.ansi-magenta-intense-fg { color: #A03196; }
.ansi-magenta-intense-bg { background-color: #A03196; }
.ansi-cyan-fg { color: #60C6C8; }
.ansi-cyan-bg { background-color: #60C6C8; }
.ansi-cyan-intense-fg { color: #258F8F; }
.ansi-cyan-intense-bg { background-color: #258F8F; }
.ansi-white-fg { color: #C5C1B4; }
.ansi-white-bg { background-color: #C5C1B4; }
.ansi-white-intense-fg { color: #A1A6B2; }
.ansi-white-intense-bg { background-color: #A1A6B2; }
.ansi-bold { font-weight: bold; }
</style>
<style type="text/css">
/* Overrides of notebook CSS for static HTML export */
body {
overflow: visible;
padding: 8px;
}
div#notebook {
overflow: visible;
border-top: none;
}
@media print {
div.cell {
display: block;
page-break-inside: avoid;
}
div.output_wrapper {
display: block;
page-break-inside: avoid;
}
div.output {
display: block;
page-break-inside: avoid;
}
}
</style>
<!-- Custom stylesheet, it must be in the same directory as the html file -->
<link rel="stylesheet" href="custom.css">
<!-- Loading mathjax macro -->
<!-- Load mathjax -->
<script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML"></script>
<!-- MathJax configuration -->
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
tex2jax: {
inlineMath: [ ['$','$'], ["\\(","\\)"] ],
displayMath: [ ['$$','$$'], ["\\[","\\]"] ],
processEscapes: true,
processEnvironments: true
},
// Center justify equations in code and markdown cells. Elsewhere
// we use CSS to left justify single line equations in code cells.
displayAlign: 'center',
"HTML-CSS": {
styles: {'.MathJax_Display': {"margin": 0}},
linebreaks: { automatic: true }
}
});
</script>
<!-- End of mathjax configuration --></head>
<body>
<div tabindex="-1" id="notebook" class="border-box-sizing">
<div class="container" id="notebook-container">
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="Image-Classification">Image Classification<a class="anchor-link" href="#Image-Classification">&#182;</a></h1><p>In this project, you'll classify images from the <a href="https://www.cs.toronto.edu/~kriz/cifar.html">CIFAR-10 dataset</a>. The dataset consists of airplanes, dogs, cats, and other objects. You'll preprocess the images, then train a convolutional neural network on all the samples. The images need to be normalized and the labels need to be one-hot encoded. You'll get to apply what you learned and build a convolutional, max pooling, dropout, and fully connected layers. At the end, you'll get to see your neural network's predictions on the sample images.</p>
<h2 id="Get-the-Data">Get the Data<a class="anchor-link" href="#Get-the-Data">&#182;</a></h2><p>Run the following cell to download the <a href="https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz">CIFAR-10 dataset for python</a>.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[3]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd">DON&#39;T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="kn">from</span> <span class="nn">urllib.request</span> <span class="k">import</span> <span class="n">urlretrieve</span>
<span class="kn">from</span> <span class="nn">os.path</span> <span class="k">import</span> <span class="n">isfile</span><span class="p">,</span> <span class="n">isdir</span>
<span class="kn">from</span> <span class="nn">tqdm</span> <span class="k">import</span> <span class="n">tqdm</span>
<span class="kn">import</span> <span class="nn">problem_unittests</span> <span class="k">as</span> <span class="nn">tests</span>
<span class="kn">import</span> <span class="nn">tarfile</span>
<span class="n">cifar10_dataset_folder_path</span> <span class="o">=</span> <span class="s1">&#39;cifar-10-batches-py&#39;</span>
<span class="k">class</span> <span class="nc">DLProgress</span><span class="p">(</span><span class="n">tqdm</span><span class="p">):</span>
<span class="n">last_block</span> <span class="o">=</span> <span class="mi">0</span>
<span class="k">def</span> <span class="nf">hook</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">block_num</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">block_size</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">total_size</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">total</span> <span class="o">=</span> <span class="n">total_size</span>
<span class="bp">self</span><span class="o">.</span><span class="n">update</span><span class="p">((</span><span class="n">block_num</span> <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">last_block</span><span class="p">)</span> <span class="o">*</span> <span class="n">block_size</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">last_block</span> <span class="o">=</span> <span class="n">block_num</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">isfile</span><span class="p">(</span><span class="s1">&#39;cifar-10-python.tar.gz&#39;</span><span class="p">):</span>
<span class="k">with</span> <span class="n">DLProgress</span><span class="p">(</span><span class="n">unit</span><span class="o">=</span><span class="s1">&#39;B&#39;</span><span class="p">,</span> <span class="n">unit_scale</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">miniters</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">desc</span><span class="o">=</span><span class="s1">&#39;CIFAR-10 Dataset&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">pbar</span><span class="p">:</span>
<span class="n">urlretrieve</span><span class="p">(</span>
<span class="s1">&#39;https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz&#39;</span><span class="p">,</span>
<span class="s1">&#39;cifar-10-python.tar.gz&#39;</span><span class="p">,</span>
<span class="n">pbar</span><span class="o">.</span><span class="n">hook</span><span class="p">)</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">isdir</span><span class="p">(</span><span class="n">cifar10_dataset_folder_path</span><span class="p">):</span>
<span class="k">with</span> <span class="n">tarfile</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">&#39;cifar-10-python.tar.gz&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">tar</span><span class="p">:</span>
<span class="n">tar</span><span class="o">.</span><span class="n">extractall</span><span class="p">()</span>
<span class="n">tar</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
<span class="n">tests</span><span class="o">.</span><span class="n">test_folder_path</span><span class="p">(</span><span class="n">cifar10_dataset_folder_path</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>All files found!
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="Explore-the-Data">Explore the Data<a class="anchor-link" href="#Explore-the-Data">&#182;</a></h2><p>The dataset is broken into batches to prevent your machine from running out of memory. The CIFAR-10 dataset consists of 5 batches, named <code>data_batch_1</code>, <code>data_batch_2</code>, etc.. Each batch contains the labels and images that are one of the following:</p>
<ul>
<li>airplane</li>
<li>automobile</li>
<li>bird</li>
<li>cat</li>
<li>deer</li>
<li>dog</li>
<li>frog</li>
<li>horse</li>
<li>ship</li>
<li>truck</li>
</ul>
<p>Understanding a dataset is part of making predictions on the data. Play around with the code cell below by changing the <code>batch_id</code> and <code>sample_id</code>. The <code>batch_id</code> is the id for a batch (1-5). The <code>sample_id</code> is the id for a image and label pair in the batch.</p>
<p>Ask yourself "What are all possible labels?", "What is the range of values for the image data?", "Are the labels in order or random?". Answers to questions like these will help you preprocess the data and end up with better predictions.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[4]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="o">%</span><span class="k">matplotlib</span> inline
<span class="o">%</span><span class="k">config</span> InlineBackend.figure_format = &#39;retina&#39;
<span class="kn">import</span> <span class="nn">helper</span>
<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
<span class="c1"># Explore the dataset</span>
<span class="n">batch_id</span> <span class="o">=</span> <span class="mi">1</span>
<span class="n">sample_id</span> <span class="o">=</span> <span class="mi">32</span>
<span class="n">helper</span><span class="o">.</span><span class="n">display_stats</span><span class="p">(</span><span class="n">cifar10_dataset_folder_path</span><span class="p">,</span> <span class="n">batch_id</span><span class="p">,</span> <span class="n">sample_id</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>
Stats of batch 1:
Samples: 10000
Label Counts: {0: 1005, 1: 974, 2: 1032, 3: 1016, 4: 999, 5: 937, 6: 1030, 7: 1001, 8: 1025, 9: 981}
First 20 Labels: [6, 9, 9, 4, 1, 1, 2, 7, 8, 3, 4, 7, 7, 2, 9, 9, 9, 3, 2, 6]
Example of Image 32:
Image - Min Value: 0 Max Value: 255
Image - Shape: (32, 32, 3)
Label - Label Id: 1 Name: automobile
</pre>
</div>
</div>
<div class="output_area">
<div class="prompt"></div>
<div class="output_png output_subarea ">
<img src="data:image/png;base64,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
cGZp5Wjq1upCfCnv/rtuT92a6+T+jbu8HM8dWTqeurW1Pg5nZie51cbdcXyBcXjyUOrWjXsOp3Jt
dxqOvJxcr9vdjr8312dyz+KR07k3dTexLLm1cS11a/d6YrVxL7dS2EsuUmZWIg8fXE3d+oPf/51w
Zr6f+71uBt/oAaAwRQ8AhSl6AChM0QNAYYoeAApT9ABQmKIHgMIUPQAUpugBoDBFDwCFKXoAKEzR
A0BhhUdtZlK57nw8tz/KvYz9+fhoyWhjJ3Vrvhu/1Vprc5ONcObobHxso7XWjpw4E87c/eRHUreO
3n46lZvrz4Uzvfn51K29ySPhzKAzSd3qT0bhzPY4d+v6MH6rtdZ+9NNXwpn95Pvl+valcGZ3ez11
a28t/h5rrbXxeD+c6eTemm22E/+bLS/Eh4Faa224Fx+naa21lbn4e3Oxn/vsPn1LZrgr93rcDL7R
A0Bhih4AClP0AFCYogeAwhQ9ABSm6AGgMEUPAIUpegAoTNEDQGGKHgAKU/QAUJiiB4DCFD0AFFZ2
vW60P03llhKvyNGV3BrXPbfE15bufNcdqVsH7noolTv1yOPxW6fuT93aWDoezuxOc8tw452tVG6v
F1+g6kxzK28zidW7nf3credfejmc+ca3vpe69dxzL6Zyw7X4otygm1tCm+3E1x6nrZe6Ne3mPoZn
5+LP4tJ87tbCIP67jce575Gd4WYqtzyTeP2nuZ/x0HgYzjxx6ljq1s3gGz0AFKboAaAwRQ8AhSl6
AChM0QNAYYoeAApT9ABQmKIHgMIUPQAUpugBoDBFDwCFKXoAKKzsqM0/+vSjqdypIwfCmaXb707d
6twaH5qZPXZP6tbc6uFUbtKfCWe2b2ynbg3mF8KZ7n58fKS11jYTv1drrW2P46Mxo+3c6NF3n/5x
OPP0t59O3bp8/vVwZrx7I3Vr0N9J5VZm40NVg2l8OKq11rrd+KDQYNBJ3TqQGKdprbVOiz/7s73k
R37iuX/2Zz9Lndrf303lHnvgvnCm08m9N4984EPhzDPf/0bq1s2YwvGNHgAKU/QAUJiiB4DCFD0A
FKboAaAwRQ8AhSl6AChM0QNAYYoeAApT9ABQmKIHgMIUPQAUpugBoLCy63X3Pracyr29Ec/1TzyZ
unX/g4+HM71pbq1t0I2vT/0iF890D8SXv1prrZ8Y/xr1UqfalWHudXzp+WfDma//4JnUrS9/50fh
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
XOrU3NLBcGZvmvvMmUxyz9Vj990bzvz9z3wydevxRx8OZ3Z3dlK3bgbf6AGgMEUPAIUpegAoTNED
QGGKHgAKU/QAUJiiB4DCFD0AFKboAaAwRQ8AhSl6AChM0QNAYWVHbTZGuQGBrb3NcOZzv/lE6tZk
NBvO/Omf/SB16wtf/otU7v2PPR7O9FcWUree/vL/CmcWZwapWwcOLKdy68PtcGZnPzfS8fLLr4Qz
e4kxltZa21qOD+/s749St/YnudGj69fXwpnsYEwqlxiZaa217iA5NLMQH+6attyi0Gzi5XjfQ2dS
t97/ntzn6Xsff1c4s5wcnNraHIYz49xjf1P4Rg8AhSl6AChM0QNAYYoeAApT9ABQmKIHgMIUPQAU
pugBoDBFDwCFKXoAKEzRA0Bhih4AClP0AFBY2fW6yxvXU7lhYoDqxo3cy/jauXPhzHPnL6ZuvfHm
hVTuT/7b+XDm9C2rqVv/5B9+LpzZnosveLXW2refiy/DtdbaM8+8FM6ce/NK6tYgsTQ2GOTW/Hoz
M+HMrbfdmbr1l8/+LJXrdOPfS5JDeW3Qj7+nF5dyq42tn8vt7O2GM6eOHk7d+u3PfCqc+dhTT6Vu
9Qa9VO7G1lY4s7mVWzlt/fj7bPwOztf5Rg8AhSl6AChM0QNAYYoeAApT9ABQmKIHgMIUPQAUpugB
oDBFDwCFKXoAKEzRA0Bhih4ACis7avPMS8NU7tlXLoUzP3725dStC2+8Hs48ccfx1K3bbjmWyp27
cjWcueXEydSts9fXw5nvn42PzLTW2rd+9Ewqt7a5Hc70Wm6kY9KJLyyNxqPUrYsX4qNHN9Y3UrfG
o71UbjCID+/MzM2lbvVn4rlRcrNkaSb3MfyJD703nPnN3/h46tapk/H39HAnNxizu5nLdXvx17HX
y33XHe7Gf8bdndxzfzP4Rg8AhSl6AChM0QNAYYoeAApT9ABQmKIHgMIUPQAUpugBoDBFDwCFKXoA
KEzRA0Bhih4AClP0AFBYZzpNTi79krv/zltTv9i1tfiC2pGF2cyp9skPJtanPvxU6ta//OZ3U7l/
+1+/msr9f9PJLcN1+53cuUSsn/z39LQljnVzv1fmJ+z3c6trk8zv1Vqb9uPrdd1u7rWf7cdz73ns
4dStT3/0o6ncww/cF86MJpPUrb39+JLiOPEattZat5PLdRK54dZm6tZoFF+JXFhYSN367G99PveG
+St8oweAwhQ9ABSm6AGgMEUPAIUpegAoTNEDQGGKHgAKU/QAUJiiB4DCFD0AFKboAaAwRQ8AhSl6
ACgsNz/1K+Dv3Xt3KnfX6ZPhzL2PP5G6tXrkVDiztT1M3XrivrtSubVf+0g4c/Hym6lbmxvxJalr
a2upW1vbO6nc7l58tSq++/UOyOxjTQapU/OLi6nc4cX4SuSxo0dSt/7Oxz8Wznzkgx9M3er3c6/j
+o34+2U0ya2VzgziP2M3OYw6neYW9tY34suj2XXDxaWlcKaTmb68SXyjB4DCFD0AFKboAaAwRQ8A
hSl6AChM0QNAYYoeAApT9ABQmKIHgMIUPQAUpugBoDBFDwCFdabT5PLAL7lXvvgvUr/Y1vxKODNM
DkVsb8VHKQbd3ODDXD+3X5SZflmP77601lq7lhjpuPzm1dStreF2KreztxfObAy3Ure2tuIDRtPk
szjciN8aTXJ/6EfOPJTK3XP7HeHM8oHl1K2DKwfDmdE499rvJUdcJi1+r5P+uI8PsuyNc8/H9k7u
vdnr9cKZ+bm51K1Mb2bfm5/97c//P6/h+EYPAIUpegAoTNEDQGGKHgAKU/QAUJiiB4DCFD0AFKbo
AaAwRQ8AhSl6AChM0QNAYYoeAApT9ABQWG7S7FfAueXFVG5vZxwPbe+nbmWmpLYHg9SptVFuOWmS
WCjrJG8dO7gaztx24njq1iSxxtVaa4OZmXBmZjaeaa21lli7Gu/lnsXOOL6g1u3kXsPpNPEea60N
p/F1st3kwt76dnxBrd/PvTcTI3SttdY6vcTr3819txtux9cNd3Yy25etLSwspHKDxOs/HeeexdR6
3Tu4FOsbPQAUpugBoDBFDwCFKXoAKEzRA0Bhih4AClP0AFCYogeAwhQ9ABSm6AGgMEUPAIUpegAo
rOyoTdvKxbqj+ChIdyY+ttFaa60XH97pd3J/sk52gGQSHzsZDXJDIq0b/xn39nK3sgMTu8P42ElL
3honBjdyf+XWOjOJQZZe7nvCJLniMu0mhkT68ef3F7n4EFF2KCnzHvtFMB7Z2t5MnRqN4u+zxcXc
sFg3+VyNxvGfsZf8XOwk/taTSW5A52bwjR4AClP0AFCYogeAwhQ9ABSm6AGgMEUPAIUpegAoTNED
QGGKHgAKU/QAUJiiB4DCFD0AFKboAaCwTnbFCwD45ecbPQAUpugBoDBFDwCFKXoAKEzRA0Bhih4A
ClP0AFCYogeAwhQ9ABSm6AGgMEUPAIUpegAoTNEDQGGKHgAKU/QAUJiiB4DCFD0AFKboAaAwRQ8A
hSl6AChM0QNAYYoeAApT9ABQmKIHgMIUPQAUpugBoDBFDwCFKXoAKEzRA0Bhih4AClP0AFCYogeA
whQ9ABSm6AGgMEUPAIUpegAoTNEDQGGKHgAKU/QAUJiiB4DCFD0AFKboAaAwRQ8AhSl6AChM0QNA
YYoeAAr7v3To37eZkHdPAAAAAElFTkSuQmCC
"
width=253
height=250
>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="Implement-Preprocess-Functions">Implement Preprocess Functions<a class="anchor-link" href="#Implement-Preprocess-Functions">&#182;</a></h2><h3 id="Normalize">Normalize<a class="anchor-link" href="#Normalize">&#182;</a></h3><p>In the cell below, implement the <code>normalize</code> function to take in image data, <code>x</code>, and return it as a normalized Numpy array. The values should be in the range of 0 to 1, inclusive. The return object should be the same shape as <code>x</code>.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[5]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">normalize</span><span class="p">(</span><span class="n">x</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Normalize a list of sample image data in the range of 0 to 1</span>
<span class="sd"> : x: List of image data. The image shape is (32, 32, 3)</span>
<span class="sd"> : return: Numpy array of normalize data</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">return</span> <span class="p">(</span><span class="n">x</span> <span class="o">-</span> <span class="n">x</span><span class="o">.</span><span class="n">min</span><span class="p">())</span> <span class="o">/</span> <span class="p">(</span><span class="n">x</span><span class="o">.</span><span class="n">max</span><span class="p">()</span> <span class="o">-</span> <span class="n">x</span><span class="o">.</span><span class="n">min</span><span class="p">())</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd">DON&#39;T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="n">tests</span><span class="o">.</span><span class="n">test_normalize</span><span class="p">(</span><span class="n">normalize</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>Tests Passed
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="One-hot-encode">One-hot encode<a class="anchor-link" href="#One-hot-encode">&#182;</a></h3><p>Just like the previous code cell, you'll be implementing a function for preprocessing. This time, you'll implement the <code>one_hot_encode</code> function. The input, <code>x</code>, are a list of labels. Implement the function to return the list of labels as One-Hot encoded Numpy array. The possible values for labels are 0 to 9. The one-hot encoding function should return the same encoding for each value between each call to <code>one_hot_encode</code>. Make sure to save the map of encodings outside the function.</p>
<p>Hint: Don't reinvent the wheel.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[6]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="n">encodings</span> <span class="o">=</span> <span class="p">{}</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">10</span><span class="p">):</span>
<span class="n">v</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span>
<span class="n">v</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="mi">1</span>
<span class="n">encodings</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">v</span>
<span class="k">def</span> <span class="nf">one_hot_encode</span><span class="p">(</span><span class="n">x</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> One hot encode a list of sample labels. Return a one-hot encoded vector for each label.</span>
<span class="sd"> : x: List of sample Labels</span>
<span class="sd"> : return: Numpy array of one-hot encoded labels</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">assert</span> <span class="n">np</span><span class="o">.</span><span class="n">max</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="o">&lt;</span> <span class="mi">10</span> <span class="ow">and</span> <span class="n">np</span><span class="o">.</span><span class="n">min</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="o">&gt;=</span> <span class="mi">0</span><span class="p">,</span> <span class="s1">&#39;label must be between 0 and 9&#39;</span>
<span class="n">encoded</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="nb">map</span><span class="p">(</span><span class="k">lambda</span> <span class="n">v</span><span class="p">:</span> <span class="n">encodings</span><span class="p">[</span><span class="n">v</span><span class="p">],</span><span class="n">x</span><span class="p">)))</span>
<span class="k">return</span> <span class="n">encoded</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd">DON&#39;T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="n">tests</span><span class="o">.</span><span class="n">test_one_hot_encode</span><span class="p">(</span><span class="n">one_hot_encode</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>Tests Passed
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="Randomize-Data">Randomize Data<a class="anchor-link" href="#Randomize-Data">&#182;</a></h3><p>As you saw from exploring the data above, the order of the samples are randomized. It doesn't hurt to randomize it again, but you don't need to for this dataset.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="Preprocess-all-the-data-and-save-it">Preprocess all the data and save it<a class="anchor-link" href="#Preprocess-all-the-data-and-save-it">&#182;</a></h2><p>Running the code cell below will preprocess all the CIFAR-10 data and save it to file. The code below also uses 10% of the training data for validation.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[7]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd">DON&#39;T MODIFY ANYTHING IN THIS CELL</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="c1"># Preprocess Training, Validation, and Testing Data</span>
<span class="n">helper</span><span class="o">.</span><span class="n">preprocess_and_save_data</span><span class="p">(</span><span class="n">cifar10_dataset_folder_path</span><span class="p">,</span> <span class="n">normalize</span><span class="p">,</span> <span class="n">one_hot_encode</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="Check-Point">Check Point<a class="anchor-link" href="#Check-Point">&#182;</a></h1><p>This is your first checkpoint. If you ever decide to come back to this notebook or have to restart the notebook, you can start from here. The preprocessed data has been saved to disk.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[8]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd">DON&#39;T MODIFY ANYTHING IN THIS CELL</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="kn">import</span> <span class="nn">pickle</span>
<span class="kn">import</span> <span class="nn">problem_unittests</span> <span class="k">as</span> <span class="nn">tests</span>
<span class="kn">import</span> <span class="nn">helper</span>
<span class="c1"># Load the Preprocessed Validation data</span>
<span class="n">valid_features</span><span class="p">,</span> <span class="n">valid_labels</span> <span class="o">=</span> <span class="n">pickle</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="nb">open</span><span class="p">(</span><span class="s1">&#39;preprocess_validation.p&#39;</span><span class="p">,</span> <span class="n">mode</span><span class="o">=</span><span class="s1">&#39;rb&#39;</span><span class="p">))</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="Build-the-network">Build the network<a class="anchor-link" href="#Build-the-network">&#182;</a></h2><p>For the neural network, you'll build each layer into a function. Most of the code you've seen has been outside of functions. To test your code more thoroughly, we require that you put each layer in a function. This allows us to give you better feedback and test for simple mistakes using our unittests before you submit your project.</p>
<p>If you're finding it hard to dedicate enough time for this course a week, we've provided a small shortcut to this part of the project. In the next couple of problems, you'll have the option to use <a href="https://www.tensorflow.org/api_docs/python/tf/layers">TensorFlow Layers</a> or <a href="https://www.tensorflow.org/api_guides/python/contrib.layers">TensorFlow Layers (contrib)</a> to build each layer, except "Convolutional &amp; Max Pooling" layer. TF Layers is similar to Keras's and TFLearn's abstraction to layers, so it's easy to pickup.</p>
<p>If you would like to get the most of this course, try to solve all the problems without TF Layers. Let's begin!</p>
<h3 id="Input">Input<a class="anchor-link" href="#Input">&#182;</a></h3><p>The neural network needs to read the image data, one-hot encoded labels, and dropout keep probability. Implement the following functions</p>
<ul>
<li>Implement <code>neural_net_image_input</code><ul>
<li>Return a <a href="https://www.tensorflow.org/api_docs/python/tf/placeholder">TF Placeholder</a></li>
<li>Set the shape using <code>image_shape</code> with batch size set to <code>None</code>.</li>
<li>Name the TensorFlow placeholder "x" using the TensorFlow <code>name</code> parameter in the <a href="https://www.tensorflow.org/api_docs/python/tf/placeholder">TF Placeholder</a>.</li>
</ul>
</li>
<li>Implement <code>neural_net_label_input</code><ul>
<li>Return a <a href="https://www.tensorflow.org/api_docs/python/tf/placeholder">TF Placeholder</a></li>
<li>Set the shape using <code>n_classes</code> with batch size set to <code>None</code>.</li>
<li>Name the TensorFlow placeholder "y" using the TensorFlow <code>name</code> parameter in the <a href="https://www.tensorflow.org/api_docs/python/tf/placeholder">TF Placeholder</a>.</li>
</ul>
</li>
<li>Implement <code>neural_net_keep_prob_input</code><ul>
<li>Return a <a href="https://www.tensorflow.org/api_docs/python/tf/placeholder">TF Placeholder</a> for dropout keep probability.</li>
<li>Name the TensorFlow placeholder "keep_prob" using the TensorFlow <code>name</code> parameter in the <a href="https://www.tensorflow.org/api_docs/python/tf/placeholder">TF Placeholder</a>.</li>
</ul>
</li>
</ul>
<p>These names will be used at the end of the project to load your saved model.</p>
<p>Note: <code>None</code> for shapes in TensorFlow allow for a dynamic size.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[9]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">tensorflow</span> <span class="k">as</span> <span class="nn">tf</span>
<span class="k">def</span> <span class="nf">neural_net_image_input</span><span class="p">(</span><span class="n">image_shape</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Return a Tensor for a bach of image input</span>
<span class="sd"> : image_shape: Shape of the images</span>
<span class="sd"> : return: Tensor for image input.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="c1"># shape [None, 32, 32, 3]</span>
<span class="k">return</span> <span class="n">tf</span><span class="o">.</span><span class="n">placeholder</span><span class="p">(</span><span class="n">tf</span><span class="o">.</span><span class="n">float32</span><span class="p">,</span> <span class="p">[</span><span class="kc">None</span><span class="p">]</span> <span class="o">+</span> <span class="nb">list</span><span class="p">(</span><span class="n">image_shape</span><span class="p">),</span> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;x&#39;</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">neural_net_label_input</span><span class="p">(</span><span class="n">n_classes</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Return a Tensor for a batch of label input</span>
<span class="sd"> : n_classes: Number of classes</span>
<span class="sd"> : return: Tensor for label input.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">return</span> <span class="n">tf</span><span class="o">.</span><span class="n">placeholder</span><span class="p">(</span><span class="n">tf</span><span class="o">.</span><span class="n">float32</span><span class="p">,</span> <span class="p">[</span><span class="kc">None</span><span class="p">,</span> <span class="n">n_classes</span><span class="p">],</span> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;y&#39;</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">neural_net_keep_prob_input</span><span class="p">():</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Return a Tensor for keep probability</span>
<span class="sd"> : return: Tensor for keep probability.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="c1"># TODO: Implement Function</span>
<span class="k">return</span> <span class="n">tf</span><span class="o">.</span><span class="n">placeholder</span><span class="p">(</span><span class="n">tf</span><span class="o">.</span><span class="n">float32</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;keep_prob&#39;</span><span class="p">)</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd">DON&#39;T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="n">tf</span><span class="o">.</span><span class="n">reset_default_graph</span><span class="p">()</span>
<span class="n">tests</span><span class="o">.</span><span class="n">test_nn_image_inputs</span><span class="p">(</span><span class="n">neural_net_image_input</span><span class="p">)</span>
<span class="n">tests</span><span class="o">.</span><span class="n">test_nn_label_inputs</span><span class="p">(</span><span class="n">neural_net_label_input</span><span class="p">)</span>
<span class="n">tests</span><span class="o">.</span><span class="n">test_nn_keep_prob_inputs</span><span class="p">(</span><span class="n">neural_net_keep_prob_input</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>Image Input Tests Passed.
Label Input Tests Passed.
Keep Prob Tests Passed.
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="Convolution-and-Max-Pooling-Layer">Convolution and Max Pooling Layer<a class="anchor-link" href="#Convolution-and-Max-Pooling-Layer">&#182;</a></h3><p>Convolution layers have a lot of success with images. For this code cell, you should implement the function <code>conv2d_maxpool</code> to apply convolution then max pooling:</p>
<ul>
<li>Create the weight and bias using <code>conv_ksize</code>, <code>conv_num_outputs</code> and the shape of <code>x_tensor</code>.</li>
<li>Apply a convolution to <code>x_tensor</code> using weight and <code>conv_strides</code>.<ul>
<li>We recommend you use same padding, but you're welcome to use any padding.</li>
</ul>
</li>
<li>Add bias</li>
<li>Add a nonlinear activation to the convolution.</li>
<li>Apply Max Pooling using <code>pool_ksize</code> and <code>pool_strides</code>.<ul>
<li>We recommend you use same padding, but you're welcome to use any padding.</li>
</ul>
</li>
</ul>
<p>Note: You <strong>can't</strong> use <a href="https://www.tensorflow.org/api_docs/python/tf/layers">TensorFlow Layers</a> or <a href="https://www.tensorflow.org/api_guides/python/contrib.layers">TensorFlow Layers (contrib)</a> for this layer. You're free to use any TensorFlow package for all the other layers.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[10]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">conv2d_maxpool</span><span class="p">(</span><span class="n">x_tensor</span><span class="p">,</span> <span class="n">conv_num_outputs</span><span class="p">,</span> <span class="n">conv_ksize</span><span class="p">,</span> <span class="n">conv_strides</span><span class="p">,</span> <span class="n">pool_ksize</span><span class="p">,</span> <span class="n">pool_strides</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Apply convolution then max pooling to x_tensor</span>
<span class="sd"> :param x_tensor: TensorFlow Tensor</span>
<span class="sd"> :param conv_num_outputs: Number of outputs for the convolutional layer</span>
<span class="sd"> :param conv_strides: Stride 2-D Tuple for convolution</span>
<span class="sd"> :param pool_ksize: kernal size 2-D Tuple for pool</span>
<span class="sd"> :param pool_strides: Stride 2-D Tuple for pool</span>
<span class="sd"> : return: A tensor that represents convolution and max pooling of x_tensor</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">w_conv</span> <span class="o">=</span> <span class="n">tf</span><span class="o">.</span><span class="n">Variable</span><span class="p">(</span><span class="n">tf</span><span class="o">.</span><span class="n">truncated_normal</span><span class="p">((</span><span class="n">conv_ksize</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="c1"># Kernel height</span>
<span class="n">conv_ksize</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="c1"># Kernel width</span>
<span class="n">x_tensor</span><span class="o">.</span><span class="n">get_shape</span><span class="p">()[</span><span class="mi">3</span><span class="p">]</span><span class="o">.</span><span class="n">value</span><span class="p">,</span> <span class="c1"># Input channels</span>
<span class="n">conv_num_outputs</span><span class="p">),</span> <span class="n">stddev</span><span class="o">=</span><span class="mf">0.05</span><span class="p">))</span> <span class="c1"># output depth</span>
<span class="n">bias_conv</span> <span class="o">=</span> <span class="n">tf</span><span class="o">.</span><span class="n">Variable</span><span class="p">(</span><span class="n">tf</span><span class="o">.</span><span class="n">random_normal</span><span class="p">([</span><span class="n">conv_num_outputs</span><span class="p">],</span> <span class="n">stddev</span><span class="o">=</span><span class="mf">0.05</span><span class="p">))</span>
<span class="n">padding</span> <span class="o">=</span> <span class="s1">&#39;VALID&#39;</span>
<span class="c1"># DEBUG</span>
<span class="c1">#print(&#39;conv ksize: &#39;, conv_ksize)</span>
<span class="c1">#print(&#39;conv strides: &#39;,conv_strides)</span>
<span class="c1">#print(&#39;pool ksize: &#39;, pool_ksize)</span>
<span class="c1">#print(&#39;pool strides: &#39;,pool_strides)</span>
<span class="c1">#print(&#39;conv_depth: &#39;, conv_num_outputs)</span>
<span class="c1">#print(&#39;x_tensor :&#39;,x_tensor)</span>
<span class="c1">#print(&#39;conv weights :&#39;, w_conv) </span>
<span class="c1"># DEBUG</span>
<span class="c1"># Apply conv to x_tensor</span>
<span class="n">cv1</span> <span class="o">=</span> <span class="n">tf</span><span class="o">.</span><span class="n">nn</span><span class="o">.</span><span class="n">conv2d</span><span class="p">(</span><span class="n">x_tensor</span><span class="p">,</span>
<span class="n">w_conv</span><span class="p">,</span>
<span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="n">conv_strides</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">conv_strides</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="mi">1</span><span class="p">],</span>
<span class="n">padding</span><span class="o">=</span><span class="n">padding</span>
<span class="p">)</span>
<span class="c1"># add bias</span>
<span class="n">cv1</span> <span class="o">=</span> <span class="n">tf</span><span class="o">.</span><span class="n">nn</span><span class="o">.</span><span class="n">bias_add</span><span class="p">(</span><span class="n">cv1</span><span class="p">,</span> <span class="n">bias_conv</span><span class="p">)</span>
<span class="c1"># Apply relu</span>
<span class="n">cv1</span> <span class="o">=</span> <span class="n">tf</span><span class="o">.</span><span class="n">nn</span><span class="o">.</span><span class="n">relu</span><span class="p">(</span><span class="n">cv1</span><span class="p">)</span>
<span class="c1"># Apply Maxpooling</span>
<span class="n">cv1</span> <span class="o">=</span> <span class="n">tf</span><span class="o">.</span><span class="n">nn</span><span class="o">.</span><span class="n">max_pool</span><span class="p">(</span><span class="n">cv1</span><span class="p">,</span>
<span class="n">ksize</span><span class="o">=</span><span class="p">[</span><span class="mi">1</span><span class="p">,</span><span class="n">pool_ksize</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">pool_ksize</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="mi">1</span><span class="p">],</span>
<span class="n">strides</span><span class="o">=</span><span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="n">pool_strides</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">pool_strides</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="mi">1</span><span class="p">],</span>
<span class="n">padding</span><span class="o">=</span><span class="n">padding</span>
<span class="p">)</span>
<span class="c1">#print(&#39;conv layer :&#39;, cv1.get_shape())</span>
<span class="k">return</span> <span class="n">cv1</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd">DON&#39;T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="n">tests</span><span class="o">.</span><span class="n">test_con_pool</span><span class="p">(</span><span class="n">conv2d_maxpool</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>Tests Passed
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="Flatten-Layer">Flatten Layer<a class="anchor-link" href="#Flatten-Layer">&#182;</a></h3><p>Implement the <code>flatten</code> function to change the dimension of <code>x_tensor</code> from a 4-D tensor to a 2-D tensor. The output should be the shape (<em>Batch Size</em>, <em>Flattened Image Size</em>). You can use <a href="https://www.tensorflow.org/api_docs/python/tf/layers">TensorFlow Layers</a> or <a href="https://www.tensorflow.org/api_guides/python/contrib.layers">TensorFlow Layers (contrib)</a> for this layer.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[11]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">flatten</span><span class="p">(</span><span class="n">x_tensor</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Flatten x_tensor to (Batch Size, Flattened Image Size)</span>
<span class="sd"> : x_tensor: A tensor of size (Batch Size, ...), where ... are the image dimensions.</span>
<span class="sd"> : return: A tensor of size (Batch Size, Flattened Image Size).</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">flat_size</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">multiply</span><span class="o">.</span><span class="n">reduce</span><span class="p">(</span><span class="n">x_tensor</span><span class="o">.</span><span class="n">get_shape</span><span class="p">()[</span><span class="mi">1</span><span class="p">:]</span><span class="o">.</span><span class="n">as_list</span><span class="p">())</span>
<span class="k">return</span> <span class="n">tf</span><span class="o">.</span><span class="n">reshape</span><span class="p">(</span><span class="n">x_tensor</span><span class="p">,</span> <span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">flat_size</span><span class="p">])</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd">DON&#39;T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="n">tests</span><span class="o">.</span><span class="n">test_flatten</span><span class="p">(</span><span class="n">flatten</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>Tests Passed
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="Fully-Connected-Layer">Fully-Connected Layer<a class="anchor-link" href="#Fully-Connected-Layer">&#182;</a></h3><p>Implement the <code>fully_conn</code> function to apply a fully connected layer to <code>x_tensor</code> with the shape (<em>Batch Size</em>, <em>num_outputs</em>). You can use <a href="https://www.tensorflow.org/api_docs/python/tf/layers">TensorFlow Layers</a> or <a href="https://www.tensorflow.org/api_guides/python/contrib.layers">TensorFlow Layers (contrib)</a> for this layer.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[12]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">fully_conn</span><span class="p">(</span><span class="n">x_tensor</span><span class="p">,</span> <span class="n">num_outputs</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Apply a fully connected layer to x_tensor using weight and bias</span>
<span class="sd"> : x_tensor: A 2-D tensor where the first dimension is batch size.</span>
<span class="sd"> : num_outputs: The number of output that the new tensor should be.</span>
<span class="sd"> : return: A 2-D tensor where the second dimension is num_outputs.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">full_w</span> <span class="o">=</span> <span class="n">tf</span><span class="o">.</span><span class="n">Variable</span><span class="p">(</span><span class="n">tf</span><span class="o">.</span><span class="n">truncated_normal</span><span class="p">((</span><span class="n">x_tensor</span><span class="o">.</span><span class="n">get_shape</span><span class="p">()[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">value</span><span class="p">,</span> <span class="n">num_outputs</span><span class="p">),</span> <span class="n">stddev</span><span class="o">=</span><span class="mf">0.05</span><span class="p">))</span>
<span class="n">full_b</span> <span class="o">=</span> <span class="n">tf</span><span class="o">.</span><span class="n">Variable</span><span class="p">(</span><span class="n">tf</span><span class="o">.</span><span class="n">random_normal</span><span class="p">([</span><span class="n">num_outputs</span><span class="p">],</span> <span class="n">stddev</span><span class="o">=</span><span class="mf">0.05</span><span class="p">))</span>
<span class="n">full</span> <span class="o">=</span> <span class="n">tf</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">tf</span><span class="o">.</span><span class="n">matmul</span><span class="p">(</span><span class="n">x_tensor</span><span class="p">,</span> <span class="n">full_w</span><span class="p">),</span> <span class="n">full_b</span><span class="p">)</span>
<span class="n">full</span> <span class="o">=</span> <span class="n">tf</span><span class="o">.</span><span class="n">nn</span><span class="o">.</span><span class="n">relu</span><span class="p">(</span><span class="n">full</span><span class="p">)</span>
<span class="k">return</span> <span class="n">full</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd">DON&#39;T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="n">tests</span><span class="o">.</span><span class="n">test_fully_conn</span><span class="p">(</span><span class="n">fully_conn</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>Tests Passed
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="Output-Layer">Output Layer<a class="anchor-link" href="#Output-Layer">&#182;</a></h3><p>Implement the <code>output</code> function to apply a fully connected layer to <code>x_tensor</code> with the shape (<em>Batch Size</em>, <em>num_outputs</em>). You can use <a href="https://www.tensorflow.org/api_docs/python/tf/layers">TensorFlow Layers</a> or <a href="https://www.tensorflow.org/api_guides/python/contrib.layers">TensorFlow Layers (contrib)</a> for this layer.</p>
<p>Note: Activation, softmax, or cross entropy shouldn't be applied to this.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[13]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">output</span><span class="p">(</span><span class="n">x_tensor</span><span class="p">,</span> <span class="n">num_outputs</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Apply a output layer to x_tensor using weight and bias</span>
<span class="sd"> : x_tensor: A 2-D tensor where the first dimension is batch size.</span>
<span class="sd"> : num_outputs: The number of output that the new tensor should be.</span>
<span class="sd"> : return: A 2-D tensor where the second dimension is num_outputs.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">out_w</span> <span class="o">=</span> <span class="n">tf</span><span class="o">.</span><span class="n">Variable</span><span class="p">(</span><span class="n">tf</span><span class="o">.</span><span class="n">truncated_normal</span><span class="p">((</span><span class="n">x_tensor</span><span class="o">.</span><span class="n">get_shape</span><span class="p">()[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">value</span><span class="p">,</span> <span class="n">num_outputs</span><span class="p">)))</span>
<span class="n">out_b</span> <span class="o">=</span> <span class="n">tf</span><span class="o">.</span><span class="n">Variable</span><span class="p">(</span><span class="n">tf</span><span class="o">.</span><span class="n">zeros</span><span class="p">(</span><span class="n">num_outputs</span><span class="p">))</span>
<span class="n">out</span> <span class="o">=</span> <span class="n">tf</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">tf</span><span class="o">.</span><span class="n">matmul</span><span class="p">(</span><span class="n">x_tensor</span><span class="p">,</span> <span class="n">out_w</span><span class="p">),</span> <span class="n">out_b</span><span class="p">)</span>
<span class="k">return</span> <span class="n">out</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd">DON&#39;T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="n">tests</span><span class="o">.</span><span class="n">test_output</span><span class="p">(</span><span class="n">output</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>Tests Passed
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="Create-Convolutional-Model">Create Convolutional Model<a class="anchor-link" href="#Create-Convolutional-Model">&#182;</a></h3><p>Implement the function <code>conv_net</code> to create a convolutional neural network model. The function takes in a batch of images, <code>x</code>, and outputs logits. Use the layers you created above to create this model:</p>
<ul>
<li>Apply 1, 2, or 3 Convolution and Max Pool layers</li>
<li>Apply a Flatten Layer</li>
<li>Apply 1, 2, or 3 Fully Connected Layers</li>
<li>Apply an Output Layer</li>
<li>Return the output</li>
<li>Apply <a href="https://www.tensorflow.org/api_docs/python/tf/nn/dropout">TensorFlow's Dropout</a> to one or more layers in the model using <code>keep_prob</code>. </li>
</ul>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[50]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">conv_net</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">keep_prob</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Create a convolutional neural network model</span>
<span class="sd"> : x: Placeholder tensor that holds image data.</span>
<span class="sd"> : keep_prob: Placeholder tensor that hold dropout keep probability.</span>
<span class="sd"> : return: Tensor that represents logits</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">conv1_hyper_params</span> <span class="o">=</span> <span class="p">{</span>
<span class="s1">&#39;conv_num_outputs&#39;</span><span class="p">:</span> <span class="mi">60</span><span class="p">,</span>
<span class="s1">&#39;conv_ksize&#39;</span><span class="p">:</span> <span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="mi">3</span><span class="p">),</span>
<span class="s1">&#39;conv_strides&#39;</span><span class="p">:</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">),</span>
<span class="s1">&#39;pool_ksize&#39;</span><span class="p">:</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">2</span><span class="p">),</span>
<span class="s1">&#39;pool_strides&#39;</span><span class="p">:</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span>
<span class="p">}</span>
<span class="n">conv2_hyper_params</span> <span class="o">=</span> <span class="p">{</span>
<span class="s1">&#39;conv_num_outputs&#39;</span><span class="p">:</span> <span class="mi">120</span><span class="p">,</span>
<span class="s1">&#39;conv_ksize&#39;</span><span class="p">:</span> <span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="mi">3</span><span class="p">),</span>
<span class="s1">&#39;conv_strides&#39;</span><span class="p">:</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">),</span>
<span class="s1">&#39;pool_ksize&#39;</span><span class="p">:</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">2</span><span class="p">),</span>
<span class="s1">&#39;pool_strides&#39;</span><span class="p">:</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span>
<span class="p">}</span>
<span class="n">conv3_hyper_params</span> <span class="o">=</span> <span class="p">{</span>
<span class="s1">&#39;conv_num_outputs&#39;</span><span class="p">:</span> <span class="mi">400</span><span class="p">,</span>
<span class="s1">&#39;conv_ksize&#39;</span><span class="p">:</span> <span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="mi">3</span><span class="p">),</span>
<span class="s1">&#39;conv_strides&#39;</span><span class="p">:</span> <span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">),</span>
<span class="s1">&#39;pool_ksize&#39;</span><span class="p">:</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">2</span><span class="p">),</span>
<span class="s1">&#39;pool_strides&#39;</span><span class="p">:</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span>
<span class="p">}</span>
<span class="n">conv1</span> <span class="o">=</span> <span class="n">conv2d_maxpool</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="o">**</span><span class="n">conv1_hyper_params</span><span class="p">)</span>
<span class="n">conv2</span> <span class="o">=</span> <span class="n">conv2d_maxpool</span><span class="p">(</span><span class="n">conv1</span><span class="p">,</span> <span class="o">**</span><span class="n">conv2_hyper_params</span><span class="p">)</span>
<span class="n">conv3</span> <span class="o">=</span> <span class="n">conv2d_maxpool</span><span class="p">(</span><span class="n">conv2</span><span class="p">,</span> <span class="o">**</span><span class="n">conv3_hyper_params</span><span class="p">)</span>
<span class="n">flat</span> <span class="o">=</span> <span class="n">flatten</span><span class="p">(</span><span class="n">conv3</span><span class="p">)</span>
<span class="n">full1</span> <span class="o">=</span> <span class="n">fully_conn</span><span class="p">(</span><span class="n">flat</span><span class="p">,</span> <span class="mi">600</span><span class="p">)</span>
<span class="n">full1</span> <span class="o">=</span> <span class="n">tf</span><span class="o">.</span><span class="n">nn</span><span class="o">.</span><span class="n">dropout</span><span class="p">(</span><span class="n">full1</span><span class="p">,</span> <span class="n">keep_prob</span><span class="p">)</span>
<span class="n">full2</span> <span class="o">=</span> <span class="n">fully_conn</span><span class="p">(</span><span class="n">full1</span><span class="p">,</span> <span class="mi">60</span><span class="p">)</span>
<span class="n">full2</span> <span class="o">=</span> <span class="n">tf</span><span class="o">.</span><span class="n">nn</span><span class="o">.</span><span class="n">dropout</span><span class="p">(</span><span class="n">full2</span><span class="p">,</span> <span class="n">keep_prob</span><span class="p">)</span>
<span class="c1"># TODO: Apply an Output Layer</span>
<span class="c1"># Set this to the number of classes</span>
<span class="c1"># Function Definition from Above:</span>
<span class="c1"># output(x_tensor, num_outputs)</span>
<span class="n">out</span> <span class="o">=</span> <span class="n">output</span><span class="p">(</span><span class="n">full2</span><span class="p">,</span> <span class="mi">10</span><span class="p">)</span>
<span class="c1"># DEBUG</span>
<span class="nb">print</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">conv1</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">conv2</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">conv3</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">flat</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">full1</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">full2</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">out</span><span class="p">)</span>
<span class="c1"># DEBUG</span>
<span class="k">return</span> <span class="n">out</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd">DON&#39;T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="c1">##############################</span>
<span class="c1">## Build the Neural Network ##</span>
<span class="c1">##############################</span>
<span class="c1"># Remove previous weights, bias, inputs, etc..</span>
<span class="n">tf</span><span class="o">.</span><span class="n">reset_default_graph</span><span class="p">()</span>
<span class="c1"># Inputs</span>
<span class="n">x</span> <span class="o">=</span> <span class="n">neural_net_image_input</span><span class="p">((</span><span class="mi">32</span><span class="p">,</span> <span class="mi">32</span><span class="p">,</span> <span class="mi">3</span><span class="p">))</span>
<span class="n">y</span> <span class="o">=</span> <span class="n">neural_net_label_input</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span>
<span class="n">keep_prob</span> <span class="o">=</span> <span class="n">neural_net_keep_prob_input</span><span class="p">()</span>
<span class="c1"># Model</span>
<span class="n">logits</span> <span class="o">=</span> <span class="n">conv_net</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">keep_prob</span><span class="p">)</span>
<span class="c1"># Name logits Tensor, so that is can be loaded from disk after training</span>
<span class="n">logits</span> <span class="o">=</span> <span class="n">tf</span><span class="o">.</span><span class="n">identity</span><span class="p">(</span><span class="n">logits</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;logits&#39;</span><span class="p">)</span>
<span class="c1"># Loss and Optimizer</span>
<span class="n">cost</span> <span class="o">=</span> <span class="n">tf</span><span class="o">.</span><span class="n">reduce_mean</span><span class="p">(</span><span class="n">tf</span><span class="o">.</span><span class="n">nn</span><span class="o">.</span><span class="n">softmax_cross_entropy_with_logits</span><span class="p">(</span><span class="n">logits</span><span class="o">=</span><span class="n">logits</span><span class="p">,</span> <span class="n">labels</span><span class="o">=</span><span class="n">y</span><span class="p">))</span>
<span class="n">optimizer</span> <span class="o">=</span> <span class="n">tf</span><span class="o">.</span><span class="n">train</span><span class="o">.</span><span class="n">AdamOptimizer</span><span class="p">()</span><span class="o">.</span><span class="n">minimize</span><span class="p">(</span><span class="n">cost</span><span class="p">)</span>
<span class="c1"># Accuracy</span>
<span class="n">correct_pred</span> <span class="o">=</span> <span class="n">tf</span><span class="o">.</span><span class="n">equal</span><span class="p">(</span><span class="n">tf</span><span class="o">.</span><span class="n">argmax</span><span class="p">(</span><span class="n">logits</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">tf</span><span class="o">.</span><span class="n">argmax</span><span class="p">(</span><span class="n">y</span><span class="p">,</span> <span class="mi">1</span><span class="p">))</span>
<span class="n">accuracy</span> <span class="o">=</span> <span class="n">tf</span><span class="o">.</span><span class="n">reduce_mean</span><span class="p">(</span><span class="n">tf</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">correct_pred</span><span class="p">,</span> <span class="n">tf</span><span class="o">.</span><span class="n">float32</span><span class="p">),</span> <span class="n">name</span><span class="o">=</span><span class="s1">&#39;accuracy&#39;</span><span class="p">)</span>
<span class="n">tests</span><span class="o">.</span><span class="n">test_conv_net</span><span class="p">(</span><span class="n">conv_net</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>--------------
Tensor(&#34;x:0&#34;, shape=(?, 32, 32, 3), dtype=float32)
Tensor(&#34;MaxPool:0&#34;, shape=(?, 15, 15, 60), dtype=float32)
Tensor(&#34;MaxPool_1:0&#34;, shape=(?, 6, 6, 120), dtype=float32)
Tensor(&#34;MaxPool_2:0&#34;, shape=(?, 2, 2, 400), dtype=float32)
Tensor(&#34;Reshape:0&#34;, shape=(?, 1600), dtype=float32)
Tensor(&#34;dropout/mul:0&#34;, shape=(?, 600), dtype=float32)
Tensor(&#34;dropout_1/mul:0&#34;, shape=(?, 60), dtype=float32)
Tensor(&#34;Add_2:0&#34;, shape=(?, 10), dtype=float32)
--------------
Tensor(&#34;Placeholder:0&#34;, shape=(?, 32, 32, 3), dtype=float32)
Tensor(&#34;MaxPool_3:0&#34;, shape=(?, 15, 15, 60), dtype=float32)
Tensor(&#34;MaxPool_4:0&#34;, shape=(?, 6, 6, 120), dtype=float32)
Tensor(&#34;MaxPool_5:0&#34;, shape=(?, 2, 2, 400), dtype=float32)
Tensor(&#34;Reshape_4:0&#34;, shape=(?, 1600), dtype=float32)
Tensor(&#34;dropout_2/mul:0&#34;, shape=(?, 600), dtype=float32)
Tensor(&#34;dropout_3/mul:0&#34;, shape=(?, 60), dtype=float32)
Tensor(&#34;Add_5:0&#34;, shape=(?, 10), dtype=float32)
Neural Network Built!
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="Train-the-Neural-Network">Train the Neural Network<a class="anchor-link" href="#Train-the-Neural-Network">&#182;</a></h2><h3 id="Single-Optimization">Single Optimization<a class="anchor-link" href="#Single-Optimization">&#182;</a></h3><p>Implement the function <code>train_neural_network</code> to do a single optimization. The optimization should use <code>optimizer</code> to optimize in <code>session</code> with a <code>feed_dict</code> of the following:</p>
<ul>
<li><code>x</code> for image input</li>
<li><code>y</code> for labels</li>
<li><code>keep_prob</code> for keep probability for dropout</li>
</ul>
<p>This function will be called for each batch, so <code>tf.global_variables_initializer()</code> has already been called.</p>
<p>Note: Nothing needs to be returned. This function is only optimizing the neural network.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[15]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">train_neural_network</span><span class="p">(</span><span class="n">session</span><span class="p">,</span> <span class="n">optimizer</span><span class="p">,</span> <span class="n">keep_probability</span><span class="p">,</span> <span class="n">feature_batch</span><span class="p">,</span> <span class="n">label_batch</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Optimize the session on a batch of images and labels</span>
<span class="sd"> : session: Current TensorFlow session</span>
<span class="sd"> : optimizer: TensorFlow optimizer function</span>
<span class="sd"> : keep_probability: keep probability</span>
<span class="sd"> : feature_batch: Batch of Numpy image data</span>
<span class="sd"> : label_batch: Batch of Numpy label data</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">session</span><span class="o">.</span><span class="n">run</span><span class="p">([</span><span class="n">optimizer</span><span class="p">],</span> <span class="n">feed_dict</span><span class="o">=</span><span class="p">{</span><span class="n">x</span><span class="p">:</span> <span class="n">feature_batch</span><span class="p">,</span>
<span class="n">y</span><span class="p">:</span> <span class="n">label_batch</span><span class="p">,</span>
<span class="n">keep_prob</span><span class="p">:</span> <span class="n">keep_probability</span>
<span class="p">})</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd">DON&#39;T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="n">tests</span><span class="o">.</span><span class="n">test_train_nn</span><span class="p">(</span><span class="n">train_neural_network</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>Tests Passed
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="Show-Stats">Show Stats<a class="anchor-link" href="#Show-Stats">&#182;</a></h3><p>Implement the function <code>print_stats</code> to print loss and validation accuracy. Use the global variables <code>valid_features</code> and <code>valid_labels</code> to calculate validation accuracy. Use a keep probability of <code>1.0</code> to calculate the loss and validation accuracy.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[16]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="k">def</span> <span class="nf">print_stats</span><span class="p">(</span><span class="n">session</span><span class="p">,</span> <span class="n">feature_batch</span><span class="p">,</span> <span class="n">label_batch</span><span class="p">,</span> <span class="n">cost</span><span class="p">,</span> <span class="n">accuracy</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Print information about loss and validation accuracy</span>
<span class="sd"> : session: Current TensorFlow session</span>
<span class="sd"> : feature_batch: Batch of Numpy image data</span>
<span class="sd"> : label_batch: Batch of Numpy label data</span>
<span class="sd"> : cost: TensorFlow cost function</span>
<span class="sd"> : accuracy: TensorFlow accuracy function</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">loss_feed</span> <span class="o">=</span> <span class="p">{</span>
<span class="n">x</span><span class="p">:</span> <span class="n">feature_batch</span><span class="p">,</span>
<span class="n">y</span><span class="p">:</span> <span class="n">label_batch</span><span class="p">,</span>
<span class="n">keep_prob</span><span class="p">:</span> <span class="mf">1.</span>
<span class="p">}</span>
<span class="n">valid_feed</span> <span class="o">=</span> <span class="p">{</span>
<span class="n">x</span><span class="p">:</span> <span class="n">valid_features</span><span class="p">,</span>
<span class="n">y</span><span class="p">:</span> <span class="n">valid_labels</span><span class="p">,</span>
<span class="n">keep_prob</span><span class="p">:</span> <span class="mf">1.</span>
<span class="p">}</span>
<span class="n">loss</span> <span class="o">=</span> <span class="n">session</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">cost</span><span class="p">,</span> <span class="n">loss_feed</span><span class="p">)</span>
<span class="n">accuracy</span> <span class="o">=</span> <span class="n">session</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">accuracy</span><span class="p">,</span> <span class="n">valid_feed</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Loss: </span><span class="si">{:&gt;10.4f}</span><span class="s1"> - Valid Accuracy: </span><span class="si">{:.2f}</span><span class="s1">%&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">loss</span><span class="p">,</span><span class="n">accuracy</span><span class="o">*</span><span class="mi">100</span><span class="p">))</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="Hyperparameters">Hyperparameters<a class="anchor-link" href="#Hyperparameters">&#182;</a></h3><p>Tune the following parameters:</p>
<ul>
<li>Set <code>epochs</code> to the number of iterations until the network stops learning or start overfitting</li>
<li>Set <code>batch_size</code> to the highest number that your machine has memory for. Most people set them to common sizes of memory:<ul>
<li>64</li>
<li>128</li>
<li>256</li>
<li>...</li>
</ul>
</li>
<li>Set <code>keep_probability</code> to the probability of keeping a node using dropout</li>
</ul>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[62]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="c1"># TODO: Tune Parameters</span>
<span class="n">epochs</span> <span class="o">=</span> <span class="mi">9</span>
<span class="n">batch_size</span> <span class="o">=</span> <span class="mi">512</span>
<span class="n">keep_probability</span> <span class="o">=</span> <span class="mf">0.75</span>
</pre></div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="Train-on-a-Single-CIFAR-10-Batch">Train on a Single CIFAR-10 Batch<a class="anchor-link" href="#Train-on-a-Single-CIFAR-10-Batch">&#182;</a></h3><p>Instead of training the neural network on all the CIFAR-10 batches of data, let's use a single batch. This should save time while you iterate on the model to get a better accuracy. Once the final validation accuracy is 50% or greater, run the model on all the data in the next section.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[64]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd">DON&#39;T MODIFY ANYTHING IN THIS CELL</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Checking the Training on a Single Batch...&#39;</span><span class="p">)</span>
<span class="k">with</span> <span class="n">tf</span><span class="o">.</span><span class="n">Session</span><span class="p">()</span> <span class="k">as</span> <span class="n">sess</span><span class="p">:</span>
<span class="c1"># Initializing the variables</span>
<span class="n">sess</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">tf</span><span class="o">.</span><span class="n">global_variables_initializer</span><span class="p">())</span>
<span class="c1"># Training cycle</span>
<span class="k">for</span> <span class="n">epoch</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">epochs</span><span class="p">):</span>
<span class="n">batch_i</span> <span class="o">=</span> <span class="mi">1</span>
<span class="k">for</span> <span class="n">batch_features</span><span class="p">,</span> <span class="n">batch_labels</span> <span class="ow">in</span> <span class="n">helper</span><span class="o">.</span><span class="n">load_preprocess_training_batch</span><span class="p">(</span><span class="n">batch_i</span><span class="p">,</span> <span class="n">batch_size</span><span class="p">):</span>
<span class="n">train_neural_network</span><span class="p">(</span><span class="n">sess</span><span class="p">,</span> <span class="n">optimizer</span><span class="p">,</span> <span class="n">keep_probability</span><span class="p">,</span> <span class="n">batch_features</span><span class="p">,</span> <span class="n">batch_labels</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Epoch </span><span class="si">{:&gt;2}</span><span class="s1">, CIFAR-10 Batch </span><span class="si">{}</span><span class="s1">: &#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">epoch</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="n">batch_i</span><span class="p">),</span> <span class="n">end</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">)</span>
<span class="n">print_stats</span><span class="p">(</span><span class="n">sess</span><span class="p">,</span> <span class="n">batch_features</span><span class="p">,</span> <span class="n">batch_labels</span><span class="p">,</span> <span class="n">cost</span><span class="p">,</span> <span class="n">accuracy</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>Checking the Training on a Single Batch...
Epoch 1, CIFAR-10 Batch 1: Loss: 2.2416 - Valid Accuracy: 16.52%
Epoch 2, CIFAR-10 Batch 1: Loss: 2.0681 - Valid Accuracy: 26.34%
Epoch 3, CIFAR-10 Batch 1: Loss: 1.9934 - Valid Accuracy: 30.72%
Epoch 4, CIFAR-10 Batch 1: Loss: 1.8648 - Valid Accuracy: 36.14%
Epoch 5, CIFAR-10 Batch 1: Loss: 1.7653 - Valid Accuracy: 38.90%
Epoch 6, CIFAR-10 Batch 1: Loss: 1.6582 - Valid Accuracy: 41.92%
Epoch 7, CIFAR-10 Batch 1: Loss: 1.4946 - Valid Accuracy: 44.92%
Epoch 8, CIFAR-10 Batch 1: Loss: 1.3776 - Valid Accuracy: 48.44%
Epoch 9, CIFAR-10 Batch 1: Loss: 1.2710 - Valid Accuracy: 49.32%
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h3 id="Fully-Train-the-Model">Fully Train the Model<a class="anchor-link" href="#Fully-Train-the-Model">&#182;</a></h3><p>Now that you got a good accuracy with a single CIFAR-10 batch, try it with all five batches.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[63]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd">DON&#39;T MODIFY ANYTHING IN THIS CELL</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="n">save_model_path</span> <span class="o">=</span> <span class="s1">&#39;./image_classification&#39;</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Training...&#39;</span><span class="p">)</span>
<span class="k">with</span> <span class="n">tf</span><span class="o">.</span><span class="n">Session</span><span class="p">()</span> <span class="k">as</span> <span class="n">sess</span><span class="p">:</span>
<span class="c1"># Initializing the variables</span>
<span class="n">sess</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">tf</span><span class="o">.</span><span class="n">global_variables_initializer</span><span class="p">())</span>
<span class="c1"># Training cycle</span>
<span class="k">for</span> <span class="n">epoch</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">epochs</span><span class="p">):</span>
<span class="c1"># Loop over all batches</span>
<span class="n">n_batches</span> <span class="o">=</span> <span class="mi">5</span>
<span class="k">for</span> <span class="n">batch_i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">n_batches</span> <span class="o">+</span> <span class="mi">1</span><span class="p">):</span>
<span class="k">for</span> <span class="n">batch_features</span><span class="p">,</span> <span class="n">batch_labels</span> <span class="ow">in</span> <span class="n">helper</span><span class="o">.</span><span class="n">load_preprocess_training_batch</span><span class="p">(</span><span class="n">batch_i</span><span class="p">,</span> <span class="n">batch_size</span><span class="p">):</span>
<span class="n">train_neural_network</span><span class="p">(</span><span class="n">sess</span><span class="p">,</span> <span class="n">optimizer</span><span class="p">,</span> <span class="n">keep_probability</span><span class="p">,</span> <span class="n">batch_features</span><span class="p">,</span> <span class="n">batch_labels</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Epoch </span><span class="si">{:&gt;2}</span><span class="s1">, CIFAR-10 Batch </span><span class="si">{}</span><span class="s1">: &#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">epoch</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="n">batch_i</span><span class="p">),</span> <span class="n">end</span><span class="o">=</span><span class="s1">&#39;&#39;</span><span class="p">)</span>
<span class="n">print_stats</span><span class="p">(</span><span class="n">sess</span><span class="p">,</span> <span class="n">batch_features</span><span class="p">,</span> <span class="n">batch_labels</span><span class="p">,</span> <span class="n">cost</span><span class="p">,</span> <span class="n">accuracy</span><span class="p">)</span>
<span class="c1"># Save Model</span>
<span class="n">saver</span> <span class="o">=</span> <span class="n">tf</span><span class="o">.</span><span class="n">train</span><span class="o">.</span><span class="n">Saver</span><span class="p">()</span>
<span class="n">save_path</span> <span class="o">=</span> <span class="n">saver</span><span class="o">.</span><span class="n">save</span><span class="p">(</span><span class="n">sess</span><span class="p">,</span> <span class="n">save_model_path</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>Training...
Epoch 1, CIFAR-10 Batch 1: Loss: 2.2161 - Valid Accuracy: 18.40%
Epoch 1, CIFAR-10 Batch 2: Loss: 2.0625 - Valid Accuracy: 25.98%
Epoch 1, CIFAR-10 Batch 3: Loss: 1.7185 - Valid Accuracy: 34.68%
Epoch 1, CIFAR-10 Batch 4: Loss: 1.6533 - Valid Accuracy: 39.72%
Epoch 1, CIFAR-10 Batch 5: Loss: 1.5159 - Valid Accuracy: 43.98%
Epoch 2, CIFAR-10 Batch 1: Loss: 1.6357 - Valid Accuracy: 47.40%
Epoch 2, CIFAR-10 Batch 2: Loss: 1.4579 - Valid Accuracy: 48.64%
Epoch 2, CIFAR-10 Batch 3: Loss: 1.2390 - Valid Accuracy: 51.38%
Epoch 2, CIFAR-10 Batch 4: Loss: 1.2468 - Valid Accuracy: 53.06%
Epoch 2, CIFAR-10 Batch 5: Loss: 1.2385 - Valid Accuracy: 53.86%
Epoch 3, CIFAR-10 Batch 1: Loss: 1.3218 - Valid Accuracy: 55.72%
Epoch 3, CIFAR-10 Batch 2: Loss: 1.1992 - Valid Accuracy: 54.00%
Epoch 3, CIFAR-10 Batch 3: Loss: 1.0670 - Valid Accuracy: 57.56%
Epoch 3, CIFAR-10 Batch 4: Loss: 1.0798 - Valid Accuracy: 57.62%
Epoch 3, CIFAR-10 Batch 5: Loss: 1.0199 - Valid Accuracy: 59.20%
Epoch 4, CIFAR-10 Batch 1: Loss: 1.0873 - Valid Accuracy: 61.30%
Epoch 4, CIFAR-10 Batch 2: Loss: 1.0366 - Valid Accuracy: 61.46%
Epoch 4, CIFAR-10 Batch 3: Loss: 0.9007 - Valid Accuracy: 61.18%
Epoch 4, CIFAR-10 Batch 4: Loss: 0.8702 - Valid Accuracy: 63.08%
Epoch 4, CIFAR-10 Batch 5: Loss: 0.8193 - Valid Accuracy: 65.02%
Epoch 5, CIFAR-10 Batch 1: Loss: 0.9168 - Valid Accuracy: 63.96%
Epoch 5, CIFAR-10 Batch 2: Loss: 0.8561 - Valid Accuracy: 65.00%
Epoch 5, CIFAR-10 Batch 3: Loss: 0.7567 - Valid Accuracy: 65.08%
Epoch 5, CIFAR-10 Batch 4: Loss: 0.7559 - Valid Accuracy: 65.62%
Epoch 5, CIFAR-10 Batch 5: Loss: 0.7026 - Valid Accuracy: 66.76%
Epoch 6, CIFAR-10 Batch 1: Loss: 0.8156 - Valid Accuracy: 67.12%
Epoch 6, CIFAR-10 Batch 2: Loss: 0.7452 - Valid Accuracy: 67.18%
Epoch 6, CIFAR-10 Batch 3: Loss: 0.6952 - Valid Accuracy: 65.44%
Epoch 6, CIFAR-10 Batch 4: Loss: 0.6694 - Valid Accuracy: 66.68%
Epoch 6, CIFAR-10 Batch 5: Loss: 0.6272 - Valid Accuracy: 67.82%
Epoch 7, CIFAR-10 Batch 1: Loss: 0.7157 - Valid Accuracy: 68.12%
Epoch 7, CIFAR-10 Batch 2: Loss: 0.6450 - Valid Accuracy: 67.92%
Epoch 7, CIFAR-10 Batch 3: Loss: 0.6158 - Valid Accuracy: 66.10%
Epoch 7, CIFAR-10 Batch 4: Loss: 0.5492 - Valid Accuracy: 68.74%
Epoch 7, CIFAR-10 Batch 5: Loss: 0.5193 - Valid Accuracy: 68.12%
Epoch 8, CIFAR-10 Batch 1: Loss: 0.6347 - Valid Accuracy: 69.08%
Epoch 8, CIFAR-10 Batch 2: Loss: 0.5660 - Valid Accuracy: 69.54%
Epoch 8, CIFAR-10 Batch 3: Loss: 0.4913 - Valid Accuracy: 67.54%
Epoch 8, CIFAR-10 Batch 4: Loss: 0.4737 - Valid Accuracy: 69.96%
Epoch 8, CIFAR-10 Batch 5: Loss: 0.4385 - Valid Accuracy: 70.38%
Epoch 9, CIFAR-10 Batch 1: Loss: 0.5353 - Valid Accuracy: 69.56%
Epoch 9, CIFAR-10 Batch 2: Loss: 0.4946 - Valid Accuracy: 69.56%
Epoch 9, CIFAR-10 Batch 3: Loss: 0.4304 - Valid Accuracy: 68.02%
Epoch 9, CIFAR-10 Batch 4: Loss: 0.4035 - Valid Accuracy: 70.64%
Epoch 9, CIFAR-10 Batch 5: Loss: 0.3885 - Valid Accuracy: 70.56%
</pre>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h1 id="Checkpoint">Checkpoint<a class="anchor-link" href="#Checkpoint">&#182;</a></h1><p>The model has been saved to disk.</p>
<h2 id="Test-Model">Test Model<a class="anchor-link" href="#Test-Model">&#182;</a></h2><p>Test your model against the test dataset. This will be your final accuracy. You should have an accuracy greater than 50%. If you don't, keep tweaking the model architecture and parameters.</p>
</div>
</div>
</div>
<div class="cell border-box-sizing code_cell rendered">
<div class="input">
<div class="prompt input_prompt">In&nbsp;[65]:</div>
<div class="inner_cell">
<div class="input_area">
<div class=" highlight hl-ipython3"><pre><span></span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd">DON&#39;T MODIFY ANYTHING IN THIS CELL</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="o">%</span><span class="k">matplotlib</span> inline
<span class="o">%</span><span class="k">config</span> InlineBackend.figure_format = &#39;retina&#39;
<span class="kn">import</span> <span class="nn">tensorflow</span> <span class="k">as</span> <span class="nn">tf</span>
<span class="kn">import</span> <span class="nn">pickle</span>
<span class="kn">import</span> <span class="nn">helper</span>
<span class="kn">import</span> <span class="nn">random</span>
<span class="c1"># Set batch size if not already set</span>
<span class="k">try</span><span class="p">:</span>
<span class="k">if</span> <span class="n">batch_size</span><span class="p">:</span>
<span class="k">pass</span>
<span class="k">except</span> <span class="ne">NameError</span><span class="p">:</span>
<span class="n">batch_size</span> <span class="o">=</span> <span class="mi">64</span>
<span class="n">save_model_path</span> <span class="o">=</span> <span class="s1">&#39;./image_classification&#39;</span>
<span class="n">n_samples</span> <span class="o">=</span> <span class="mi">4</span>
<span class="n">top_n_predictions</span> <span class="o">=</span> <span class="mi">3</span>
<span class="k">def</span> <span class="nf">test_model</span><span class="p">():</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Test the saved model against the test dataset</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">test_features</span><span class="p">,</span> <span class="n">test_labels</span> <span class="o">=</span> <span class="n">pickle</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="nb">open</span><span class="p">(</span><span class="s1">&#39;preprocess_training.p&#39;</span><span class="p">,</span> <span class="n">mode</span><span class="o">=</span><span class="s1">&#39;rb&#39;</span><span class="p">))</span>
<span class="n">loaded_graph</span> <span class="o">=</span> <span class="n">tf</span><span class="o">.</span><span class="n">Graph</span><span class="p">()</span>
<span class="k">with</span> <span class="n">tf</span><span class="o">.</span><span class="n">Session</span><span class="p">(</span><span class="n">graph</span><span class="o">=</span><span class="n">loaded_graph</span><span class="p">)</span> <span class="k">as</span> <span class="n">sess</span><span class="p">:</span>
<span class="c1"># Load model</span>
<span class="n">loader</span> <span class="o">=</span> <span class="n">tf</span><span class="o">.</span><span class="n">train</span><span class="o">.</span><span class="n">import_meta_graph</span><span class="p">(</span><span class="n">save_model_path</span> <span class="o">+</span> <span class="s1">&#39;.meta&#39;</span><span class="p">)</span>
<span class="n">loader</span><span class="o">.</span><span class="n">restore</span><span class="p">(</span><span class="n">sess</span><span class="p">,</span> <span class="n">save_model_path</span><span class="p">)</span>
<span class="c1"># Get Tensors from loaded model</span>
<span class="n">loaded_x</span> <span class="o">=</span> <span class="n">loaded_graph</span><span class="o">.</span><span class="n">get_tensor_by_name</span><span class="p">(</span><span class="s1">&#39;x:0&#39;</span><span class="p">)</span>
<span class="n">loaded_y</span> <span class="o">=</span> <span class="n">loaded_graph</span><span class="o">.</span><span class="n">get_tensor_by_name</span><span class="p">(</span><span class="s1">&#39;y:0&#39;</span><span class="p">)</span>
<span class="n">loaded_keep_prob</span> <span class="o">=</span> <span class="n">loaded_graph</span><span class="o">.</span><span class="n">get_tensor_by_name</span><span class="p">(</span><span class="s1">&#39;keep_prob:0&#39;</span><span class="p">)</span>
<span class="n">loaded_logits</span> <span class="o">=</span> <span class="n">loaded_graph</span><span class="o">.</span><span class="n">get_tensor_by_name</span><span class="p">(</span><span class="s1">&#39;logits:0&#39;</span><span class="p">)</span>
<span class="n">loaded_acc</span> <span class="o">=</span> <span class="n">loaded_graph</span><span class="o">.</span><span class="n">get_tensor_by_name</span><span class="p">(</span><span class="s1">&#39;accuracy:0&#39;</span><span class="p">)</span>
<span class="c1"># Get accuracy in batches for memory limitations</span>
<span class="n">test_batch_acc_total</span> <span class="o">=</span> <span class="mi">0</span>
<span class="n">test_batch_count</span> <span class="o">=</span> <span class="mi">0</span>
<span class="k">for</span> <span class="n">train_feature_batch</span><span class="p">,</span> <span class="n">train_label_batch</span> <span class="ow">in</span> <span class="n">helper</span><span class="o">.</span><span class="n">batch_features_labels</span><span class="p">(</span><span class="n">test_features</span><span class="p">,</span> <span class="n">test_labels</span><span class="p">,</span> <span class="n">batch_size</span><span class="p">):</span>
<span class="n">test_batch_acc_total</span> <span class="o">+=</span> <span class="n">sess</span><span class="o">.</span><span class="n">run</span><span class="p">(</span>
<span class="n">loaded_acc</span><span class="p">,</span>
<span class="n">feed_dict</span><span class="o">=</span><span class="p">{</span><span class="n">loaded_x</span><span class="p">:</span> <span class="n">train_feature_batch</span><span class="p">,</span> <span class="n">loaded_y</span><span class="p">:</span> <span class="n">train_label_batch</span><span class="p">,</span> <span class="n">loaded_keep_prob</span><span class="p">:</span> <span class="mf">1.0</span><span class="p">})</span>
<span class="n">test_batch_count</span> <span class="o">+=</span> <span class="mi">1</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Testing Accuracy: </span><span class="si">{}</span><span class="se">\n</span><span class="s1">&#39;</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">test_batch_acc_total</span><span class="o">/</span><span class="n">test_batch_count</span><span class="p">))</span>
<span class="c1"># Print Random Samples</span>
<span class="n">random_test_features</span><span class="p">,</span> <span class="n">random_test_labels</span> <span class="o">=</span> <span class="nb">tuple</span><span class="p">(</span><span class="nb">zip</span><span class="p">(</span><span class="o">*</span><span class="n">random</span><span class="o">.</span><span class="n">sample</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="nb">zip</span><span class="p">(</span><span class="n">test_features</span><span class="p">,</span> <span class="n">test_labels</span><span class="p">)),</span> <span class="n">n_samples</span><span class="p">)))</span>
<span class="n">random_test_predictions</span> <span class="o">=</span> <span class="n">sess</span><span class="o">.</span><span class="n">run</span><span class="p">(</span>
<span class="n">tf</span><span class="o">.</span><span class="n">nn</span><span class="o">.</span><span class="n">top_k</span><span class="p">(</span><span class="n">tf</span><span class="o">.</span><span class="n">nn</span><span class="o">.</span><span class="n">softmax</span><span class="p">(</span><span class="n">loaded_logits</span><span class="p">),</span> <span class="n">top_n_predictions</span><span class="p">),</span>
<span class="n">feed_dict</span><span class="o">=</span><span class="p">{</span><span class="n">loaded_x</span><span class="p">:</span> <span class="n">random_test_features</span><span class="p">,</span> <span class="n">loaded_y</span><span class="p">:</span> <span class="n">random_test_labels</span><span class="p">,</span> <span class="n">loaded_keep_prob</span><span class="p">:</span> <span class="mf">1.0</span><span class="p">})</span>
<span class="n">helper</span><span class="o">.</span><span class="n">display_image_predictions</span><span class="p">(</span><span class="n">random_test_features</span><span class="p">,</span> <span class="n">random_test_labels</span><span class="p">,</span> <span class="n">random_test_predictions</span><span class="p">)</span>
<span class="n">test_model</span><span class="p">()</span>
</pre></div>
</div>
</div>
</div>
<div class="output_wrapper">
<div class="output">
<div class="output_area">
<div class="prompt"></div>
<div class="output_subarea output_stream output_stdout output_text">
<pre>Testing Accuracy: 0.7010512441396713
</pre>
</div>
</div>
<div class="output_area">
<div class="prompt"></div>
<div class="output_png output_subarea ">
<img src="data:image/png;base64,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
49GxndD5zXdGIXRcapmy6JfAG2tc/ez8eM53kf6jamXgDudvgBePZMTF3a82s5MJnYOG4O5dMVJ8
HWkHCGBZvOTtJQzIuqfGU1xG+LKU+Kq75/Ndq7mQ8EUkGZT112Z2rbtPmkF68Uvk68zsNuDf6LtQ
S3/PT96Ac+W6+6fjF5iPkL7XivT9EpjoJXwZHO5y1gOKbVpP6FBmo5aL6PsaHUqda83sPEKnvn2Q
4sPi7rtjetL3CR37xFzCwjr9+RwhUj7eGGFQdX5gdd7VpEENERlDSqsYBe5+OyHS8UxClOlPQKmG
QzsJ/yBe6O7PqXVZ4Lg607sJUxtdQ/WVmRJ3Ej6QnzEaP0XGdp1M+Ef2R0IUa0IPQHH3e4AnE34O
7e+x3gt8HTje3X9eS71m9mr6Dsa8h+pLh1drUychRzk70OcyMzu6luMbibv/B2Eg4yUcOB9wNfcS
vpQ81d0H/SUlTsf1DPqmDWWVCe/DU9396zU1epjc/duE+Z3/g755yNVsIgzmG7Bj5u5XE8ZPXExI
EdlA3zl668bddxKm4HsNIdrdnxIhVelUd3/bMJaVr6cXEx6jGxn8s61MaP/Z7v4qLf4hMj6Ye6NO
Pzu+xWjTkfEynzTCs5sQ9b0TuKseK3vFfONnEEbJzyF01DYBf6i1wy21iXMLP4Pw83wb4XFeD9wQ
c0JljMWBcccTfsmZRfgSuhNYA9zp7psHOHywuo8gfCldFOtdD9zk7o8Ot93DaJMR0hQeDxxCSPXY
G9t2J3C3j/N/BGa2lPC4LiB8Vm4HHiO8r8Z8Jbz+mFkbcCzh18GFhMe+hzBw+gHgljHOjxaRKtQ5
FhERERGJlFYhIiIiIhKpcywiIiIiEqlzLCIiIiISqXMsIiIiIhKpcywiIiIiEqlzLCIiIiISqXMs
IiIiIhKpcywiIiIiEqlzLCIiIiISqXMsIiIiIhKpcywiIiIiEqlzLCIiIiISqXMsIiIiIhKpcywi
IiIiEqlzLCIiIiISqXMsIiIiIhKpcywiIiIiEqlzLCIiIiISqXMsIiIiIhKpcywiIiIiEqlzLCIi
IiISqXMsIiIiIhKpcywiIiIiEqlzLCIiIiISNY11A6Q6MzsPWA780N3/PLatEREREZkc1Dkev84D
TgfWAuoci4iIiIwCpVWIiIiIiETqHIuIiIiIROocHwQzW2VmXzSz+8xsn5ntNLO/mNmlZnZCplyL
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
xPjPQwg35vr5JPCN+Jwrp3HcMntM13sUgBDCZ6d7gDLr/SE+KX4RuAJ44DD7mdb3eivaPlpEZD/M
7BRgPbABODWE0Mi19QLbAAOWhhCG99NPD/AK0ABWhBCGcm2F+IzV8RmKHstBm673aLz+QeCKEIId
tQHLrGdmb8Enx/81hPBvD+G+aXuv749yjkVE9u9t8fgP+V/EAHGC+yjQDVxygH4uBbqAR/MT49hP
A/iH+M+3HvGIZbaZrvdoxsx+x8xuMrMbzezdZtYxfcMVOWzT/l5vRZNjEZH9OyMeX5ii/ZfxePox
6kdksqPx3roT+BLwZ8DdwMtm9r7DG57ItDkmv0c1ORYR2b958TgwRXvz/Pxj1I/IZNP53voh8B5g
Ff6XjjPxSfJ84G/N7N1HME6RI3VMfo9qQZ6IyJFp5mYe6QKO6epHZLKDfm+FEP580qnngZvNbCtw
G76o9MfTOzyRaTMtv0cVORYR2b9mJGLeFO1zJ113tPsRmexYvLf+Gi/jdl5c+CRyPByT36OaHIuI
7N/z8ThVDttp8ThVDtx09yMy2VF/b4UQxoDmQtKew+1H5Agdk9+jmhyLiOxfsxbnO2PJtUyMoL0J
GAUeP0A/j8fr3jQ58hb7feek54kcrOl6j07JzM4AFuAT5F2H24/IETrq73XQ5FhEZL9CCOvxMmur
gWsnNX8Oj6L9Tb6mppmdaWb77P4UQtgL/Jd4/Wcn9XNd7P8e1TiWQzVd71EzO8XMVk7u38wWA9+J
/7wzhKBd8uSoMrNyfI+emj9/OO/1w3q+NgEREdm/FtuVrgMuxmsSvwBclt+u1MwCwOSNFFpsH/1T
YA1wNbAz9rP+aL8eaT/T8R41s2vw3OKH8I0W9gAnAf8Kz/H8OfCOEEL/0X9F0m7M7L3Ae+M/lwPv
Al4CHo7ndoUQ/jheuxr4FbAxhLB6Uj+H9F4/rLFqciwicmBm9mrgP+DbOy/Cd2L6X8DnQgh7Jl3b
cnIc2xYCn8H/T2IFsBtf/f/vQwibj+ZrkPZ2pO9RM3s98EfAhcCr8MVNQ8Ba4L8D/zGEUD36r0Ta
kZl9Fv/dN5VsIry/yXFsP+j3+mGNVZNjERERERGnnGMRERERkUiTYxERERGRSJNjEREREZFIk2MR
ERERkUiTYxERERGRSJNjEREREZFIk2MRERERkUiTYxERERGRSJNjEREREZFIk2MRERERkUiTYxER
ERGRSJNjEREREZFIk2MRERERkUiTYxERERGRSJNjEREREZFIk2MRERERkUiTYxERERGR6P8DXsG5
XkGyHWQAAAAASUVORK5CYII=
"
width=355
height=319
>
</div>
</div>
</div>
</div>
</div>
<div class="cell border-box-sizing text_cell rendered">
<div class="prompt input_prompt">
</div>
<div class="inner_cell">
<div class="text_cell_render border-box-sizing rendered_html">
<h2 id="Why-50-70%-Accuracy?">Why 50-70% Accuracy?<a class="anchor-link" href="#Why-50-70%-Accuracy?">&#182;</a></h2><p>You might be wondering why you can't get an accuracy any higher. First things first, 50% isn't bad for a simple CNN. Pure guessing would get you 10% accuracy. However, you might notice people are getting scores <a href="http://rodrigob.github.io/are_we_there_yet/build/classification_datasets_results.html#43494641522d3130">well above 70%</a>. That's because we haven't taught you all there is to know about neural networks. We still need to cover a few more techniques.</p>
<h2 id="Submitting-This-Project">Submitting This Project<a class="anchor-link" href="#Submitting-This-Project">&#182;</a></h2><p>When submitting this project, make sure to run all the cells before saving the notebook. Save the notebook file as "dlnd_image_classification.ipynb" and save it as a HTML file under "File" -&gt; "Download as". Include the "helper.py" and "problem_unittests.py" files in your submission.</p>
</div>
</div>
</div>
</div>
</div>
</body>
</html>