##// END OF EJS Templates
revision app ABS
lgonzales -
r335:472668b9b709
parent child
Show More
@@ -0,0 +1,11
1 @import url('fonts.googleapi.css');/*!
2 * bootswatch v3.3.5
3 * Homepage: http://bootswatch.com
4 * Copyright 2012-2015 Thomas Park
5 * Licensed under MIT
6 * Based on Bootstrap
7 *//*!
8 * Bootstrap v3.3.5 (http://getbootstrap.com)
9 * Copyright 2011-2015 Twitter, Inc.
10 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
11 *//*! 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:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{background:0 0!important;color:#000!important;-webkit-box-shadow:none!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:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:transparent}body{font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;color:#222;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#008cba;text-decoration:none}a:focus,a:hover{color:#008cba;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:0}.img-thumbnail{padding:4px;line-height:1.4;background-color:#fff;border:1px solid #ddd;border-radius:0;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:21px;margin-bottom:21px;border:0;border-top:1px solid #ddd}.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:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:300;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#999}.h1,.h2,.h3,h1,h2,h3{margin-top:21px;margin-bottom:10.5px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10.5px;margin-bottom:10.5px}.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:39px}.h2,h2{font-size:32px}.h3,h3{font-size:26px}.h4,h4{font-size:19px}.h5,h5{font-size:15px}.h6,h6{font-size:13px}p{margin:0 0 10.5px}.lead{margin-bottom:21px;font-size:17px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:22.5px}}.small,small{font-size:80%}.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:#999}.text-primary{color:#008cba}a.text-primary:focus,a.text-primary:hover{color:#006687}.text-success{color:#43ac6a}a.text-success:focus,a.text-success:hover{color:#358753}.text-info{color:#5bc0de}a.text-info:focus,a.text-info:hover{color:#31b0d5}.text-warning{color:#e99002}a.text-warning:focus,a.text-warning:hover{color:#b67102}.text-danger{color:#f04124}a.text-danger:focus,a.text-danger:hover{color:#d32a0e}.bg-primary{color:#fff;background-color:#008cba}a.bg-primary:focus,a.bg-primary:hover{background-color:#006687}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9.5px;margin:42px 0 21px;border-bottom:1px solid #ddd}ol,ul{margin-top:0;margin-bottom:10.5px}ol ol,ol ul,ul ol,ul ul{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:21px}dd,dt{line-height:1.4}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #999}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10.5px 21px;margin:0 0 21px;font-size:18.75px;border-left:5px solid #ddd}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.4;color:#6f6f6f}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #ddd;border-left:0;text-align:right}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:21px;font-style:normal;line-height:1.4}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:0}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:0;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:10px;margin:0 0 10.5px;font-size:14px;line-height:1.4;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:0}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#999;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:21px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.4;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;float:none;display:table-column}table td[class*=col-],table th[class*=col-]{position:static;float:none;display:table-cell}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15.75px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:21px;font-size:22.5px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:9px;font-size:15px;line-height:1.4;color:#6f6f6f}.form-control{display:block;width:100%;height:39px;padding:8px 12px;font-size:15px;line-height:1.4;color:#6f6f6f;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{line-height:39px}.input-group-sm input[type=date],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],.input-group-sm input[type=time],input[type=date].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm,input[type=time].input-sm{line-height:36px}.input-group-lg input[type=date],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],.input-group-lg input[type=time],input[type=date].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg,input[type=time].input-lg{line-height:60px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:21px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{padding-top:9px;padding-bottom:9px;margin-bottom:0;min-height:36px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{height:36px;padding:8px 12px;font-size:12px;line-height:1.5;border-radius:0}select.input-sm{height:36px;line-height:36px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:36px;padding:8px 12px;font-size:12px;line-height:1.5;border-radius:0}.form-group-sm select.form-control{height:36px;line-height:36px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:36px;min-height:33px;padding:9px 12px;font-size:12px;line-height:1.5}.input-lg{height:60px;padding:16px 20px;font-size:19px;line-height:1.3333333;border-radius:0}select.input-lg{height:60px;line-height:60px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:60px;padding:16px 20px;font-size:19px;line-height:1.3333333;border-radius:0}.form-group-lg select.form-control{height:60px;line-height:60px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:60px;min-height:40px;padding:17px 20px;font-size:19px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:48.75px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:39px;height:39px;line-height:39px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:60px;height:60px;line-height:60px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:36px;height:36px;line-height:36px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#43ac6a}.has-success .form-control{border-color:#43ac6a;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#358753;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #85d0a1;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #85d0a1}.has-success .input-group-addon{color:#43ac6a;border-color:#43ac6a;background-color:#dff0d8}.has-success .form-control-feedback{color:#43ac6a}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#e99002}.has-warning .form-control{border-color:#e99002;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#b67102;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #febc53;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #febc53}.has-warning .input-group-addon{color:#e99002;border-color:#e99002;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#e99002}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#f04124}.has-error .form-control{border-color:#f04124;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#d32a0e;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #f79483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #f79483}.has-error .input-group-addon{color:#f04124;border-color:#f04124;background-color:#f2dede}.has-error .form-control-feedback{color:#f04124}.has-feedback label~.form-control-feedback{top:26px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#626262}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{margin-top:0;margin-bottom:0;padding-top:9px}.form-horizontal .checkbox,.form-horizontal .radio{min-height:30px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:9px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:22.3333328px;font-size:19px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:9px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:8px 12px;font-size:15px;line-height:1.4;border-radius:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;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:#e7e7e7;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#cecece;border-color:#8c8c8c}.btn-default:hover{color:#333;background-color:#cecece;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#cecece;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#bcbcbc;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#e7e7e7;border-color:#ccc}.btn-default .badge{color:#e7e7e7;background-color:#333}.btn-primary{color:#fff;background-color:#008cba;border-color:#0079a1}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#006687;border-color:#001921}.btn-primary:hover{color:#fff;background-color:#006687;border-color:#004b63}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#006687;border-color:#004b63}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#004b63;border-color:#001921}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#008cba;border-color:#0079a1}.btn-primary .badge{color:#008cba;background-color:#fff}.btn-success{color:#fff;background-color:#43ac6a;border-color:#3c9a5f}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#358753;border-color:#183e26}.btn-success:hover{color:#fff;background-color:#358753;border-color:#2b6e44}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#358753;border-color:#2b6e44}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#2b6e44;border-color:#183e26}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#43ac6a;border-color:#3c9a5f}.btn-success .badge{color:#43ac6a;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#e99002;border-color:#d08002}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#b67102;border-color:#513201}.btn-warning:hover{color:#fff;background-color:#b67102;border-color:#935b01}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#b67102;border-color:#935b01}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#935b01;border-color:#513201}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#e99002;border-color:#d08002}.btn-warning .badge{color:#e99002;background-color:#fff}.btn-danger{color:#fff;background-color:#f04124;border-color:#ea2f10}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#d32a0e;border-color:#731708}.btn-danger:hover{color:#fff;background-color:#d32a0e;border-color:#b1240c}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#d32a0e;border-color:#b1240c}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#b1240c;border-color:#731708}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#f04124;border-color:#ea2f10}.btn-danger .badge{color:#f04124;background-color:#fff}.btn-link{color:#008cba;font-weight:400;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#008cba;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#999;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:16px 20px;font-size:19px;line-height:1.3333333;border-radius:0}.btn-group-sm>.btn,.btn-sm{padding:8px 12px;font-size:12px;line-height:1.5;border-radius:0}.btn-group-xs>.btn,.btn-xs{padding:4px 6px;font-size:12px;line-height:1.5;border-radius:0}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-timing-function:ease;-o-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-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:15px;text-align:left;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:0;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);-webkit-background-clip:padding-box;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9.5px 0;overflow:hidden;background-color:rgba(0,0,0,.2)}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.4;color:#555;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{text-decoration:none;color:#262626;background-color:#eee}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;outline:0;background-color:#008cba}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#999}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;background-color:transparent;background-image:none;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.4;color:#999;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;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-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,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:0;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:60px;padding:16px 20px;font-size:19px;line-height:1.3333333;border-radius:0}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:60px;line-height:60px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:36px;padding:8px 12px;font-size:12px;line-height:1.5;border-radius:0}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:36px;line-height:36px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:8px 12px;font-size:15px;font-weight:400;line-height:1;color:#6f6f6f;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:0}.input-group-addon.input-sm{padding:8px 12px;font-size:12px;border-radius:0}.input-group-addon.input-lg{padding:16px 20px;font-size:19px;border-radius:0}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-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:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-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:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{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:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#999}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#008cba}.nav .nav-divider{height:1px;margin:9.5px 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.4;border:1px solid transparent;border-radius:0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#6f6f6f;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:0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:0}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#008cba}.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:0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:54px;margin-bottom:21px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:0}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px 15px;font-size:19px;line-height:21px;height:54px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:5.5px;margin-bottom:5.5px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:0}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:6px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:21px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:21px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:18px;padding-bottom:16px}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin-top:3px;margin-bottom:3px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;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:0;border-top-left-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:3px;margin-bottom:3px}.navbar-btn.btn-sm{margin-top:4.5px;margin-bottom:4.5px}.navbar-btn.btn-xs{margin-top:11.5px;margin-bottom:11.5px}.navbar-text{margin-top:12px;margin-bottom:12px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#333;border-color:#222}.navbar-default .navbar-brand{color:#fff}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-default .navbar-text{color:#fff}.navbar-default .navbar-nav>li>a{color:#fff}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#fff;background-color:#272727}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#fff;background-color:#272727}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:transparent}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:transparent}.navbar-default .navbar-toggle .icon-bar{background-color:#fff}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#222}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{background-color:#272727;color:#fff}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#fff}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:#272727}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#272727}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#fff}.navbar-default .navbar-link:hover{color:#fff}.navbar-default .btn-link{color:#fff}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#fff}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#008cba;border-color:#006687}.navbar-inverse .navbar-brand{color:#fff}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#fff}.navbar-inverse .navbar-nav>li>a{color:#fff}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:#006687}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#006687}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:transparent}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:transparent}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#007196}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{background-color:#006687;color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#006687}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#006687}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#fff}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:#006687}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#006687}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#fff}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#fff}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:21px;list-style:none;background-color:#f5f5f5;border-radius:0}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#999}.breadcrumb>.active{color:#333}.pagination{display:inline-block;padding-left:0;margin:21px 0;border-radius:0}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:8px 12px;line-height:1.4;text-decoration:none;color:#008cba;background-color:transparent;border:1px solid transparent;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:0;border-top-left-radius:0}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:0;border-top-right-radius:0}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:3;color:#008cba;background-color:#eee;border-color:transparent}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:2;color:#fff;background-color:#008cba;border-color:transparent;cursor:default}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#999;background-color:#fff;border-color:transparent;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:16px 20px;font-size:19px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:0;border-top-left-radius:0}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:0;border-top-right-radius:0}.pagination-sm>li>a,.pagination-sm>li>span{padding:8px 12px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:0;border-top-left-radius:0}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:0;border-top-right-radius:0}.pager{padding-left:0;margin:21px 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:transparent;border:1px solid transparent;border-radius:3px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#999;background-color:transparent;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#999}.label-default[href]:focus,.label-default[href]:hover{background-color:grey}.label-primary{background-color:#008cba}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#006687}.label-success{background-color:#43ac6a}.label-success[href]:focus,.label-success[href]:hover{background-color:#358753}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#e99002}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#b67102}.label-danger{background-color:#f04124}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#d32a0e}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;color:#fff;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#008cba;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#008cba;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:#fafafa}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:23px;font-weight:200}.jumbotron>hr{border-top-color:#e1e1e1}.container .jumbotron,.container-fluid .jumbotron{border-radius:0}.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:68px}}.thumbnail{display:block;padding:4px;margin-bottom:21px;line-height:1.4;background-color:#fff;border:1px solid #ddd;border-radius:0;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-left:auto;margin-right:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#008cba}.thumbnail .caption{padding:9px;color:#222}.alert{padding:15px;margin-bottom:21px;border:1px solid transparent;border-radius:0}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#43ac6a;border-color:#3c9a5f;color:#fff}.alert-success hr{border-top-color:#358753}.alert-success .alert-link{color:#e6e6e6}.alert-info{background-color:#5bc0de;border-color:#3db5d8;color:#fff}.alert-info hr{border-top-color:#2aabd2}.alert-info .alert-link{color:#e6e6e6}.alert-warning{background-color:#e99002;border-color:#d08002;color:#fff}.alert-warning hr{border-top-color:#b67102}.alert-warning .alert-link{color:#e6e6e6}.alert-danger{background-color:#f04124;border-color:#ea2f10;color:#fff}.alert-danger hr{border-top-color:#d32a0e}.alert-danger .alert-link{color:#e6e6e6}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:21px;margin-bottom:21px;background-color:#f5f5f5;border-radius:0;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:21px;color:#fff;text-align:center;background-color:#008cba;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#43ac6a}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#e99002}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#f04124}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{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-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{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:0;border-top-left-radius:0}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{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:focus,.list-group-item.disabled:hover{background-color:#eee;color:#999;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#999}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#008cba;border-color:#008cba}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#87e1ff}.list-group-item-success{color:#43ac6a;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#43ac6a}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#43ac6a;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#43ac6a;border-color:#43ac6a}.list-group-item-info{color:#5bc0de;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#5bc0de}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#5bc0de;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#5bc0de;border-color:#5bc0de}.list-group-item-warning{color:#e99002;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#e99002}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#e99002;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#e99002;border-color:#e99002}.list-group-item-danger{color:#f04124;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#f04124}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#f04124;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#f04124;border-color:#f04124}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:21px;background-color:#fff;border:1px solid transparent;border-radius:0;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:-1;border-top-left-radius:-1}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:17px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:-1;border-bottom-left-radius:-1}.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:-1;border-top-left-radius:-1}.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:-1;border-bottom-left-radius:-1}.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>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-left:15px;padding-right:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-right-radius:-1;border-top-left-radius:-1}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:-1;border-top-right-radius:-1}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:-1}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:-1}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:-1;border-bottom-left-radius:-1}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:-1;border-bottom-right-radius:-1}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:-1}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:-1}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:21px}.panel-group .panel{margin-bottom:0;border-radius:0}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#008cba}.panel-primary>.panel-heading{color:#fff;background-color:#008cba;border-color:#008cba}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#008cba}.panel-primary>.panel-heading .badge{color:#008cba;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#008cba}.panel-success{border-color:#3c9a5f}.panel-success>.panel-heading{color:#fff;background-color:#43ac6a;border-color:#3c9a5f}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#3c9a5f}.panel-success>.panel-heading .badge{color:#43ac6a;background-color:#fff}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#3c9a5f}.panel-info{border-color:#3db5d8}.panel-info>.panel-heading{color:#fff;background-color:#5bc0de;border-color:#3db5d8}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#3db5d8}.panel-info>.panel-heading .badge{color:#5bc0de;background-color:#fff}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#3db5d8}.panel-warning{border-color:#d08002}.panel-warning>.panel-heading{color:#fff;background-color:#e99002;border-color:#d08002}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d08002}.panel-warning>.panel-heading .badge{color:#e99002;background-color:#fff}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d08002}.panel-danger{border-color:#ea2f10}.panel-danger>.panel-heading{color:#fff;background-color:#f04124;border-color:#ea2f10}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ea2f10}.panel-danger>.panel-heading .badge{color:#f04124;background-color:#fff}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ea2f10}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;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:#fafafa;border:1px solid #e8e8e8;border-radius:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:0}.well-sm{padding:9px;border-radius:0}.close{float:right;font-size:22.5px;font-weight:700;line-height:1;color:#fff;text-shadow:0 1px 0 #fff;opacity:.2}.close:focus,.close:hover{color:#fff;text-decoration:none;cursor:pointer;opacity:.5}button.close{padding:0;cursor:pointer;background:0 0;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 .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-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,.2);border-radius:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);-webkit-background-clip:padding-box;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}.modal-backdrop.in{opacity:.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.4px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.4}.modal-body{position:relative;padding:20px}.modal-footer{padding:20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;letter-spacing:normal;line-break:auto;line-height:1.4;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}.tooltip.in{opacity:.9}.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:#333;border-radius:0}.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:#333}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#333}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#333}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#333}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#333}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#333}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#333}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#333}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;letter-spacing:normal;line-break:auto;line-height:1.4;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:15px;background-color:#333;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #333;border:1px solid transparent;border-radius:0;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(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:15px;background-color:#333;border-bottom:1px solid #262626;border-radius:-1 -1 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:#000;border-top-color:rgba(0,0,0,.05);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#333}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#000;border-right-color:rgba(0,0,0,.05)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#333}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#000;border-bottom-color:rgba(0,0,0,.05);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#333}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#000;border-left-color:rgba(0,0,0,.05)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#333;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);left:0}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);left:0}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{-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:.5;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-repeat:repeat-x}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{outline:0;color:#fff;text-decoration:none;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;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:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{content:" ";display:table}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row: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-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}}.navbar{border:none;font-size:13px;font-weight:300}.navbar .navbar-toggle:hover .icon-bar{background-color:#b3b3b3}.navbar-collapse{border-top-color:rgba(0,0,0,.2);-webkit-box-shadow:none;box-shadow:none}.navbar .btn{padding-top:6px;padding-bottom:6px}.navbar-form{margin-top:7px;margin-bottom:5px}.navbar-form .form-control{height:auto;padding:4px 6px}.navbar .dropdown-menu{border:none}.navbar .dropdown-menu>li>a,.navbar .dropdown-menu>li>a:focus{background-color:transparent;font-size:13px;font-weight:300}.navbar .dropdown-header{color:rgba(255,255,255,.5)}.navbar-default .dropdown-menu{background-color:#333}.navbar-default .dropdown-menu>li>a,.navbar-default .dropdown-menu>li>a:focus{color:#fff}.navbar-default .dropdown-menu>.active>a,.navbar-default .dropdown-menu>.active>a:hover,.navbar-default .dropdown-menu>li>a:hover{background-color:#272727}.navbar-inverse .dropdown-menu{background-color:#008cba}.navbar-inverse .dropdown-menu>li>a,.navbar-inverse .dropdown-menu>li>a:focus{color:#fff}.navbar-inverse .dropdown-menu>.active>a,.navbar-inverse .dropdown-menu>.active>a:hover,.navbar-inverse .dropdown-menu>li>a:hover{background-color:#006687}.btn{padding:8px 12px}.btn-lg{padding:16px 20px}.btn-sm{padding:8px 12px}.btn-xs{padding:4px 6px}.btn-group .btn~.dropdown-toggle{padding-left:16px;padding-right:16px}.btn-group .dropdown-menu{border-top-width:0}.btn-group.dropup .dropdown-menu{border-top-width:1px;border-bottom-width:0;margin-bottom:0}.btn-group .dropdown-toggle.btn-default~.dropdown-menu{background-color:#e7e7e7;border-color:#ccc}.btn-group .dropdown-toggle.btn-default~.dropdown-menu>li>a{color:#333}.btn-group .dropdown-toggle.btn-default~.dropdown-menu>li>a:hover{background-color:#d3d3d3}.btn-group .dropdown-toggle.btn-primary~.dropdown-menu{background-color:#008cba;border-color:#0079a1}.btn-group .dropdown-toggle.btn-primary~.dropdown-menu>li>a{color:#fff}.btn-group .dropdown-toggle.btn-primary~.dropdown-menu>li>a:hover{background-color:#006d91}.btn-group .dropdown-toggle.btn-success~.dropdown-menu{background-color:#43ac6a;border-color:#3c9a5f}.btn-group .dropdown-toggle.btn-success~.dropdown-menu>li>a{color:#fff}.btn-group .dropdown-toggle.btn-success~.dropdown-menu>li>a:hover{background-color:#388f58}.btn-group .dropdown-toggle.btn-info~.dropdown-menu{background-color:#5bc0de;border-color:#46b8da}.btn-group .dropdown-toggle.btn-info~.dropdown-menu>li>a{color:#fff}.btn-group .dropdown-toggle.btn-info~.dropdown-menu>li>a:hover{background-color:#39b3d7}.btn-group .dropdown-toggle.btn-warning~.dropdown-menu{background-color:#e99002;border-color:#d08002}.btn-group .dropdown-toggle.btn-warning~.dropdown-menu>li>a{color:#fff}.btn-group .dropdown-toggle.btn-warning~.dropdown-menu>li>a:hover{background-color:#c17702}.btn-group .dropdown-toggle.btn-danger~.dropdown-menu{background-color:#f04124;border-color:#ea2f10}.btn-group .dropdown-toggle.btn-danger~.dropdown-menu>li>a{color:#fff}.btn-group .dropdown-toggle.btn-danger~.dropdown-menu>li>a:hover{background-color:#dc2c0f}.lead{color:#6f6f6f}cite{font-style:italic}blockquote{border-left-width:1px;color:#6f6f6f}blockquote.pull-right{border-right-width:1px}blockquote small{font-size:12px;font-weight:300}table{font-size:12px}.checkbox,.control-label,.help-block,.radio,label{font-size:12px;font-weight:400}input[type=checkbox],input[type=radio]{margin-top:1px}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{border-color:transparent}.nav-tabs>li>a{background-color:#e7e7e7;color:#222}.nav-tabs .caret{border-top-color:#222;border-bottom-color:#222}.nav-pills{font-weight:300}.breadcrumb{border:1px solid #ddd;border-radius:3px;font-size:10px;font-weight:300;text-transform:uppercase}.pagination{font-size:12px;font-weight:300;color:#999}.pagination>li>a,.pagination>li>span{margin-left:4px;color:#999}.pagination>.active>a,.pagination>.active>span{color:#fff}.pagination>li:first-child>a,.pagination>li:first-child>span,.pagination>li:last-child>a,.pagination>li:last-child>span,.pagination>li>a,.pagination>li>span{border-radius:3px}.pagination-lg>li>a,.pagination-lg>li>span{padding-left:22px;padding-right:22px}.pagination-sm>li>a,.pagination-sm>li>span{padding:0 5px}.pager{font-size:12px;font-weight:300;color:#999}.list-group{font-size:12px;font-weight:300}.close{opacity:.4;text-decoration:none;text-shadow:none}.close:focus,.close:hover{opacity:1}.alert{font-size:12px;font-weight:300}.alert .alert-link{font-weight:400;color:#fff;text-decoration:underline}.label{padding-left:1em;padding-right:1em;border-radius:0;font-weight:300}.label-default{background-color:#e7e7e7;color:#333}.badge{font-weight:300}.progress{height:22px;padding:2px;background-color:#f6f6f6;border:1px solid #ccc;-webkit-box-shadow:none;box-shadow:none}.dropdown-menu{padding:0;margin-top:0;font-size:12px}.dropdown-menu>li>a{padding:12px 15px}.dropdown-header{padding-left:15px;padding-right:15px;font-size:9px;text-transform:uppercase}.popover{color:#fff;font-size:12px;font-weight:300}.panel-footer,.panel-heading{border-top-right-radius:0;border-top-left-radius:0}.panel-default .close{color:#222}.modal .close{color:#222}
@@ -1,75 +1,75
1 from django import forms
1 from django import forms
2 from .models import ABSConfiguration, ABSBeam
2 from .models import ABSConfiguration, ABSBeam
3 from .widgets import UpDataWidget, DownDataWidget, EditUpDataWidget, EditDownDataWidget
3 from .widgets import UpDataWidget, DownDataWidget, EditUpDataWidget, EditDownDataWidget
4 from apps.main.models import Configuration
4 from apps.main.models import Configuration
5 import os
5 import os
6
6
7 class ABSConfigurationForm(forms.ModelForm):
7 class ABSConfigurationForm(forms.ModelForm):
8 def __init__(self, *args, **kwargs):
8 def __init__(self, *args, **kwargs):
9 super(ABSConfigurationForm, self).__init__(*args, **kwargs)
9 super(ABSConfigurationForm, self).__init__(*args, **kwargs)
10
10
11 class Meta:
11 class Meta:
12 model = ABSConfiguration
12 model = ABSConfiguration
13 exclude = ('type', 'status', 'parameters', 'active_beam',
13 exclude = ('type', 'status', 'parameters', 'active_beam',
14 'module_status', 'module_messages', 'module_mode',
14 'module_status', 'module_messages', 'module_mode',
15 'author', 'hash')
15 'author', 'hash')
16
16
17
17
18 class ABSBeamAddForm(forms.Form):
18 class ABSBeamAddForm(forms.Form):
19
19
20 up_data = forms.CharField(widget=UpDataWidget, label='')
20 up_data = forms.CharField(widget=UpDataWidget, label='')
21 down_data = forms.CharField(widget=DownDataWidget, label='')
21 down_data = forms.CharField(widget=DownDataWidget, label='')
22
22
23 def __init__(self, *args, **kwargs):
23 def __init__(self, *args, **kwargs):
24 super(ABSBeamAddForm, self).__init__(*args, **kwargs)
24 super(ABSBeamAddForm, self).__init__(*args, **kwargs)
25
25
26
26
27
27
28 class ABSBeamEditForm(forms.Form):
28 class ABSBeamEditForm(forms.Form):
29
29
30 up_data = forms.CharField(widget=EditUpDataWidget, label='')
30 up_data = forms.CharField(widget=EditUpDataWidget, label='')
31 down_data = forms.CharField(widget=EditDownDataWidget, label='')
31 down_data = forms.CharField(widget=EditDownDataWidget, label='')
32
32
33 def __init__(self, *args, **kwargs):
33 def __init__(self, *args, **kwargs):
34 super(ABSBeamEditForm, self).__init__(*args, **kwargs)
34 super(ABSBeamEditForm, self).__init__(*args, **kwargs)
35
35
36 if 'initial' in kwargs:
36 if 'initial' in kwargs:
37 if 'beam' in self.initial:
37 if 'beam' in self.initial:
38 self.fields['up_data'].initial = self.initial['beam']
38 self.fields['up_data'].initial = self.initial['beam']
39 self.fields['down_data'].initial = self.initial['beam']
39 self.fields['down_data'].initial = self.initial['beam']
40
40
41
41
42 class ExtFileField(forms.FileField):
42 class ExtFileField(forms.FileField):
43 """
43 """
44 Same as forms.FileField, but you can specify a file extension whitelist.
44 Same as forms.FileField, but you can specify a file extension whitelist.
45
45
46 >>> from django.core.files.uploadedfile import SimpleUploadedFile
46 >>> from django.core.files.uploadedfile import SimpleUploadedFile
47 >>>
47 >>>
48 >>> t = ExtFileField(ext_whitelist=(".pdf", ".txt"))
48 >>> t = ExtFileField(ext_whitelist=(".pdf", ".txt"))
49 >>>
49 >>>
50 >>> t.clean(SimpleUploadedFile('filename.pdf', 'Some File Content'))
50 >>> t.clean(SimpleUploadedFile('filename.pdf', 'Some File Content'))
51 >>> t.clean(SimpleUploadedFile('filename.txt', 'Some File Content'))
51 >>> t.clean(SimpleUploadedFile('filename.txt', 'Some File Content'))
52 >>>
52 >>>
53 >>> t.clean(SimpleUploadedFile('filename.exe', 'Some File Content'))
53 >>> t.clean(SimpleUploadedFile('filename.exe', 'Some File Content'))
54 Traceback (most recent call last):
54 Traceback (most recent call last):
55 ...
55 ...
56 ValidationError: [u'Not allowed filetype!']
56 ValidationError: [u'Not allowed filetype!']
57 """
57 """
58 def __init__(self, *args, **kwargs):
58 def __init__(self, *args, **kwargs):
59 extensions = kwargs.pop("extensions")
59 extensions = kwargs.pop("extensions")
60 self.extensions = [i.lower() for i in extensions]
60 self.extensions = [i.lower() for i in extensions]
61
61
62 super(ExtFileField, self).__init__(*args, **kwargs)
62 super(ExtFileField, self).__init__(*args, **kwargs)
63
63
64 def clean(self, *args, **kwargs):
64 def clean(self, *args, **kwargs):
65 data = super(ExtFileField, self).clean(*args, **kwargs)
65 data = super(ExtFileField, self).clean(*args, **kwargs)
66 filename = data.name
66 filename = data.name
67 ext = os.path.splitext(filename)[1]
67 ext = os.path.splitext(filename)[1]
68 ext = ext.lower()
68 ext = ext.lower()
69 if ext not in self.extensions:
69 if ext not in self.extensions:
70 raise forms.ValidationError('Not allowed file type: %s' % ext)
70 raise forms.ValidationError('Not allowed file type: %s' % ext)
71
71
72
72
73 class ABSImportForm(forms.Form):
73 class ABSImportForm(forms.Form):
74
74
75 file_name = ExtFileField(extensions=['.json'])
75 file_name = ExtFileField(extensions=['.json'])
@@ -1,878 +1,997
1 from django.db import models
1 from django.db import models
2 from apps.main.models import Configuration , User
2 from apps.main.models import Configuration , User
3 from django.urls import reverse
3 from django.urls import reverse
4 from celery.execute import send_task
4 from celery.execute import send_task
5 from datetime import datetime
5 from datetime import datetime
6 import ast
6 import ast
7 import socket
7 import socket
8 import json
8 import json
9 import requests
9 import requests
10 import struct
10 import struct
11 import os, sys, time
11 import os, sys, time
12
12
13 antenna_default = json.dumps({
13 antenna_default = json.dumps({
14 "antenna_up": [[0.0,0.0,0.0,0.0,0.5,0.5,0.5,0.5],
14 "antenna_up": [[0.0,0.0,0.0,0.0,0.5,0.5,0.5,0.5],
15 [0.0,0.0,0.0,0.0,0.5,0.5,0.5,0.5],
15 [0.0,0.0,0.0,0.0,0.5,0.5,0.5,0.5],
16 [0.0,0.0,0.0,0.0,0.5,0.5,0.5,0.5],
16 [0.0,0.0,0.0,0.0,0.5,0.5,0.5,0.5],
17 [0.0,0.0,0.0,0.0,0.5,0.5,0.5,0.5],
17 [0.0,0.0,0.0,0.0,0.5,0.5,0.5,0.5],
18 [0.5,0.5,0.5,0.5,1.0,1.0,1.0,1.0],
18 [0.5,0.5,0.5,0.5,1.0,1.0,1.0,1.0],
19 [0.5,0.5,0.5,0.5,1.0,1.0,1.0,1.0],
19 [0.5,0.5,0.5,0.5,1.0,1.0,1.0,1.0],
20 [0.5,0.5,0.5,0.5,1.0,1.0,1.0,1.0],
20 [0.5,0.5,0.5,0.5,1.0,1.0,1.0,1.0],
21 [0.5,0.5,0.5,0.5,1.0,1.0,1.0,1.0]
21 [0.5,0.5,0.5,0.5,1.0,1.0,1.0,1.0]
22 ]
22 ]
23 ,
23 ,
24 "antenna_down": [[0.0,0.0,0.0,0.0,0.5,0.5,0.5,0.5],
24 "antenna_down": [[0.0,0.0,0.0,0.0,0.5,0.5,0.5,0.5],
25 [0.0,0.0,0.0,0.0,0.5,0.5,0.5,0.5],
25 [0.0,0.0,0.0,0.0,0.5,0.5,0.5,0.5],
26 [0.0,0.0,0.0,0.0,0.5,0.5,0.5,0.5],
26 [0.0,0.0,0.0,0.0,0.5,0.5,0.5,0.5],
27 [0.0,0.0,0.0,0.0,0.5,0.5,0.5,0.5],
27 [0.0,0.0,0.0,0.0,0.5,0.5,0.5,0.5],
28 [0.5,0.5,0.5,0.5,3.0,3.0,3.0,3.0],
28 [0.5,0.5,0.5,0.5,3.0,3.0,3.0,3.0],
29 [0.5,0.5,0.5,0.5,3.0,3.0,3.0,3.0],
29 [0.5,0.5,0.5,0.5,3.0,3.0,3.0,3.0],
30 [0.5,0.5,0.5,0.5,3.0,3.0,3.0,3.0],
30 [0.5,0.5,0.5,0.5,3.0,3.0,3.0,3.0],
31 [0.5,0.5,0.5,0.5,3.0,3.0,3.0,3.0]],
31 [0.5,0.5,0.5,0.5,3.0,3.0,3.0,3.0]],
32 })
32 })
33
33
34
34
35 tx_default = json.dumps({
35 tx_default = json.dumps({
36 "up": [[1,1,1,1,0,0,0,0],
36 "up": [[1,1,1,1,0,0,0,0],
37 [1,1,1,1,0,0,0,0],
37 [1,1,1,1,0,0,0,0],
38 [1,1,1,1,0,0,0,0],
38 [1,1,1,1,0,0,0,0],
39 [1,1,1,1,0,0,0,0],
39 [1,1,1,1,0,0,0,0],
40 [0,0,0,0,1,1,1,1],
40 [0,0,0,0,1,1,1,1],
41 [0,0,0,0,1,1,1,1],
41 [0,0,0,0,1,1,1,1],
42 [0,0,0,0,1,1,1,1],
42 [0,0,0,0,1,1,1,1],
43 [0,0,0,0,1,1,1,1]],
43 [0,0,0,0,1,1,1,1]],
44
44
45 "down": [[1,1,1,1,0,0,0,0],
45 "down": [[1,1,1,1,0,0,0,0],
46 [1,1,1,1,0,0,0,0],
46 [1,1,1,1,0,0,0,0],
47 [1,1,1,1,0,0,0,0],
47 [1,1,1,1,0,0,0,0],
48 [1,1,1,1,0,0,0,0],
48 [1,1,1,1,0,0,0,0],
49 [0,0,0,0,1,1,1,1],
49 [0,0,0,0,1,1,1,1],
50 [0,0,0,0,1,1,1,1],
50 [0,0,0,0,1,1,1,1],
51 [0,0,0,0,1,1,1,1],
51 [0,0,0,0,1,1,1,1],
52 [0,0,0,0,1,1,1,1]],
52 [0,0,0,0,1,1,1,1]],
53 })
53 })
54
54
55 rx_default = json.dumps({
55 rx_default = json.dumps({
56 "up": [[1,1,1,1,0,0,0,0],
56 "up": [[1,1,1,1,0,0,0,0],
57 [1,1,1,1,0,0,0,0],
57 [1,1,1,1,0,0,0,0],
58 [1,1,1,1,0,0,0,0],
58 [1,1,1,1,0,0,0,0],
59 [1,1,1,1,0,0,0,0],
59 [1,1,1,1,0,0,0,0],
60 [0,0,0,0,1,1,1,1],
60 [0,0,0,0,1,1,1,1],
61 [0,0,0,0,1,1,1,1],
61 [0,0,0,0,1,1,1,1],
62 [0,0,0,0,1,1,1,1],
62 [0,0,0,0,1,1,1,1],
63 [0,0,0,0,1,1,1,1]],
63 [0,0,0,0,1,1,1,1]],
64
64
65 "down": [[1,1,1,1,0,0,0,0],
65 "down": [[1,1,1,1,0,0,0,0],
66 [1,1,1,1,0,0,0,0],
66 [1,1,1,1,0,0,0,0],
67 [1,1,1,1,0,0,0,0],
67 [1,1,1,1,0,0,0,0],
68 [1,1,1,1,0,0,0,0],
68 [1,1,1,1,0,0,0,0],
69 [0,0,0,0,1,1,1,1],
69 [0,0,0,0,1,1,1,1],
70 [0,0,0,0,1,1,1,1],
70 [0,0,0,0,1,1,1,1],
71 [0,0,0,0,1,1,1,1],
71 [0,0,0,0,1,1,1,1],
72 [0,0,0,0,1,1,1,1]],
72 [0,0,0,0,1,1,1,1]],
73 })
73 })
74
74
75 status_default = '0000000000000000000000000000000000000000000000000000000000000000'
75 status_default = '0000000000000000000000000000000000000000000000000000000000000000'
76 default_messages = {}
76 default_messages = {}
77
77
78 for i in range(1,65):
78 for i in range(1,65):
79 default_messages[str(i)] = "Module "+str(i)
79 default_messages[str(i)] = "Module "+str(i)
80
80
81
81
82 ues_default = json.dumps({
82 ues_default = json.dumps({
83 "up": [0.533333,0.00000,1.06667,0.00000],
83 "up": [0.533333,0.00000,1.06667,0.00000],
84 "down": [0.533333,0.00000,1.06667,0.00000]
84 "down": [0.533333,0.00000,1.06667,0.00000]
85 })
85 })
86
86
87 onlyrx_default = json.dumps({
87 onlyrx_default = json.dumps({
88 "up": False,
88 "up": False,
89 "down": False
89 "down": False
90 })
90 })
91
91
92 def up_convertion(cadena):
92 def up_convertion(cadena):
93 valores = []
93 valores = []
94 for c in cadena:
94 for c in cadena:
95 if c == 1.0: valores=valores+['000']
95 if c == 1.0: valores=valores+['000']
96 if c == 2.0: valores=valores+['001']
96 if c == 2.0: valores=valores+['001']
97 if c == 3.0: valores=valores+['010']
97 if c == 3.0: valores=valores+['010']
98 if c == 0.0: valores=valores+['011']
98 if c == 0.0: valores=valores+['011']
99 if c == 0.5: valores=valores+['100']
99 if c == 0.5: valores=valores+['100']
100 if c == 1.5: valores=valores+['101']
100 if c == 1.5: valores=valores+['101']
101 if c == 2.5: valores=valores+['110']
101 if c == 2.5: valores=valores+['110']
102 if c == 3.5: valores=valores+['111']
102 if c == 3.5: valores=valores+['111']
103
103
104 return valores
104 return valores
105
105
106 def up_conv_bits(value):
106 def up_conv_bits(value):
107
107
108 if value == 1.0: bits="000"
108 if value == 1.0: bits="000"
109 if value == 2.0: bits="001"
109 if value == 2.0: bits="001"
110 if value == 3.0: bits="010"
110 if value == 3.0: bits="010"
111 if value == 0.0: bits="011"
111 if value == 0.0: bits="011"
112 if value == 0.5: bits="100"
112 if value == 0.5: bits="100"
113 if value == 1.5: bits="101"
113 if value == 1.5: bits="101"
114 if value == 2.5: bits="110"
114 if value == 2.5: bits="110"
115 if value == 3.5: bits="111"
115 if value == 3.5: bits="111"
116
116
117 return bits
117 return bits
118
118
119 def down_convertion(cadena):
119 def down_convertion(cadena):
120 valores = []
120 valores = []
121 for c in cadena:
121 for c in cadena:
122 if c == 1.0: valores=valores+['000']
122 if c == 1.0: valores=valores+['000']
123 if c == 2.0: valores=valores+['001']
123 if c == 2.0: valores=valores+['001']
124 if c == 3.0: valores=valores+['010']
124 if c == 3.0: valores=valores+['010']
125 if c == 0.0: valores=valores+['011']
125 if c == 0.0: valores=valores+['011']
126 if c == 0.5: valores=valores+['100']
126 if c == 0.5: valores=valores+['100']
127 if c == 1.5: valores=valores+['101']
127 if c == 1.5: valores=valores+['101']
128 if c == 2.5: valores=valores+['110']
128 if c == 2.5: valores=valores+['110']
129 if c == 3.5: valores=valores+['111']
129 if c == 3.5: valores=valores+['111']
130
130
131 return valores
131 return valores
132
132
133 def down_conv_bits(value):
133 def down_conv_bits(value):
134
134
135 if value == 1.0: bits="000"
135 if value == 1.0: bits="000"
136 if value == 2.0: bits="001"
136 if value == 2.0: bits="001"
137 if value == 3.0: bits="010"
137 if value == 3.0: bits="010"
138 if value == 0.0: bits="011"
138 if value == 0.0: bits="011"
139 if value == 0.5: bits="100"
139 if value == 0.5: bits="100"
140 if value == 1.5: bits="101"
140 if value == 1.5: bits="101"
141 if value == 2.5: bits="110"
141 if value == 2.5: bits="110"
142 if value == 3.5: bits="111"
142 if value == 3.5: bits="111"
143
143
144 return bits
144 return bits
145
145
146 def up_conv_value(bits):
146 def up_conv_value(bits):
147
147
148 if bits == "000": value=1.0
148 if bits == "000": value=1.0
149 if bits == "001": value=2.0
149 if bits == "001": value=2.0
150 if bits == "010": value=3.0
150 if bits == "010": value=3.0
151 if bits == "011": value=0.0
151 if bits == "011": value=0.0
152 if bits == "100": value=0.5
152 if bits == "100": value=0.5
153 if bits == "101": value=1.5
153 if bits == "101": value=1.5
154 if bits == "110": value=2.5
154 if bits == "110": value=2.5
155 if bits == "111": value=3.5
155 if bits == "111": value=3.5
156
156
157 return value
157 return value
158
158
159 def down_conv_value(bits):
159 def down_conv_value(bits):
160
160
161 if bits == "000": value=1.0
161 if bits == "000": value=1.0
162 if bits == "001": value=2.0
162 if bits == "001": value=2.0
163 if bits == "010": value=3.0
163 if bits == "010": value=3.0
164 if bits == "011": value=0.0
164 if bits == "011": value=0.0
165 if bits == "100": value=0.5
165 if bits == "100": value=0.5
166 if bits == "101": value=1.5
166 if bits == "101": value=1.5
167 if bits == "110": value=2.5
167 if bits == "110": value=2.5
168 if bits == "111": value=3.5
168 if bits == "111": value=3.5
169
169
170 return value
170 return value
171
171
172 def ip2position(module_number):
172 def ip2position(module_number):
173 j=0
173 j=0
174 i=0
174 i=0
175 for x in range(0,module_number-1):
175 for x in range(0,module_number-1):
176 j=j+1
176 j=j+1
177 if j==8:
177 if j==8:
178 i=i+1
178 i=i+1
179 j=0
179 j=0
180
180
181 pos = [i,j]
181 pos = [i,j]
182 return pos
182 return pos
183
183
184
184
185 def fromBinary2Char(binary_string):
185 def fromBinary2Char(binary_string):
186 number = int(binary_string, 2)
186 number = int(binary_string, 2)
187 #Plus 33 to avoid more than 1 characters values such as: '\x01'-'\x1f'
187 #Plus 33 to avoid more than 1 characters values such as: '\x01'-'\x1f'
188 number = number + 33
188 number = number + 33
189 char = chr(number)
189 char = chr(number)
190 return char
190 return char
191
191
192 def fromChar2Binary(char):
192 def fromChar2Binary(char):
193 number = ord(char) - 33
193 number = ord(char) - 33
194 #Minus 33 to get the real value
194 #Minus 33 to get the real value
195 bits = bin(number)[2:]
195 bits = bin(number)[2:]
196 #To ensure we have a string with 6bits
196 #To ensure we have a string with 6bits
197 if len(bits) < 6:
197 if len(bits) < 6:
198 bits = bits.zfill(6)
198 bits = bits.zfill(6)
199 return bits
199 return bits
200
200
201 OPERATION_MODES = (
201 OPERATION_MODES = (
202 (0, 'Manual'),
202 (0, 'Manual'),
203 (1, 'Automatic'),
203 (1, 'Automatic'),
204 )
204 )
205
205
206 class ABSActive(models.Model):
207 conf = models.ForeignKey(ABSConfiguration, null=True, verbose_name='ABS Configuration', on_delete=models.CASCADE)
206
208
207 class ABSConfiguration(Configuration):
209 class ABSConfiguration(Configuration):
208 active_beam = models.PositiveSmallIntegerField(verbose_name='Active Beam', default=0)
210 active_beam = models.PositiveSmallIntegerField(verbose_name='Active Beam', default=0)
209 module_status = models.CharField(verbose_name='Module Status', max_length=10000, default=status_default)
211 module_status = models.CharField(verbose_name='Module Status', max_length=10000, default=status_default)
210 operation_mode = models.PositiveSmallIntegerField(verbose_name='Operation Mode', choices=OPERATION_MODES, default = 0)
212 operation_mode = models.PositiveSmallIntegerField(verbose_name='Operation Mode', choices=OPERATION_MODES, default = 0)
211 operation_value = models.FloatField(verbose_name='Periodic (seconds)', default="10", null=True, blank=True)
213 operation_value = models.FloatField(verbose_name='Periodic (seconds)', default="10", null=True, blank=True)
212 module_messages = models.CharField(verbose_name='Modules Messages', max_length=10000, default=json.dumps(default_messages))
214 module_messages = models.CharField(verbose_name='Modules Messages', max_length=10000, default=json.dumps(default_messages))
213
215
214 class Meta:
216 class Meta:
215 db_table = 'abs_configurations'
217 db_table = 'abs_configurations'
216
218
217 def get_absolute_url_plot(self):
219 def get_absolute_url_plot(self):
218 return reverse('url_plot_abs_patterns', args=[str(self.id)])
220 return reverse('url_plot_abs_patterns', args=[str(self.id)])
219
221
220
222
221 def parms_to_dict(self):
223 def parms_to_dict(self):
222
224
223 parameters = {}
225 parameters = {}
224
226
225 parameters['device_id'] = self.device.id
227 parameters['device_id'] = self.device.id
226 parameters['label'] = self.label
228 parameters['label'] = self.label
227 parameters['device_type'] = self.device.device_type.name
229 parameters['device_type'] = self.device.device_type.name
228 parameters['beams'] = {}
230 parameters['beams'] = {}
229
231
230 beams = ABSBeam.objects.filter(abs_conf=self)
232 beams = ABSBeam.objects.filter(abs_conf=self)
231 b=1
233 b=1
232 for beam in beams:
234 for beam in beams:
233 #absbeam = ABSBeam.objects.get(pk=beams[beam])
235 #absbeam = ABSBeam.objects.get(pk=beams[beam])
234 parameters['beams']['beam'+str(b)] = beam.parms_to_dict()#absbeam.parms_to_dict()
236 parameters['beams']['beam'+str(b)] = beam.parms_to_dict()#absbeam.parms_to_dict()
235 b+=1
237 b+=1
236
238
237 return parameters
239 return parameters
238
240
239
241
240 def dict_to_parms(self, parameters):
242 def dict_to_parms(self, parameters):
241
243
242 self.label = parameters['label']
244 self.label = parameters['label']
243
245
244 absbeams = ABSBeam.objects.filter(abs_conf=self)
246 absbeams = ABSBeam.objects.filter(abs_conf=self)
245 beams = parameters['beams']
247 beams = parameters['beams']
246
248
247 if absbeams:
249 if absbeams:
248 beams_number = len(beams)
250 beams_number = len(beams)
249 absbeams_number = len(absbeams)
251 absbeams_number = len(absbeams)
250 if beams_number==absbeams_number:
252 if beams_number==absbeams_number:
251 i = 1
253 i = 1
252 for absbeam in absbeams:
254 for absbeam in absbeams:
253 absbeam.dict_to_parms(beams['beam'+str(i)])
255 absbeam.dict_to_parms(beams['beam'+str(i)])
254 i = i+1
256 i = i+1
255 elif beams_number > absbeams_number:
257 elif beams_number > absbeams_number:
256 i = 1
258 i = 1
257 for absbeam in absbeams:
259 for absbeam in absbeams:
258 absbeam.dict_to_parms(beams['beam'+str(i)])
260 absbeam.dict_to_parms(beams['beam'+str(i)])
259 i=i+1
261 i=i+1
260 for x in range(i,beams_number+1):
262 for x in range(i,beams_number+1):
261 new_beam = ABSBeam(
263 new_beam = ABSBeam(
262 name =beams['beam'+str(i)]['name'],
264 name =beams['beam'+str(i)]['name'],
263 antenna =json.dumps(beams['beam'+str(i)]['antenna']),
265 antenna =json.dumps(beams['beam'+str(i)]['antenna']),
264 abs_conf = self,
266 abs_conf = self,
265 tx =json.dumps(beams['beam'+str(i)]['tx']),
267 tx =json.dumps(beams['beam'+str(i)]['tx']),
266 rx =json.dumps(beams['beam'+str(i)]['rx']),
268 rx =json.dumps(beams['beam'+str(i)]['rx']),
267 ues =json.dumps(beams['beam'+str(i)]['ues']),
269 ues =json.dumps(beams['beam'+str(i)]['ues']),
268 only_rx =json.dumps(beams['beam'+str(i)]['only_rx'])
270 only_rx =json.dumps(beams['beam'+str(i)]['only_rx'])
269 )
271 )
270 new_beam.save()
272 new_beam.save()
271 i=i+1
273 i=i+1
272 else: #beams_number < absbeams_number:
274 else: #beams_number < absbeams_number:
273 i = 1
275 i = 1
274 for absbeam in absbeams:
276 for absbeam in absbeams:
275 if i <= beams_number:
277 if i <= beams_number:
276 absbeam.dict_to_parms(beams['beam'+str(i)])
278 absbeam.dict_to_parms(beams['beam'+str(i)])
277 i=i+1
279 i=i+1
278 else:
280 else:
279 absbeam.delete()
281 absbeam.delete()
280 else:
282 else:
281 for beam in beams:
283 for beam in beams:
282 new_beam = ABSBeam(
284 new_beam = ABSBeam(
283 name =beams[beam]['name'],
285 name =beams[beam]['name'],
284 antenna =json.dumps(beams[beam]['antenna']),
286 antenna =json.dumps(beams[beam]['antenna']),
285 abs_conf = self,
287 abs_conf = self,
286 tx =json.dumps(beams[beam]['tx']),
288 tx =json.dumps(beams[beam]['tx']),
287 rx =json.dumps(beams[beam]['rx']),
289 rx =json.dumps(beams[beam]['rx']),
288 ues =json.dumps(beams[beam]['ues']),
290 ues =json.dumps(beams[beam]['ues']),
289 only_rx =json.dumps(beams[beam]['only_rx'])
291 only_rx =json.dumps(beams[beam]['only_rx'])
290 )
292 )
291 new_beam.save()
293 new_beam.save()
292
294
293
295
294
296
295 def update_from_file(self, parameters):
297 def update_from_file(self, parameters):
296
298
297 self.dict_to_parms(parameters)
299 self.dict_to_parms(parameters)
298 self.save()
300 self.save()
299
301
300
302
301 def get_beams(self, **kwargs):
303 def get_beams(self, **kwargs):
302 '''
304 '''
303 This function returns ABS Configuration beams
305 This function returns ABS Configuration beams
304 '''
306 '''
305 return ABSBeam.objects.filter(abs_conf=self.pk, **kwargs)
307 return ABSBeam.objects.filter(abs_conf=self.pk, **kwargs)
306
308
307 def clone(self, **kwargs):
309 def clone(self, **kwargs):
308
310
309 beams = self.get_beams()
311 beams = self.get_beams()
310 self.pk = None
312 self.pk = None
311 self.id = None
313 self.id = None
312 for attr, value in kwargs.items():
314 for attr, value in kwargs.items():
313 setattr(self, attr, value)
315 setattr(self, attr, value)
314 self.save()
316 self.save()
315
317
316 for beam in beams:
318 for beam in beams:
317 beam.clone(abs_conf=self)
319 beam.clone(abs_conf=self)
318
320
319 #-----For Active Beam-----
321 #-----For Active Beam-----
320 new_beams = ABSBeam.objects.filter(abs_conf=self)
322 new_beams = ABSBeam.objects.filter(abs_conf=self)
321 self.active_beam = new_beams[0].id
323 self.active_beam = new_beams[0].id
322 self.save()
324 self.save()
323 #-----For Active Beam-----
325 #-----For Active Beam-----
324 #-----For Device Status---
326 #-----For Device Status---
325 self.device.status = 3
327 self.device.status = 3
326 self.device.save()
328 self.device.save()
327 #-----For Device Status---
329 #-----For Device Status---
328
330
329 return self
331 return self
330
332
331
333
332 def start_device(self):
334 def start_device(self):
333
335
334 if self.device.status == 3:
336 if self.device.status == 3:
335
337
336 try:
338 try:
337 #self.write_device()
339 #self.write_device()
338 send_task('task_change_beam', [self.id],)
340 send_task('task_change_beam', [self.id],)
339 self.message = 'ABS running'
341 self.message = 'ABS running'
340
342
341 except Exception as e:
343 except Exception as e:
342 self.message = str(e)
344 self.message = str(e)
343 return False
345 return False
344
346
345 return True
347 return True
346
348
347 else:
349 else:
348 self.message = 'Please, select Write ABS Device first.'
350 self.message = 'Please, select Write ABS Device first.'
349 return False
351 return False
350
352
351
353
352 def stop_device(self):
354 def stop_device(self):
353
355
354 self.device.status = 2
356 self.device.status = 2
355 self.device.save()
357 self.device.save()
356 self.message = 'ABS has been stopped.'
358 self.message = 'ABS has been stopped.'
357 self.save()
359 self.save()
358
360
359 return True
361 return True
360
362
361
363
362 def write_device(self):
364 def write_device(self):
363
365
364 """
366 """
365 This function sends the beams list to every abs module.
367 This function sends the beams list to every abs module.
366 It needs 'module_conf' function
368 It needs 'module_conf' function
367 """
369 """
368
370 print("Write")
369 beams = ABSBeam.objects.filter(abs_conf=self)
371 beams = ABSBeam.objects.filter(abs_conf=self)
370 nbeams = len(beams)
372 nbeams = len(beams)
373
374 # Se manda a cero RC para poder realizar cambio de beam
375 if self.experiment is None:
376 confs = []
377 else:
378 confs = Configuration.objects.filter(experiment = self.experiment).filter(type=0)
379 confdds = ''
380 confjars = ''
381 confrc = ''
382 #TO STOP DEVICES: DDS-JARS-RC
383 for i in range(0,len(confs)):
384 if i==0:
385 for conf in confs:
386 if conf.device.device_type.name == 'dds':
387 confdds = conf
388 confdds.stop_device()
389 break
390 if i==1:
391 for conf in confs:
392 if conf.device.device_type.name == 'jars':
393 confjars = conf
394 confjars.stop_device()
395 break
396 if i==2:
397 for conf in confs:
398 if conf.device.device_type.name == 'rc':
399 confrc = conf
400 confrc.stop_device()
401 break
402
403 '''
371 if self.connected_modules() == 0 :
404 if self.connected_modules() == 0 :
405 print("No encuentra modulos")
372 self.message = "No ABS Module detected."
406 self.message = "No ABS Module detected."
373 return False
407 return False
374
408 '''
375 #-------------Write each abs module-----------
409 #-------------Write each abs module-----------
376
410
377 if beams:
411 if beams:
378 block_id = 0
412 block_id = 0
379 message = 'SNDF{:03d}{:02d}{:02d}'.format(nbeams, nbeams, block_id)
413 message = 'SNDF{:03d}{:02d}{:02d}'.format(nbeams, nbeams, block_id)
380 for i, status in enumerate(self.module_status):
414 for i, status in enumerate(self.module_status):
381 message += ''.join([fromBinary2Char(beam.module_6bits(i)) for beam in beams])
415 message += ''.join([fromBinary2Char(beam.module_6bits(i)) for beam in beams])
382 status = ['0'] * 64
416 status = ['0'] * 64
383 n = 0
417 n = 0
384
418 print("Llega una antes entrar a multicast")
385 sock = self.send_multicast(message)
419 sock = self.send_multicast(message)
386
420
387 for i in range(32):
421 while True:
422 #for i in range(32):
388 try:
423 try:
389 data, address = sock.recvfrom(1024)
424 data, address = sock.recvfrom(1024)
390 print (address, data)
425 print (address, data)
426
391 if data == '1':
427 if data == '1':
392 status[int(address[0][10:])-1] = '3'
428 status[int(address[0][10:])-1] = '3'
393 elif data == '0':
429 elif data == '0':
394 status[int(address[0][10:])-1] = '1'
430 status[int(address[0][10:])-1] = '1'
431 except socket.timeout:
432 print('Timeout')
433 break
395 except Exception as e:
434 except Exception as e:
396 print ('Error {}'.format(e))
435 print ('Error {}'.format(e))
397 n += 1
436 n += 1
398 sock.close()
437 sock.close()
399 else:
438 else:
400 self.message = "ABS Configuration does not have beams"
439 self.message = "ABS Configuration does not have beams"
440 #Start DDS-RC-JARS
441 if confdds:
442 confdds.start_device()
443 if confrc:
444 #print confrc
445 confrc.start_device()
446 if confjars:
447 confjars.start_device()
401 return False
448 return False
402
449
403 if n == 64:
450 if n == 64:
404 self.message = "Could not write ABS Modules"
451 self.message = "Could not write ABS Modules"
405 self.device.status = 0
452 self.device.status = 0
406 self.module_status = ''.join(status)
453 self.module_status = ''.join(status)
407 self.save()
454 self.save()
455 #Start DDS-RC-JARS
456 if confdds:
457 confdds.start_device()
458 if confrc:
459 #print confrc
460 confrc.start_device()
461 if confjars:
462 confjars.start_device()
408 return False
463 return False
409 else:
464 else:
410 self.message = "ABS Beams List have been sent to ABS Modules"
465 self.message = "ABS Beams List have been sent to ABS Modules"
411 self.active_beam = beams[0].pk
466 self.active_beam = beams[0].pk
412
467
468 #Start DDS-RC-JARS
469 if confdds:
470 confdds.start_device()
471 if confrc:
472 #print confrc
473 confrc.start_device()
474 if confjars:
475 confjars.start_device()
476
413 self.device.status = 3
477 self.device.status = 3
414 self.module_status = ''.join(status)
478 self.module_status = ''.join(status)
415 self.save()
479 self.save()
416
480 conf_active = ABSActive.objects.get(pk=1)
481 conf_active.conf = self
482 conf_active.save()
417 return True
483 return True
418
484
419
485
420 def read_module(self, module):
486 def read_module(self, module):
421
487
422 """
488 """
423 Read out-bits (up-down) of 1 abs module NOT for Configuration
489 Read out-bits (up-down) of 1 abs module NOT for Configuration
424 """
490 """
425
491
426 ip_address = self.device.ip_address
492 ip_address = self.device.ip_address
427 ip_address = ip_address.split('.')
493 ip_address = ip_address.split('.')
428 module_seq = (ip_address[0],ip_address[1],ip_address[2])
494 module_seq = (ip_address[0],ip_address[1],ip_address[2])
429 dot = '.'
495 dot = '.'
430 module_ip = dot.join(module_seq)+'.'+str(module)
496 module_ip = dot.join(module_seq)+'.'+str(module)
431 module_port = self.device.port_address
497 module_port = self.device.port_address
432 read_route = 'http://'+module_ip+':'+str(module_port)+'/read'
498 read_route = 'http://'+module_ip+':'+str(module_port)+'/read'
433
499
434 module_status = json.loads(self.module_status)
500 module_status = json.loads(self.module_status)
435 print(read_route)
501 print(read_route)
436
502
437 module_bits = ''
503 module_bits = ''
438
504
439 try:
505 try:
440 r_read = requests.get(read_route, timeout=0.5)
506 r_read = requests.get(read_route, timeout=0.5)
441 answer = r_read.json()
507 answer = r_read.json()
442 module_bits = answer['allbits']
508 module_bits = answer['allbits']
443 except:
509 except:
444 return {}
510 return {}
445
511
446 return module_bits
512 return module_bits
447
513
448 def read_device(self):
514 def read_device(self):
449
515
450 parms = {}
516 parms = {}
451 # Reads active modules.
517 # Reads active modules.
452 module_status = json.loads(self.module_status)
518 module_status = json.loads(self.module_status)
453 total = 0
519 total = 0
454 for status in module_status:
520 for status in module_status:
455 if module_status[status] != 0:
521 if module_status[status] != 0:
456 module_bits = self.read_module(int(status))
522 module_bits = self.read_module(int(status))
457 bits={}
523 bits={}
458 if module_bits:
524 if module_bits:
459 bits = (str(module_bits['um2']) + str(module_bits['um1']) + str(module_bits['um0']) +
525 bits = (str(module_bits['um2']) + str(module_bits['um1']) + str(module_bits['um0']) +
460 str(module_bits['dm2']) + str(module_bits['dm1']) + str(module_bits['dm0']) )
526 str(module_bits['dm2']) + str(module_bits['dm1']) + str(module_bits['dm0']) )
461 parms[str(status)] = bits
527 parms[str(status)] = bits
462
528
463 total +=1
529 total +=1
464
530
465 if total==0:
531 if total==0:
466 self.message = "No ABS Module detected. Please select 'Status'."
532 self.message = "No ABS Module detected. Please select 'Status'."
467 return False
533 return False
468
534
469
535
470
536
471 self.message = "ABS Modules have been read"
537 self.message = "ABS Modules have been read"
472 #monitoreo_tx = JROABSClnt_01CeCnMod000000MNTR10
538 #monitoreo_tx = JROABSClnt_01CeCnMod000000MNTR10
473 return parms
539 return parms
474
540
475
541
476 def connected_modules(self):
542 def connected_modules(self):
477 """
543 """
478 This function returns the number of connected abs-modules without updating.
544 This function returns the number of connected abs-modules without updating.
479 """
545 """
480 num = 0
546 num = 0
481 print(self.module_status)
547 print(self.module_status)
482 for i, status in enumerate(self.module_status):
548 for i, status in enumerate(self.module_status):
483 if status != '0':
549 if status != '0':
484 num += 1
550 num += 1
485 #print('status {}:{}'.format(i+1, status))
551 #print('status {}:{}'.format(i+1, status))
486 return num
552 return num
487
553
488 def send_multicast(self, message):
554 def send_multicast(self, message):
489
555 #print("Send multicast")
490 multicast_group = ('224.3.29.71', 10000)
556 multicast_group = ('224.3.29.71', 10000)
491 # Create the datagram socket
557 # Create the datagram socket
492 sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
558 sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
493 sock.settimeout(1)
559 sock.settimeout(1)
494 local_ip = os.environ.get('LOCAL_IP', '192.168.1.128')
560 local_ip = os.environ.get('LOCAL_IP', '192.168.2.128')
495 sock.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_IF, socket.inet_aton(local_ip))
561 sock.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_IF, socket.inet_aton(local_ip))
496 sock.sendto(message, multicast_group)
562 sock.sendto(message.encode(), multicast_group)
497 print('Sending ' + message)
563 print('Sending ' + message)
498 return sock
564 return sock
499
565
500 def status_device(self):
566 def status_device(self):
501 """
567 """
502 This function returns the status of all abs-modules as one.
568 This function returns the status of all abs-modules as one.
503 If at least one module is connected, its answer is "1"
569 If at least one module is connected, its answer is "1"
504 """
570 """
505
571 print ('Status device')
572 print (self.active_beam)
573 beams = ABSBeam.objects.filter(abs_conf=self)
574 #print beams[self.active_beam-1].module_6bits(0)
575 active = ABSActive.objects.get(pk=1)
576 if active.conf != self:
577 self.message = 'La configuracion actual es la del siguiente enlace %s.' % active.conf.get_absolute_url()
578 self.message += "\n"
579 self.message += 'Se debe realizar un write en esta configuracion para luego obtener un status valido.'
580
581 return False
582
506 sock = self.send_multicast('MNTR')
583 sock = self.send_multicast('MNTR')
507
584
508 n = 0
585 n = 0
509 status = ['0'] * 64
586 status = ['0'] * 64
510 for i in range(32):
587
588 while True:
589 #for i in range(32):
511 #if True:
590 #if True:
512 try:
591 try:
592 print("Recibiendo")
513 address = None
593 address = None
514 data, address = sock.recvfrom(1024)
594 data, address = sock.recvfrom(2)
515 x = int(address[0][10:])-1
595 print (address, data)
596 print("!!!!")
597 data = data.decode()
598 aux_mon = "1"
599 aux_expected = aux_mon
600 if(len(data)==2):
601 print ("data[1]: ")
602 print (data[1])
603 aux_mon = fromChar2Binary(data[1])
604 print (aux_mon)
605 aux_i = (str(address[0]).split('.'))[3]
606 print (aux_i)
607 print ('Active beam')
608 beam_active = ABSBeam.objects.get(pk=self.active_beam)
609 print (beam_active)
610 aux_expected = beam_active.module_6bits(int(aux_i)-1)
611 print (aux_expected)
612
613 print ("data[0]: ")
614 print (data[0])
615
516 if data[0] == '1':
616 if data[0] == '1':
517 remote = fromChar2Binary(data[1])
617 status[int(address[0][10:])-1] = '3'
518 local = ABSBeam.objects.get(pk=self.active_beam).module_6bits(x)
618 if aux_mon == aux_expected:
519 if local == remote:
619 print ('Es igual')
520 status[x] = '3'
521 print('Module: {} connected...igual'.format(address))
522 else:
620 else:
523 status[x] = '2'
621 print ('Es diferente')
524 print('Module: {} connected...diferente'.format(address))
622 status[int(address[0][10:])-1] = '2'
623
525 elif data[0] == '0':
624 elif data[0] == '0':
526 status[x] = '1'
625 status[int(address[0][10:])-1] = '1'
527 n += 1
626 n += 1
627 print('Module: {} connected'.format(address))
628 except socket.timeout:
629 print('Timeout')
630 break
528 except:
631 except:
529 print('Module: {} error'.format(address))
632 print('Module: {} error'.format(address))
530 pass
633 pass
634
531 sock.close()
635 sock.close()
532
636
533 if n > 0:
637 if n > 0:
534 self.message = 'ABS modules Status have been updated.'
638 self.message = 'ABS modules Status have been updated.'
535 self.device.status = 1
639 self.device.status = 1
536 else:
640 else:
537 self.device.status = 0
641 self.device.status = 0
538 self.message = 'No ABS module is connected.'
642 self.message = 'No ABS module is connected.'
539 self.module_status = ''.join(status)
643 self.module_status = ''.join(status)
540 self.save()
644 self.save()
541
645
542 return self.device.status
646 return self.device.status
543
647
544
648
545 def send_beam(self, beam_pos):
649 def send_beam(self, beam_pos):
546 """
650 """
547 This function connects to a multicast group and sends the beam number
651 This function connects to a multicast group and sends the beam number
548 to all abs modules.
652 to all abs modules.
549 """
653 """
654 print ('Send beam')
655 print (self.active_beam)
656 beams = ABSBeam.objects.filter(abs_conf=self)
657 #print beams[self.active_beam-1].module_6bits(0)
658 active = ABSActive.objects.get(pk=1)
659 if active.conf != self:
660 self.message = 'La configuracion actual es la del siguiente enlace %s.' % active.conf.get_absolute_url()
661 self.message += "\n"
662 self.message += 'Se debe realizar un write en esta configuracion para luego obtener un status valido.'
663
664 return False
550
665
551 # Se manda a cero RC para poder realizar cambio de beam
666 # Se manda a cero RC para poder realizar cambio de beam
552 if self.experiment is None:
667 if self.experiment is None:
553 confs = []
668 confs = []
554 else:
669 else:
555 confs = Configuration.objects.filter(experiment = self.experiment).filter(type=0)
670 confs = Configuration.objects.filter(experiment = self.experiment).filter(type=0)
556 confdds = ''
671 confdds = ''
557 confjars = ''
672 confjars = ''
558 confrc = ''
673 confrc = ''
559 #TO STOP DEVICES: DDS-JARS-RC
674 #TO STOP DEVICES: DDS-JARS-RC
560 for i in range(0,len(confs)):
675 for i in range(0,len(confs)):
561 if i==0:
676 if i==0:
562 for conf in confs:
677 for conf in confs:
563 if conf.device.device_type.name == 'dds':
678 if conf.device.device_type.name == 'dds':
564 confdds = conf
679 confdds = conf
565 confdds.stop_device()
680 confdds.stop_device()
566 break
681 break
567 if i==1:
682 if i==1:
568 for conf in confs:
683 for conf in confs:
569 if conf.device.device_type.name == 'jars':
684 if conf.device.device_type.name == 'jars':
570 confjars = conf
685 confjars = conf
571 confjars.stop_device()
686 confjars.stop_device()
572 break
687 break
573 if i==2:
688 if i==2:
574 for conf in confs:
689 for conf in confs:
575 if conf.device.device_type.name == 'rc':
690 if conf.device.device_type.name == 'rc':
576 confrc = conf
691 confrc = conf
577 confrc.stop_device()
692 confrc.stop_device()
578 break
693 break
579 if beam_pos > 0:
694 if beam_pos > 0:
580 beam_pos = beam_pos - 1
695 beam_pos = beam_pos - 1
581 else:
696 else:
582 beam_pos = 0
697 beam_pos = 0
583
698
584 #El indice del apunte debe ser menor que el numero total de apuntes
699 #El indice del apunte debe ser menor que el numero total de apuntes
585 #El servidor tcp en el embebido comienza a contar desde 0
700 #El servidor tcp en el embebido comienza a contar desde 0
586 status = ['0'] * 64
701 status = ['0'] * 64
587 message = 'CHGB{}'.format(beam_pos)
702 message = 'CHGB{}'.format(beam_pos)
588 sock = self.send_multicast(message)
703 sock = self.send_multicast(message)
589 for i in range(32):
704 while True:
705 #for i in range(32):
590 try:
706 try:
591 data, address = sock.recvfrom(1024)
707 data, address = sock.recvfrom(1024)
592 print (address, data)
708 print (address, data)
709 data = data.decode()
593 if data == '1':
710 if data == '1':
594 status[int(address[0][10:])-1] = '3'
711 status[int(address[0][10:])-1] = '3'
595 elif data == '0':
712 elif data == '0':
596 status[int(address[0][10:])-1] = '1'
713 status[int(address[0][10:])-1] = '1'
714 except socket.timeout:
715 print('Timeout')
716 break
597 except Exception as e:
717 except Exception as e:
598 print ('Error {}'.format(e))
718 print ('Error {}'.format(e))
599 pass
719 pass
600
720
601 sock.close()
721 sock.close()
602
722
603 #Start DDS-RC-JARS
723 #Start DDS-RC-JARS
604 if confdds:
724 if confdds:
605 confdds.start_device()
725 confdds.start_device()
606 if confrc:
726 if confrc:
607 #print confrc
727 #print confrc
608 confrc.start_device()
728 confrc.start_device()
609 if confjars:
729 if confjars:
610 confjars.start_device()
730 confjars.start_device()
611
731
612 self.message = "ABS Beam has been changed"
732 self.message = "ABS Beam has been changed"
613 self.module_status = ''.join(status)
733 self.module_status = ''.join(status)
614 self.save()
734 self.save()
615 return True
735 return True
616
736
617
737
618 def get_absolute_url_import(self):
738 def get_absolute_url_import(self):
619 return reverse('url_import_abs_conf', args=[str(self.id)])
739 return reverse('url_import_abs_conf', args=[str(self.id)])
620
740
621
622 class ABSBeam(models.Model):
741 class ABSBeam(models.Model):
623
742
624 name = models.CharField(max_length=60, default='Beam')
743 name = models.CharField(max_length=60, default='Beam')
625 antenna = models.CharField(verbose_name='Antenna', max_length=1000, default=antenna_default)
744 antenna = models.CharField(verbose_name='Antenna', max_length=1000, default=antenna_default)
626 abs_conf = models.ForeignKey('ABSConfiguration', null=True,
745 abs_conf = models.ForeignKey('ABSConfiguration', null=True,
627 verbose_name='ABS Configuration', on_delete=models.CASCADE)
746 verbose_name='ABS Configuration', on_delete=models.CASCADE)
628 tx = models.CharField(verbose_name='Tx', max_length=1000, default=tx_default)
747 tx = models.CharField(verbose_name='Tx', max_length=1000, default=tx_default)
629 rx = models.CharField(verbose_name='Rx', max_length=1000, default=rx_default)
748 rx = models.CharField(verbose_name='Rx', max_length=1000, default=rx_default)
630 s_time = models.TimeField(verbose_name='Star Time', default='00:00:00')
749 s_time = models.TimeField(verbose_name='Star Time', default='00:00:00')
631 e_time = models.TimeField(verbose_name='End Time', default='23:59:59')
750 e_time = models.TimeField(verbose_name='End Time', default='23:59:59')
632 ues = models.CharField(verbose_name='Ues', max_length=100, default=ues_default)
751 ues = models.CharField(verbose_name='Ues', max_length=100, default=ues_default)
633 only_rx = models.CharField(verbose_name='Only RX', max_length=40, default=onlyrx_default)
752 only_rx = models.CharField(verbose_name='Only RX', max_length=40, default=onlyrx_default)
634
753
635 class Meta:
754 class Meta:
636 db_table = 'abs_beams'
755 db_table = 'abs_beams'
637
756
638 def __unicode__(self):
757 def __unicode__(self):
639 return u'%s' % (self.name)
758 return u'%s' % (self.name)
640
759
641 def parms_to_dict(self):
760 def parms_to_dict(self):
642
761
643 parameters = {}
762 parameters = {}
644 parameters['name'] = self.name
763 parameters['name'] = self.name
645 parameters['antenna'] = ast.literal_eval(self.antenna)
764 parameters['antenna'] = ast.literal_eval(self.antenna)
646 parameters['abs_conf'] = self.abs_conf.name
765 parameters['abs_conf'] = self.abs_conf.name
647 parameters['tx'] = ast.literal_eval(self.tx)
766 parameters['tx'] = ast.literal_eval(self.tx)
648 parameters['rx'] = ast.literal_eval(self.rx)
767 parameters['rx'] = ast.literal_eval(self.rx)
649 parameters['s_time'] = self.s_time.strftime("%H:%M:%S")
768 parameters['s_time'] = self.s_time.strftime("%H:%M:%S")
650 parameters['e_time'] = self.e_time.strftime("%H:%M:%S")
769 parameters['e_time'] = self.e_time.strftime("%H:%M:%S")
651 parameters['ues'] = ast.literal_eval(self.ues)
770 parameters['ues'] = ast.literal_eval(self.ues)
652 parameters['only_rx'] = json.loads(self.only_rx)
771 parameters['only_rx'] = json.loads(self.only_rx)
653
772
654 return parameters
773 return parameters
655
774
656 def dict_to_parms(self, parameters):
775 def dict_to_parms(self, parameters):
657
776
658 self.name = parameters['name']
777 self.name = parameters['name']
659 self.antenna = json.dumps(parameters['antenna'])
778 self.antenna = json.dumps(parameters['antenna'])
660 #self.abs_conf = parameters['abs_conf']
779 #self.abs_conf = parameters['abs_conf']
661 self.tx = json.dumps(parameters['tx'])
780 self.tx = json.dumps(parameters['tx'])
662 self.rx = json.dumps(parameters['rx'])
781 self.rx = json.dumps(parameters['rx'])
663 #self.s_time = parameters['s_time']
782 #self.s_time = parameters['s_time']
664 #self.e_time = parameters['e_time']
783 #self.e_time = parameters['e_time']
665 self.ues = json.dumps(parameters['ues'])
784 self.ues = json.dumps(parameters['ues'])
666 self.only_rx = json.dumps(parameters['only_rx'])
785 self.only_rx = json.dumps(parameters['only_rx'])
667 self.save()
786 self.save()
668
787
669
788
670 def clone(self, **kwargs):
789 def clone(self, **kwargs):
671
790
672 self.pk = None
791 self.pk = None
673 self.id = None
792 self.id = None
674 for attr, value in kwargs.items():
793 for attr, value in kwargs.items():
675 setattr(self, attr, value)
794 setattr(self, attr, value)
676
795
677 self.save()
796 self.save()
678
797
679 return self
798 return self
680
799
681
800
682 def module_6bits(self, module):
801 def module_6bits(self, module):
683 """
802 """
684 This function reads antenna pattern and choose 6bits (upbits-downbits) for one abs module
803 This function reads antenna pattern and choose 6bits (upbits-downbits) for one abs module
685 """
804 """
686 module += 1
805 module += 1
687 if module > 64:
806 if module > 64:
688 beam_bits = ""
807 beam_bits = ""
689 return beam_bits
808 return beam_bits
690
809
691 data = ast.literal_eval(self.antenna)
810 data = ast.literal_eval(self.antenna)
692 up_data = data['antenna_up']
811 up_data = data['antenna_up']
693 down_data = data['antenna_down']
812 down_data = data['antenna_down']
694
813
695 pos = ip2position(module)
814 pos = ip2position(module)
696 up_value = up_data[pos[0]][pos[1]]
815 up_value = up_data[pos[0]][pos[1]]
697 down_value = down_data[pos[0]][pos[1]]
816 down_value = down_data[pos[0]][pos[1]]
698
817
699 up_bits = up_conv_bits(up_value)
818 up_bits = up_conv_bits(up_value)
700 down_bits = down_conv_bits(down_value)
819 down_bits = down_conv_bits(down_value)
701 beam_bits = up_bits+down_bits
820 beam_bits = up_bits+down_bits
702
821
703 return beam_bits
822 return beam_bits
704
823
705
824
706 @property
825 @property
707 def get_upvalues(self):
826 def get_upvalues(self):
708 """
827 """
709 This function reads antenna pattern and show the up-value of one abs module
828 This function reads antenna pattern and show the up-value of one abs module
710 """
829 """
711
830
712 data = ast.literal_eval(self.antenna)
831 data = ast.literal_eval(self.antenna)
713 up_data = data['antenna_up']
832 up_data = data['antenna_up']
714
833
715 up_values = []
834 up_values = []
716 for data in up_data:
835 for data in up_data:
717 for i in range(0,8):
836 for i in range(0,8):
718 up_values.append(data[i])
837 up_values.append(data[i])
719
838
720 return up_values
839 return up_values
721
840
722 @property
841 @property
723 def antenna_upvalues(self):
842 def antenna_upvalues(self):
724 """
843 """
725 This function reads antenna pattern and show the up - values of one abs beam
844 This function reads antenna pattern and show the up - values of one abs beam
726 in a particular order
845 in a particular order
727 """
846 """
728 data = ast.literal_eval(self.antenna)
847 data = ast.literal_eval(self.antenna)
729 up_data = data['antenna_up']
848 up_data = data['antenna_up']
730
849
731 return up_data
850 return up_data
732
851
733 @property
852 @property
734 def antenna_downvalues(self):
853 def antenna_downvalues(self):
735 """
854 """
736 This function reads antenna pattern and show the down - values of one abs beam
855 This function reads antenna pattern and show the down - values of one abs beam
737 in a particular order
856 in a particular order
738 """
857 """
739 data = ast.literal_eval(self.antenna)
858 data = ast.literal_eval(self.antenna)
740 down_data = data['antenna_down']
859 down_data = data['antenna_down']
741
860
742 return down_data
861 return down_data
743
862
744 @property
863 @property
745 def get_downvalues(self):
864 def get_downvalues(self):
746 """
865 """
747 This function reads antenna pattern and show the down-value of one abs module
866 This function reads antenna pattern and show the down-value of one abs module
748 """
867 """
749
868
750 data = ast.literal_eval(self.antenna)
869 data = ast.literal_eval(self.antenna)
751 down_data = data['antenna_down']
870 down_data = data['antenna_down']
752
871
753 down_values = []
872 down_values = []
754 for data in down_data:
873 for data in down_data:
755 for i in range(0,8):
874 for i in range(0,8):
756 down_values.append(data[i])
875 down_values.append(data[i])
757
876
758 return down_values
877 return down_values
759
878
760 @property
879 @property
761 def get_up_ues(self):
880 def get_up_ues(self):
762 """
881 """
763 This function shows the up-ues-value of one beam
882 This function shows the up-ues-value of one beam
764 """
883 """
765 data = ast.literal_eval(self.ues)
884 data = ast.literal_eval(self.ues)
766 up_ues = data['up']
885 up_ues = data['up']
767
886
768 return up_ues
887 return up_ues
769
888
770 @property
889 @property
771 def get_down_ues(self):
890 def get_down_ues(self):
772 """
891 """
773 This function shows the down-ues-value of one beam
892 This function shows the down-ues-value of one beam
774 """
893 """
775 data = ast.literal_eval(self.ues)
894 data = ast.literal_eval(self.ues)
776 down_ues = data['down']
895 down_ues = data['down']
777
896
778 return down_ues
897 return down_ues
779
898
780 @property
899 @property
781 def get_up_onlyrx(self):
900 def get_up_onlyrx(self):
782 """
901 """
783 This function shows the up-onlyrx-value of one beam
902 This function shows the up-onlyrx-value of one beam
784 """
903 """
785 data = json.loads(self.only_rx)
904 data = json.loads(self.only_rx)
786 up_onlyrx = data['up']
905 up_onlyrx = data['up']
787
906
788 return up_onlyrx
907 return up_onlyrx
789
908
790 @property
909 @property
791 def get_down_onlyrx(self):
910 def get_down_onlyrx(self):
792 """
911 """
793 This function shows the down-onlyrx-value of one beam
912 This function shows the down-onlyrx-value of one beam
794 """
913 """
795 data = json.loads(self.only_rx)
914 data = json.loads(self.only_rx)
796 down_onlyrx = data['down']
915 down_onlyrx = data['down']
797
916
798 return down_onlyrx
917 return down_onlyrx
799
918
800 @property
919 @property
801 def get_tx(self):
920 def get_tx(self):
802 """
921 """
803 This function shows the tx-values of one beam
922 This function shows the tx-values of one beam
804 """
923 """
805 data = json.loads(self.tx)
924 data = json.loads(self.tx)
806
925
807 return data
926 return data
808
927
809 @property
928 @property
810 def get_uptx(self):
929 def get_uptx(self):
811 """
930 """
812 This function shows the up-tx-values of one beam
931 This function shows the up-tx-values of one beam
813 """
932 """
814 data = json.loads(self.tx)
933 data = json.loads(self.tx)
815 up_data = data['up']
934 up_data = data['up']
816
935
817 up_values = []
936 up_values = []
818 for data in up_data:
937 for data in up_data:
819 for i in range(0,8):
938 for i in range(0,8):
820 up_values.append(data[i])
939 up_values.append(data[i])
821
940
822 return up_values
941 return up_values
823
942
824 @property
943 @property
825 def get_downtx(self):
944 def get_downtx(self):
826 """
945 """
827 This function shows the down-tx-values of one beam
946 This function shows the down-tx-values of one beam
828 """
947 """
829 data = json.loads(self.tx)
948 data = json.loads(self.tx)
830 down_data = data['down']
949 down_data = data['down']
831
950
832 down_values = []
951 down_values = []
833 for data in down_data:
952 for data in down_data:
834 for i in range(0,8):
953 for i in range(0,8):
835 down_values.append(data[i])
954 down_values.append(data[i])
836
955
837 return down_values
956 return down_values
838
957
839
958
840
959
841 @property
960 @property
842 def get_rx(self):
961 def get_rx(self):
843 """
962 """
844 This function shows the rx-values of one beam
963 This function shows the rx-values of one beam
845 """
964 """
846 data = json.loads(self.rx)
965 data = json.loads(self.rx)
847
966
848 return data
967 return data
849
968
850 @property
969 @property
851 def get_uprx(self):
970 def get_uprx(self):
852 """
971 """
853 This function shows the up-rx-values of one beam
972 This function shows the up-rx-values of one beam
854 """
973 """
855 data = json.loads(self.rx)
974 data = json.loads(self.rx)
856 up_data = data['up']
975 up_data = data['up']
857
976
858 up_values = []
977 up_values = []
859 for data in up_data:
978 for data in up_data:
860 for i in range(0,8):
979 for i in range(0,8):
861 up_values.append(data[i])
980 up_values.append(data[i])
862
981
863 return up_values
982 return up_values
864
983
865 @property
984 @property
866 def get_downrx(self):
985 def get_downrx(self):
867 """
986 """
868 This function shows the down-rx-values of one beam
987 This function shows the down-rx-values of one beam
869 """
988 """
870 data = json.loads(self.rx)
989 data = json.loads(self.rx)
871 down_data = data['down']
990 down_data = data['down']
872
991
873 down_values = []
992 down_values = []
874 for data in down_data:
993 for data in down_data:
875 for i in range(0,8):
994 for i in range(0,8):
876 down_values.append(data[i])
995 down_values.append(data[i])
877
996
878 return down_values
997 return down_values
@@ -1,19 +1,21
1 {% extends "dev_conf_edit.html" %}
1 {% extends "dev_conf_edit.html" %}
2
2
3 {% load bootstrap4 %}
3 {% load bootstrap4 %}
4 {% load static %}
4 {% load static %}
5 {% load main_tags %}
5 {% load main_tags %}
6
6
7
8
7 {% block content %}
9 {% block content %}
8 <form class="form" method="post">
10 <form class="form" method="post">
9 {% csrf_token %}
11 {% csrf_token %}
10 {#% bootstrap_form form layout='horizontal' size='medium' %#}
12 {#% bootstrap_form form layout='horizontal' size='medium' %#}
11 {{form}}
13 {{form}}
12 <div style="clear: both;"></div>
14 <div style="clear: both;"></div>
13 <br>
15 <br>
14 <div class="pull-right">
16 <div class="pull-right">
15 <button type="button" class="btn btn-primary" onclick="{% if previous %}window.location.replace('{{ previous }}');{% else %}history.go(-1);{% endif %}">Cancel</button>
17 <button type="button" class="btn btn-primary" onclick="{% if previous %}window.location.replace('{{ previous }}');{% else %}history.go(-1);{% endif %}">Cancel</button>
16 <button type="submit" class="btn btn-primary">{{button}}</button>
18 <button type="submit" class="btn btn-primary">{{button}}</button>
17 </div>
19 </div>
18 </form>
20 </form>
19 {% endblock %}
21 {% endblock %}
@@ -1,42 +1,42
1 {% load bootstrap4 %}
1 {% load bootstrap4 %}
2
2
3 {% if abs_beams %}
3 {% if abs_beams %}
4
4
5 <div class="pull-right">
5 <div class="pull-right">
6 <button id="bt_toggle" type="button" class="btn btn-default btn-sm" >
6 <button id="bt_toggle" type="button" class="btn btn-default btn-sm" >
7 Expand/Collapse
7 Expand/Collapse
8 </button>
8 </button>
9 </div><br><br>
9 </div><br><br>
10
10
11
11
12 {% for beam in abs_beams %}
12 {% for beam in abs_beams %}
13 <div class="panel panel-default" id="panel-{{beam.id}}">
13 <div class="panel panel-default" id="panel-{{beam.id}}">
14 <div class="panel-heading" role="tab" id="heading{{beam.id}}">
14 <div class="panel-heading" role="tab" id="heading{{beam.id}}">
15 <h4 class="panel-title">
15 <h4 class="panel-title">
16 <a role="button" onclick="beam_values(beam.id)" data-toggle="collapse" data-parent="#div_lines" href="#collapse{{beam.id}}" aria-expanded="true" aria-controls="collapse{{beam.id}}">
16 <a role="button" onclick="beam_values(beam.id)" data-toggle="collapse" data-parent="#div_lines" href="#collapse{{beam.id}}" aria-expanded="true" aria-controls="collapse{{beam.id}}">
17 #{{forloop.counter}}: {{beam.name}}
17 #{{forloop.counter}}: {{beam.name}}
18 </a>
18 </a>
19 {% if edit %}
19 {% if edit %}
20 <button id="bt_remove_beam-{{ beam.id }}" type="button" class="btn-xs btn-default pull-right" name="bt_remove_beam" value="{{beam.pk}}"><span class="far fa-trash-alt" aria-hidden="true"></span></button>
20 <button id="bt_remove_beam-{{ beam.id }}" type="button" class="btn-xs btn-default pull-right" name="bt_remove_beam" value="{{beam.pk}}"><span class="far fa-trash-alt" aria-hidden="true"></span></button>
21 <button id="bt_edit_beam-{{ beam.id }}" type="button" class="btn-xs btn-default pull-right" name="bt_edit_beam" value="{{beam.pk}}"><span class="fas fa-pencil" aria-hidden="true"></span></button>
21 <button id="bt_edit_beam-{{ beam.id }}" type="button" class="btn-xs btn-default pull-right" name="bt_edit_beam" value="{{beam.pk}}"><span class="fa fa-pencil" aria-hidden="true"></span></button>
22 {% endif %}
22 {% endif %}
23 </h4>
23 </h4>
24 </div>
24 </div>
25 <div id="collapse{{beam.id}}" class="panel-collapse collapse" role="tabpanel" aria-labelledby="heading{{beam.id}}">
25 <div id="collapse{{beam.id}}" class="panel-collapse collapse" role="tabpanel" aria-labelledby="heading{{beam.id}}">
26 <div class="panel-body">
26 <div class="panel-body">
27 {% include "abs_beam_values.html" %}
27 {% include "abs_beam_values.html" %}
28 {# bootstrap_form beam.form layout='horizontal' size='small' #}
28 {# bootstrap_form beam.form layout='horizontal' size='small' #}
29 <br>
29 <br>
30
30
31 <br>
31 <br>
32 <!--<button type="button" class="btn btn-sm btn-default" style="margin-left: 10px" name="bt_add_subline" value="{{line.pk}}">Add {{line.line_type.name}}</button>-->
32 <!--<button type="button" class="btn btn-sm btn-default" style="margin-left: 10px" name="bt_add_subline" value="{{line.pk}}">Add {{line.line_type.name}}</button>-->
33 {# endif #}
33 {# endif #}
34
34
35 </div>
35 </div>
36 </div>
36 </div>
37 </div>
37 </div>
38 {% endfor%}
38 {% endfor%}
39
39
40 {% else %}
40 {% else %}
41 <p style="color:#b4bcc2; margin-left: 5%;"><i>No Beams...</i></p>
41 <p style="color:#b4bcc2; margin-left: 5%;"><i>No Beams...</i></p>
42 {% endif %}
42 {% endif %}
@@ -1,336 +1,339
1 {% extends "dev_conf.html" %} {% load static %} {% load bootstrap4 %} {% load main_tags %}
1 {% extends "dev_conf.html" %} {% load static %} {% load bootstrap4 %} {% load main_tags %}
2 {% block extra-head %}
2 {% block extra-head %}
3 <style>
3 <style>
4 .abs {
4 .abs {
5 width: auto;
5 width: auto;
6 display: inline-block;
6 display: inline-block;
7 text-align: center;
7 text-align: center;
8 }
8 }
9
9
10 .abs td {
10 .abs td {
11 padding: 4px;
11 padding: 4px;
12 }
12 }
13
13
14 .module td {
14 .module td {
15 padding: 4px 15px 4px 15px;
15 padding: 4px 15px 4px 15px;
16 font-weight: bold;
16 font-weight: bold;
17 border: 1px solid
17 border: 1px solid
18 }
18 }
19
19
20 .legend {
20 .legend {
21 margin-left: 15px;
21 margin-left: 15px;
22 display: inline-block;
22 display: inline-block;
23 border: 2px solid;
23 border: 2px solid;
24 vertical-align: top;
24 vertical-align: top;
25 }
25 }
26
26
27 .legend th {
27 .legend th {
28 border-bottom: 1px dashed;
28 border-bottom: 1px dashed;
29 font-weight: bold;
29 font-weight: bold;
30 vertical-align: center;
30 vertical-align: center;
31 text-align: center;
31 text-align: center;
32 }
32 }
33
33
34 .legend td {
34 .legend td {
35 padding: 2px;
35 padding: 2px;
36 text-align: center;
36 text-align: center;
37 font-weight: bold;
37 font-weight: bold;
38 }
38 }
39
39
40 </style>
40 </style>
41 {% endblock %}
41 {% endblock %}
42 {% block extra-menu-actions %}
42 {% block extra-menu-actions %}
43 <li>
43 <li>
44 <a href="{{ dev_conf.get_absolute_url_plot }}" target="_blank">
44 <a href="{{ dev_conf.get_absolute_url_plot }}" target="_blank">
45 <span class="far fa-image" aria-hidden="true"></span> View Patterns </a>
45 <span class="far fa-image" aria-hidden="true"></span> View Patterns </a>
46 </li>
46 </li>
47 {% endblock %}
47 {% endblock %}
48 {% block extra-content %}
48 {% block extra-content %}
49 {% if beams %}
49 {% if beams %}
50 <h4>Beams:</h4>
50 <h4>Beams:</h4>
51 <div class="container">
51 <div class="container">
52 <ul class="nav nav-pills">
52 <ul class="nav nav-pills">
53 {% for beam in beams %}
53 {% for beam in beams %}
54 <li {%if beam.pk == active_beam %} class="active" {% endif %}>
54 <li class="nav-item">
55 <a data-toggle="pill" href="#menu{{forloop.counter}}">{{forloop.counter}}</a>
55 <a {%if beam.pk == active_beam %} class="nav-link active" {% else %} class="nav-link" {% endif %} data-toggle="pill" href="#menu{{forloop.counter}}">{{forloop.counter}}</a>
56 </li>
56 </li>
57 {% endfor %}
57 {% endfor %}
58 </ul>
58 </ul>
59
59
60 <div class="tab-content">
60 <div class="tab-content">
61 {% for beam in beams %}
61 {% for beam in beams %}
62 <div id="menu{{forloop.counter}}" class="tab-pane fade {%if beam.pk == active_beam %}active in{% endif %}">
62 <div id="menu{{forloop.counter}}" class="tab-pane fade {%if beam.pk == active_beam %}in active show{% endif %}">
63 <h3>{%if beam.pk == active_beam %}Active Beam: {%endif%}{{beam.name}}</h3>
63 <h3>{%if beam.pk == active_beam %}Active Beam: {%endif%}{{beam.name}}</h3>
64 <table id="abs_pattern{{forloop.counter}}" class="abs">
64 <table id="abs_pattern{{forloop.counter}}" class="abs">
65 <tr>
65 <tr>
66 <td>
66 <td>
67 <b>North Quarter</b>
67 <b>North Quarter</b>
68 <table class="module">
68 <table class="module">
69 <tr>
69 <tr>
70 <td title='{{module_messages.1}}'><span {%if beam.pk == active_beam %} {{color_status.1}} {%endif%}>{{beam.get_upvalues.0}}</span></td>
70 <td title='{{module_messages.1}}'><span {%if beam.pk == active_beam %} {{color_status.1}} {%endif%}>{{beam.get_upvalues.0}}</span></td>
71 <td title='{{module_messages.2}}'><span {%if beam.pk == active_beam %} {{color_status.2}} {%endif%}>{{beam.get_upvalues.1}}</span></td>
71 <td title='{{module_messages.2}}'><span {%if beam.pk == active_beam %} {{color_status.2}} {%endif%}>{{beam.get_upvalues.1}}</span></td>
72 <td title='{{module_messages.3}}'><span {%if beam.pk == active_beam %} {{color_status.3}} {%endif%}>{{beam.get_upvalues.2}}</span></td>
72 <td title='{{module_messages.3}}'><span {%if beam.pk == active_beam %} {{color_status.3}} {%endif%}>{{beam.get_upvalues.2}}</span></td>
73 <td title='{{module_messages.4}}'><span {%if beam.pk == active_beam %} {{color_status.4}} {%endif%}>{{beam.get_upvalues.3}}</span></td>
73 <td title='{{module_messages.4}}'><span {%if beam.pk == active_beam %} {{color_status.4}} {%endif%}>{{beam.get_upvalues.3}}</span></td>
74 </tr>
74 </tr>
75 <tr>
75 <tr>
76 <td title='{{module_messages.1}}'><span {%if beam.pk == active_beam %} {{color_status.1}} {%endif%}>{{beam.get_downvalues.0}}</span></td>
76 <td title='{{module_messages.1}}'><span {%if beam.pk == active_beam %} {{color_status.1}} {%endif%}>{{beam.get_downvalues.0}}</span></td>
77 <td title='{{module_messages.2}}'><span {%if beam.pk == active_beam %} {{color_status.2}} {%endif%}>{{beam.get_downvalues.1}}</span></td>
77 <td title='{{module_messages.2}}'><span {%if beam.pk == active_beam %} {{color_status.2}} {%endif%}>{{beam.get_downvalues.1}}</span></td>
78 <td title='{{module_messages.3}}'> <span {%if beam.pk == active_beam %} {{color_status.3}} {%endif%}>{{beam.get_downvalues.2}}</span></td>
78 <td title='{{module_messages.3}}'> <span {%if beam.pk == active_beam %} {{color_status.3}} {%endif%}>{{beam.get_downvalues.2}}</span></td>
79 <td title='{{module_messages.4}}'> <span {%if beam.pk == active_beam %} {{color_status.4}} {%endif%}>{{beam.get_downvalues.3}}</span></td>
79 <td title='{{module_messages.4}}'> <span {%if beam.pk == active_beam %} {{color_status.4}} {%endif%}>{{beam.get_downvalues.3}}</span></td>
80 </tr>
80 </tr>
81 <tr>
81 <tr>
82 <td title='{{module_messages.9}}'> <span {%if beam.pk == active_beam %} {{color_status.9}} {%endif%}>{{beam.get_upvalues.8}}</span></td>
82 <td title='{{module_messages.9}}'> <span {%if beam.pk == active_beam %} {{color_status.9}} {%endif%}>{{beam.get_upvalues.8}}</span></td>
83 <td title='{{module_messages.10}}'><span {%if beam.pk == active_beam %} {{color_status.10}} {%endif%}>{{beam.get_upvalues.9}}</span></td>
83 <td title='{{module_messages.10}}'><span {%if beam.pk == active_beam %} {{color_status.10}} {%endif%}>{{beam.get_upvalues.9}}</span></td>
84 <td title='{{module_messages.11}}'><span {%if beam.pk == active_beam %} {{color_status.11}} {%endif%}>{{beam.get_upvalues.10}}</span></td>
84 <td title='{{module_messages.11}}'><span {%if beam.pk == active_beam %} {{color_status.11}} {%endif%}>{{beam.get_upvalues.10}}</span></td>
85 <td title='{{module_messages.12}}'><span {%if beam.pk == active_beam %} {{color_status.12}} {%endif%}>{{beam.get_upvalues.11}}</span></td>
85 <td title='{{module_messages.12}}'><span {%if beam.pk == active_beam %} {{color_status.12}} {%endif%}>{{beam.get_upvalues.11}}</span></td>
86 </tr>
86 </tr>
87 <tr>
87 <tr>
88 <td title='{{module_messages.9}}'> <span {%if beam.pk == active_beam %} {{color_status.9}} {%endif%}>{{beam.get_downvalues.8}}</span></td>
88 <td title='{{module_messages.9}}'> <span {%if beam.pk == active_beam %} {{color_status.9}} {%endif%}>{{beam.get_downvalues.8}}</span></td>
89 <td title='{{module_messages.10}}'><span {%if beam.pk == active_beam %} {{color_status.10}} {%endif%}>{{beam.get_downvalues.9}}</span></td>
89 <td title='{{module_messages.10}}'><span {%if beam.pk == active_beam %} {{color_status.10}} {%endif%}>{{beam.get_downvalues.9}}</span></td>
90 <td title='{{module_messages.11}}'><span {%if beam.pk == active_beam %} {{color_status.11}} {%endif%}>{{beam.get_downvalues.10}}</span></td>
90 <td title='{{module_messages.11}}'><span {%if beam.pk == active_beam %} {{color_status.11}} {%endif%}>{{beam.get_downvalues.10}}</span></td>
91 <td title='{{module_messages.12}}'><span {%if beam.pk == active_beam %} {{color_status.12}} {%endif%}>{{beam.get_downvalues.11}}</span></td>
91 <td title='{{module_messages.12}}'><span {%if beam.pk == active_beam %} {{color_status.12}} {%endif%}>{{beam.get_downvalues.11}}</span></td>
92 </tr>
92 </tr>
93 <tr>
93 <tr>
94 <td title='{{module_messages.17}}'><span {%if beam.pk == active_beam %} {{color_status.17}} {%endif%}>{{beam.get_upvalues.16}}</span></td>
94 <td title='{{module_messages.17}}'><span {%if beam.pk == active_beam %} {{color_status.17}} {%endif%}>{{beam.get_upvalues.16}}</span></td>
95 <td title='{{module_messages.18}}'><span {%if beam.pk == active_beam %} {{color_status.18}} {%endif%}>{{beam.get_upvalues.17}}</span></td>
95 <td title='{{module_messages.18}}'><span {%if beam.pk == active_beam %} {{color_status.18}} {%endif%}>{{beam.get_upvalues.17}}</span></td>
96 <td title='{{module_messages.19}}'><span {%if beam.pk == active_beam %} {{color_status.19}} {%endif%}>{{beam.get_upvalues.18}}</span></td>
96 <td title='{{module_messages.19}}'><span {%if beam.pk == active_beam %} {{color_status.19}} {%endif%}>{{beam.get_upvalues.18}}</span></td>
97 <td title='{{module_messages.20}}'><span {%if beam.pk == active_beam %} {{color_status.20}} {%endif%}>{{beam.get_upvalues.19}}</span></td>
97 <td title='{{module_messages.20}}'><span {%if beam.pk == active_beam %} {{color_status.20}} {%endif%}>{{beam.get_upvalues.19}}</span></td>
98 </tr>
98 </tr>
99 <tr>
99 <tr>
100 <td title='{{module_messages.17}}'><span {%if beam.pk == active_beam %} {{color_status.17}} {%endif%}>{{beam.get_downvalues.16}}</span></td>
100 <td title='{{module_messages.17}}'><span {%if beam.pk == active_beam %} {{color_status.17}} {%endif%}>{{beam.get_downvalues.16}}</span></td>
101 <td title='{{module_messages.18}}'><span {%if beam.pk == active_beam %} {{color_status.18}} {%endif%}>{{beam.get_downvalues.17}}</span></td>
101 <td title='{{module_messages.18}}'><span {%if beam.pk == active_beam %} {{color_status.18}} {%endif%}>{{beam.get_downvalues.17}}</span></td>
102 <td title='{{module_messages.19}}'><span {%if beam.pk == active_beam %} {{color_status.19}} {%endif%}>{{beam.get_downvalues.18}}</span></td>
102 <td title='{{module_messages.19}}'><span {%if beam.pk == active_beam %} {{color_status.19}} {%endif%}>{{beam.get_downvalues.18}}</span></td>
103 <td title='{{module_messages.20}}'><span {%if beam.pk == active_beam %} {{color_status.20}} {%endif%}>{{beam.get_downvalues.19}}</span></td>
103 <td title='{{module_messages.20}}'><span {%if beam.pk == active_beam %} {{color_status.20}} {%endif%}>{{beam.get_downvalues.19}}</span></td>
104 </tr>
104 </tr>
105 <tr>
105 <tr>
106 <td title='{{module_messages.25}}'><span {%if beam.pk == active_beam %} {{color_status.25}} {%endif%}>{{beam.get_upvalues.24}}</span></td>
106 <td title='{{module_messages.25}}'><span {%if beam.pk == active_beam %} {{color_status.25}} {%endif%}>{{beam.get_upvalues.24}}</span></td>
107 <td title='{{module_messages.26}}'><span {%if beam.pk == active_beam %} {{color_status.26}} {%endif%}>{{beam.get_upvalues.25}}</span></td>
107 <td title='{{module_messages.26}}'><span {%if beam.pk == active_beam %} {{color_status.26}} {%endif%}>{{beam.get_upvalues.25}}</span></td>
108 <td title='{{module_messages.27}}'><span {%if beam.pk == active_beam %} {{color_status.27}} {%endif%}>{{beam.get_upvalues.26}}</span></td>
108 <td title='{{module_messages.27}}'><span {%if beam.pk == active_beam %} {{color_status.27}} {%endif%}>{{beam.get_upvalues.26}}</span></td>
109 <td title='{{module_messages.28}}'><span {%if beam.pk == active_beam %} {{color_status.28}} {%endif%}>{{beam.get_upvalues.27}}</span></td>
109 <td title='{{module_messages.28}}'><span {%if beam.pk == active_beam %} {{color_status.28}} {%endif%}>{{beam.get_upvalues.27}}</span></td>
110 </tr>
110 </tr>
111 <tr>
111 <tr>
112 <td title='{{module_messages.25}}'><span {%if beam.pk == active_beam %} {{color_status.25}} {%endif%}>{{beam.get_downvalues.24}}</span></td>
112 <td title='{{module_messages.25}}'><span {%if beam.pk == active_beam %} {{color_status.25}} {%endif%}>{{beam.get_downvalues.24}}</span></td>
113 <td title='{{module_messages.26}}'><span {%if beam.pk == active_beam %} {{color_status.26}} {%endif%}>{{beam.get_downvalues.25}}</span></td>
113 <td title='{{module_messages.26}}'><span {%if beam.pk == active_beam %} {{color_status.26}} {%endif%}>{{beam.get_downvalues.25}}</span></td>
114 <td title='{{module_messages.27}}'><span {%if beam.pk == active_beam %} {{color_status.27}} {%endif%}>{{beam.get_downvalues.26}}</span></td>
114 <td title='{{module_messages.27}}'><span {%if beam.pk == active_beam %} {{color_status.27}} {%endif%}>{{beam.get_downvalues.26}}</span></td>
115 <td title='{{module_messages.28}}'><span {%if beam.pk == active_beam %} {{color_status.28}} {%endif%}>{{beam.get_downvalues.27}}</span></td>
115 <td title='{{module_messages.28}}'><span {%if beam.pk == active_beam %} {{color_status.28}} {%endif%}>{{beam.get_downvalues.27}}</span></td>
116 </tr>
116 </tr>
117 </table>
117 </table>
118 </td>
118 </td>
119 <td>
119 <td>
120 <b>East Quarter</b>
120 <b>East Quarter</b>
121 <table class="module">
121 <table class="module">
122 <tr>
122 <tr>
123 <td title='{{module_messages.5}}'> <span {%if beam.pk == active_beam %} {{color_status.5}} {%endif%}>{{beam.get_upvalues.4}}</span></td>
123 <td title='{{module_messages.5}}'> <span {%if beam.pk == active_beam %} {{color_status.5}} {%endif%}>{{beam.get_upvalues.4}}</span></td>
124 <td title='{{module_messages.6}}'> <span {%if beam.pk == active_beam %} {{color_status.6}} {%endif%}>{{beam.get_upvalues.5}}</span></td>
124 <td title='{{module_messages.6}}'> <span {%if beam.pk == active_beam %} {{color_status.6}} {%endif%}>{{beam.get_upvalues.5}}</span></td>
125 <td title='{{module_messages.7}}'> <span {%if beam.pk == active_beam %} {{color_status.7}} {%endif%}>{{beam.get_upvalues.6}}</span></td>
125 <td title='{{module_messages.7}}'> <span {%if beam.pk == active_beam %} {{color_status.7}} {%endif%}>{{beam.get_upvalues.6}}</span></td>
126 <td title='{{module_messages.8}}'> <span {%if beam.pk == active_beam %} {{color_status.8}} {%endif%}>{{beam.get_upvalues.7}}</span></td>
126 <td title='{{module_messages.8}}'> <span {%if beam.pk == active_beam %} {{color_status.8}} {%endif%}>{{beam.get_upvalues.7}}</span></td>
127 </tr>
127 </tr>
128 <tr>
128 <tr>
129 <td title='{{module_messages.5}}'> <span {%if beam.pk == active_beam %} {{color_status.5}} {%endif%}>{{beam.get_downvalues.4}}</span></td>
129 <td title='{{module_messages.5}}'> <span {%if beam.pk == active_beam %} {{color_status.5}} {%endif%}>{{beam.get_downvalues.4}}</span></td>
130 <td title='{{module_messages.6}}'> <span {%if beam.pk == active_beam %} {{color_status.6}} {%endif%}>{{beam.get_downvalues.5}}</span></td>
130 <td title='{{module_messages.6}}'> <span {%if beam.pk == active_beam %} {{color_status.6}} {%endif%}>{{beam.get_downvalues.5}}</span></td>
131 <td title='{{module_messages.7}}'> <span {%if beam.pk == active_beam %} {{color_status.7}} {%endif%}>{{beam.get_downvalues.6}}</span></td>
131 <td title='{{module_messages.7}}'> <span {%if beam.pk == active_beam %} {{color_status.7}} {%endif%}>{{beam.get_downvalues.6}}</span></td>
132 <td title='{{module_messages.8}}'> <span {%if beam.pk == active_beam %} {{color_status.8}} {%endif%}>{{beam.get_downvalues.7}}</span></td>
132 <td title='{{module_messages.8}}'> <span {%if beam.pk == active_beam %} {{color_status.8}} {%endif%}>{{beam.get_downvalues.7}}</span></td>
133 </tr>
133 </tr>
134 <tr>
134 <tr>
135 <td title='{{module_messages.13}}'><span {%if beam.pk == active_beam %} {{color_status.13}} {%endif%}>{{beam.get_upvalues.12}}</span></td>
135 <td title='{{module_messages.13}}'><span {%if beam.pk == active_beam %} {{color_status.13}} {%endif%}>{{beam.get_upvalues.12}}</span></td>
136 <td title='{{module_messages.14}}'><span {%if beam.pk == active_beam %} {{color_status.14}} {%endif%}>{{beam.get_upvalues.13}}</span></td>
136 <td title='{{module_messages.14}}'><span {%if beam.pk == active_beam %} {{color_status.14}} {%endif%}>{{beam.get_upvalues.13}}</span></td>
137 <td title='{{module_messages.15}}'><span {%if beam.pk == active_beam %} {{color_status.15}} {%endif%}>{{beam.get_upvalues.14}}</span></td>
137 <td title='{{module_messages.15}}'><span {%if beam.pk == active_beam %} {{color_status.15}} {%endif%}>{{beam.get_upvalues.14}}</span></td>
138 <td title='{{module_messages.16}}'><span {%if beam.pk == active_beam %} {{color_status.16}} {%endif%}>{{beam.get_upvalues.15}}</span></td>
138 <td title='{{module_messages.16}}'><span {%if beam.pk == active_beam %} {{color_status.16}} {%endif%}>{{beam.get_upvalues.15}}</span></td>
139 </tr>
139 </tr>
140 <tr>
140 <tr>
141 <td title='{{module_messages.13}}'><span {%if beam.pk == active_beam %} {{color_status.13}} {%endif%}>{{beam.get_downvalues.12}}</span></td>
141 <td title='{{module_messages.13}}'><span {%if beam.pk == active_beam %} {{color_status.13}} {%endif%}>{{beam.get_downvalues.12}}</span></td>
142 <td title='{{module_messages.14}}'><span {%if beam.pk == active_beam %} {{color_status.14}} {%endif%}>{{beam.get_downvalues.13}}</span></td>
142 <td title='{{module_messages.14}}'><span {%if beam.pk == active_beam %} {{color_status.14}} {%endif%}>{{beam.get_downvalues.13}}</span></td>
143 <td title='{{module_messages.15}}'><span {%if beam.pk == active_beam %} {{color_status.15}} {%endif%}>{{beam.get_downvalues.14}}</span></td>
143 <td title='{{module_messages.15}}'><span {%if beam.pk == active_beam %} {{color_status.15}} {%endif%}>{{beam.get_downvalues.14}}</span></td>
144 <td title='{{module_messages.16}}'><span {%if beam.pk == active_beam %} {{color_status.16}} {%endif%}>{{beam.get_downvalues.15}}</span></td>
144 <td title='{{module_messages.16}}'><span {%if beam.pk == active_beam %} {{color_status.16}} {%endif%}>{{beam.get_downvalues.15}}</span></td>
145 </tr>
145 </tr>
146 <tr>
146 <tr>
147 <td title='{{module_messages.21}}'><span {%if beam.pk == active_beam %} {{color_status.21}} {%endif%}>{{beam.get_upvalues.20}}</span></td>
147 <td title='{{module_messages.21}}'><span {%if beam.pk == active_beam %} {{color_status.21}} {%endif%}>{{beam.get_upvalues.20}}</span></td>
148 <td title='{{module_messages.22}}'><span {%if beam.pk == active_beam %} {{color_status.22}} {%endif%}>{{beam.get_upvalues.21}}</span></td>
148 <td title='{{module_messages.22}}'><span {%if beam.pk == active_beam %} {{color_status.22}} {%endif%}>{{beam.get_upvalues.21}}</span></td>
149 <td title='{{module_messages.23}}'><span {%if beam.pk == active_beam %} {{color_status.23}} {%endif%}>{{beam.get_upvalues.22}}</span></td>
149 <td title='{{module_messages.23}}'><span {%if beam.pk == active_beam %} {{color_status.23}} {%endif%}>{{beam.get_upvalues.22}}</span></td>
150 <td title='{{module_messages.24}}'><span {%if beam.pk == active_beam %} {{color_status.24}} {%endif%}>{{beam.get_upvalues.23}}</span></td>
150 <td title='{{module_messages.24}}'><span {%if beam.pk == active_beam %} {{color_status.24}} {%endif%}>{{beam.get_upvalues.23}}</span></td>
151 </tr>
151 </tr>
152 <tr>
152 <tr>
153 <td title='{{module_messages.21}}'><span {%if beam.pk == active_beam %} {{color_status.21}} {%endif%}>{{beam.get_downvalues.20}}</span></td>
153 <td title='{{module_messages.21}}'><span {%if beam.pk == active_beam %} {{color_status.21}} {%endif%}>{{beam.get_downvalues.20}}</span></td>
154 <td title='{{module_messages.22}}'><span {%if beam.pk == active_beam %} {{color_status.22}} {%endif%}>{{beam.get_downvalues.21}}</span></td>
154 <td title='{{module_messages.22}}'><span {%if beam.pk == active_beam %} {{color_status.22}} {%endif%}>{{beam.get_downvalues.21}}</span></td>
155 <td title='{{module_messages.23}}'><span {%if beam.pk == active_beam %} {{color_status.23}} {%endif%}>{{beam.get_downvalues.22}}</span></td>
155 <td title='{{module_messages.23}}'><span {%if beam.pk == active_beam %} {{color_status.23}} {%endif%}>{{beam.get_downvalues.22}}</span></td>
156 <td title='{{module_messages.24}}'><span {%if beam.pk == active_beam %} {{color_status.24}} {%endif%}>{{beam.get_downvalues.23}}</span></td>
156 <td title='{{module_messages.24}}'><span {%if beam.pk == active_beam %} {{color_status.24}} {%endif%}>{{beam.get_downvalues.23}}</span></td>
157 </tr>
157 </tr>
158 <tr>
158 <tr>
159 <td title='{{module_messages.29}}'><span {%if beam.pk == active_beam %} {{color_status.29}} {%endif%}>{{beam.get_upvalues.28}}</span></td>
159 <td title='{{module_messages.29}}'><span {%if beam.pk == active_beam %} {{color_status.29}} {%endif%}>{{beam.get_upvalues.28}}</span></td>
160 <td title='{{module_messages.30}}'><span {%if beam.pk == active_beam %} {{color_status.30}} {%endif%}>{{beam.get_upvalues.29}}</span></td>
160 <td title='{{module_messages.30}}'><span {%if beam.pk == active_beam %} {{color_status.30}} {%endif%}>{{beam.get_upvalues.29}}</span></td>
161 <td title='{{module_messages.31}}'><span {%if beam.pk == active_beam %} {{color_status.31}} {%endif%}>{{beam.get_upvalues.30}}</span></td>
161 <td title='{{module_messages.31}}'><span {%if beam.pk == active_beam %} {{color_status.31}} {%endif%}>{{beam.get_upvalues.30}}</span></td>
162 <td title='{{module_messages.32}}'><span {%if beam.pk == active_beam %} {{color_status.32}} {%endif%}>{{beam.get_upvalues.31}}</span></td>
162 <td title='{{module_messages.32}}'><span {%if beam.pk == active_beam %} {{color_status.32}} {%endif%}>{{beam.get_upvalues.31}}</span></td>
163 </tr>
163 </tr>
164 <tr>
164 <tr>
165 <td title='{{module_messages.29}}'><span {%if beam.pk == active_beam %} {{color_status.29}} {%endif%}>{{beam.get_downvalues.28}}</span></td>
165 <td title='{{module_messages.29}}'><span {%if beam.pk == active_beam %} {{color_status.29}} {%endif%}>{{beam.get_downvalues.28}}</span></td>
166 <td title='{{module_messages.30}}'><span {%if beam.pk == active_beam %} {{color_status.30}} {%endif%}>{{beam.get_downvalues.29}}</span></td>
166 <td title='{{module_messages.30}}'><span {%if beam.pk == active_beam %} {{color_status.30}} {%endif%}>{{beam.get_downvalues.29}}</span></td>
167 <td title='{{module_messages.31}}'><span {%if beam.pk == active_beam %} {{color_status.31}} {%endif%}>{{beam.get_downvalues.30}}</span></td>
167 <td title='{{module_messages.31}}'><span {%if beam.pk == active_beam %} {{color_status.31}} {%endif%}>{{beam.get_downvalues.30}}</span></td>
168 <td title='{{module_messages.32}}'><span {%if beam.pk == active_beam %} {{color_status.32}} {%endif%}>{{beam.get_downvalues.31}}</span></td>
168 <td title='{{module_messages.32}}'><span {%if beam.pk == active_beam %} {{color_status.32}} {%endif%}>{{beam.get_downvalues.31}}</span></td>
169 </tr>
169 </tr>
170 </table>
170 </table>
171 </td>
171 </td>
172 </tr>
172 </tr>
173 <tr>
173 <tr>
174 <td>
174 <td>
175 <b>West Quarter</b>
175 <b>West Quarter</b>
176 <table class="module">
176 <table class="module">
177 <tr>
177 <tr>
178 <td title='{{module_messages.33}}'><span {%if beam.pk == active_beam %} {{color_status.33}} {%endif%}>{{beam.get_upvalues.32}}</span></td>
178 <td title='{{module_messages.33}}'><span {%if beam.pk == active_beam %} {{color_status.33}} {%endif%}>{{beam.get_upvalues.32}}</span></td>
179 <td title='{{module_messages.34}}'><span {%if beam.pk == active_beam %} {{color_status.34}} {%endif%}>{{beam.get_upvalues.33}}</span></td>
179 <td title='{{module_messages.34}}'><span {%if beam.pk == active_beam %} {{color_status.34}} {%endif%}>{{beam.get_upvalues.33}}</span></td>
180 <td title='{{module_messages.35}}'><span {%if beam.pk == active_beam %} {{color_status.35}} {%endif%}>{{beam.get_upvalues.34}}</span></td>
180 <td title='{{module_messages.35}}'><span {%if beam.pk == active_beam %} {{color_status.35}} {%endif%}>{{beam.get_upvalues.34}}</span></td>
181 <td title='{{module_messages.36}}'><span {%if beam.pk == active_beam %} {{color_status.36}} {%endif%}>{{beam.get_upvalues.35}}</span></td>
181 <td title='{{module_messages.36}}'><span {%if beam.pk == active_beam %} {{color_status.36}} {%endif%}>{{beam.get_upvalues.35}}</span></td>
182 </tr>
182 </tr>
183 <tr>
183 <tr>
184 <td title='{{module_messages.33}}'><span {%if beam.pk == active_beam %} {{color_status.33}} {%endif%}>{{beam.get_downvalues.32}}</span></td>
184 <td title='{{module_messages.33}}'><span {%if beam.pk == active_beam %} {{color_status.33}} {%endif%}>{{beam.get_downvalues.32}}</span></td>
185 <td title='{{module_messages.34}}'><span {%if beam.pk == active_beam %} {{color_status.34}} {%endif%}>{{beam.get_downvalues.33}}</span></td>
185 <td title='{{module_messages.34}}'><span {%if beam.pk == active_beam %} {{color_status.34}} {%endif%}>{{beam.get_downvalues.33}}</span></td>
186 <td title='{{module_messages.35}}'><span {%if beam.pk == active_beam %} {{color_status.35}} {%endif%}>{{beam.get_downvalues.34}}</span></td>
186 <td title='{{module_messages.35}}'><span {%if beam.pk == active_beam %} {{color_status.35}} {%endif%}>{{beam.get_downvalues.34}}</span></td>
187 <td title='{{module_messages.36}}'><span {%if beam.pk == active_beam %} {{color_status.36}} {%endif%}>{{beam.get_downvalues.35}}</span></td>
187 <td title='{{module_messages.36}}'><span {%if beam.pk == active_beam %} {{color_status.36}} {%endif%}>{{beam.get_downvalues.35}}</span></td>
188 </tr>
188 </tr>
189 <tr>
189 <tr>
190 <td title='{{module_messages.41}}'><span {%if beam.pk == active_beam %} {{color_status.41}} {%endif%}>{{beam.get_upvalues.40}}</span></td>
190 <td title='{{module_messages.41}}'><span {%if beam.pk == active_beam %} {{color_status.41}} {%endif%}>{{beam.get_upvalues.40}}</span></td>
191 <td title='{{module_messages.42}}'><span {%if beam.pk == active_beam %} {{color_status.42}} {%endif%}>{{beam.get_upvalues.41}}</span></td>
191 <td title='{{module_messages.42}}'><span {%if beam.pk == active_beam %} {{color_status.42}} {%endif%}>{{beam.get_upvalues.41}}</span></td>
192 <td title='{{module_messages.43}}'><span {%if beam.pk == active_beam %} {{color_status.43}} {%endif%}>{{beam.get_upvalues.42}}</span></td>
192 <td title='{{module_messages.43}}'><span {%if beam.pk == active_beam %} {{color_status.43}} {%endif%}>{{beam.get_upvalues.42}}</span></td>
193 <td title='{{module_messages.44}}'><span {%if beam.pk == active_beam %} {{color_status.44}} {%endif%}>{{beam.get_upvalues.43}}</span></td>
193 <td title='{{module_messages.44}}'><span {%if beam.pk == active_beam %} {{color_status.44}} {%endif%}>{{beam.get_upvalues.43}}</span></td>
194 </tr>
194 </tr>
195 <tr>
195 <tr>
196 <td title='{{module_messages.41}}'><span {%if beam.pk == active_beam %} {{color_status.41}} {%endif%}>{{beam.get_downvalues.40}}</span></td>
196 <td title='{{module_messages.41}}'><span {%if beam.pk == active_beam %} {{color_status.41}} {%endif%}>{{beam.get_downvalues.40}}</span></td>
197 <td title='{{module_messages.42}}'><span {%if beam.pk == active_beam %} {{color_status.42}} {%endif%}>{{beam.get_downvalues.41}}</span></td>
197 <td title='{{module_messages.42}}'><span {%if beam.pk == active_beam %} {{color_status.42}} {%endif%}>{{beam.get_downvalues.41}}</span></td>
198 <td title='{{module_messages.43}}'><span {%if beam.pk == active_beam %} {{color_status.43}} {%endif%}>{{beam.get_downvalues.42}}</span></td>
198 <td title='{{module_messages.43}}'><span {%if beam.pk == active_beam %} {{color_status.43}} {%endif%}>{{beam.get_downvalues.42}}</span></td>
199 <td title='{{module_messages.44}}'><span {%if beam.pk == active_beam %} {{color_status.44}} {%endif%}>{{beam.get_downvalues.43}}</span></td>
199 <td title='{{module_messages.44}}'><span {%if beam.pk == active_beam %} {{color_status.44}} {%endif%}>{{beam.get_downvalues.43}}</span></td>
200 </tr>
200 </tr>
201 <tr>
201 <tr>
202 <td title='{{module_messages.49}}'><span {%if beam.pk == active_beam %} {{color_status.49}} {%endif%}>{{beam.get_upvalues.48}}</span></td>
202 <td title='{{module_messages.49}}'><span {%if beam.pk == active_beam %} {{color_status.49}} {%endif%}>{{beam.get_upvalues.48}}</span></td>
203 <td title='{{module_messages.51}}'><span {%if beam.pk == active_beam %} {{color_status.50}} {%endif%}>{{beam.get_upvalues.49}}</span></td>
203 <td title='{{module_messages.51}}'><span {%if beam.pk == active_beam %} {{color_status.50}} {%endif%}>{{beam.get_upvalues.49}}</span></td>
204 <td title='{{module_messages.52}}'><span {%if beam.pk == active_beam %} {{color_status.51}} {%endif%}>{{beam.get_upvalues.50}}</span></td>
204 <td title='{{module_messages.52}}'><span {%if beam.pk == active_beam %} {{color_status.51}} {%endif%}>{{beam.get_upvalues.50}}</span></td>
205 <td title='{{module_messages.53}}'><span {%if beam.pk == active_beam %} {{color_status.52}} {%endif%}>{{beam.get_upvalues.51}}</span></td>
205 <td title='{{module_messages.53}}'><span {%if beam.pk == active_beam %} {{color_status.52}} {%endif%}>{{beam.get_upvalues.51}}</span></td>
206 </tr>
206 </tr>
207 <tr>
207 <tr>
208 <td title='{{module_messages.49}}'><span {%if beam.pk == active_beam %} {{color_status.49}} {%endif%}>{{beam.get_downvalues.48}}</span></td>
208 <td title='{{module_messages.49}}'><span {%if beam.pk == active_beam %} {{color_status.49}} {%endif%}>{{beam.get_downvalues.48}}</span></td>
209 <td title='{{module_messages.50}}'><span {%if beam.pk == active_beam %} {{color_status.50}} {%endif%}>{{beam.get_downvalues.49}}</span></td>
209 <td title='{{module_messages.50}}'><span {%if beam.pk == active_beam %} {{color_status.50}} {%endif%}>{{beam.get_downvalues.49}}</span></td>
210 <td title='{{module_messages.51}}'><span {%if beam.pk == active_beam %} {{color_status.51}} {%endif%}>{{beam.get_downvalues.50}}</span></td>
210 <td title='{{module_messages.51}}'><span {%if beam.pk == active_beam %} {{color_status.51}} {%endif%}>{{beam.get_downvalues.50}}</span></td>
211 <td title='{{module_messages.52}}'><span {%if beam.pk == active_beam %} {{color_status.52}} {%endif%}>{{beam.get_downvalues.51}}</span></td>
211 <td title='{{module_messages.52}}'><span {%if beam.pk == active_beam %} {{color_status.52}} {%endif%}>{{beam.get_downvalues.51}}</span></td>
212 </tr>
212 </tr>
213 <tr>
213 <tr>
214 <td title='{{module_messages.57}}'><span {%if beam.pk == active_beam %} {{color_status.57}} {%endif%}>{{beam.get_upvalues.56}}</span></td>
214 <td title='{{module_messages.57}}'><span {%if beam.pk == active_beam %} {{color_status.57}} {%endif%}>{{beam.get_upvalues.56}}</span></td>
215 <td title='{{module_messages.58}}'><span {%if beam.pk == active_beam %} {{color_status.58}} {%endif%}>{{beam.get_upvalues.57}}</span></td>
215 <td title='{{module_messages.58}}'><span {%if beam.pk == active_beam %} {{color_status.58}} {%endif%}>{{beam.get_upvalues.57}}</span></td>
216 <td title='{{module_messages.59}}'><span {%if beam.pk == active_beam %} {{color_status.59}} {%endif%}>{{beam.get_upvalues.58}}</span></td>
216 <td title='{{module_messages.59}}'><span {%if beam.pk == active_beam %} {{color_status.59}} {%endif%}>{{beam.get_upvalues.58}}</span></td>
217 <td title='{{module_messages.60}}'><span {%if beam.pk == active_beam %} {{color_status.60}} {%endif%}>{{beam.get_upvalues.59}}</span></td>
217 <td title='{{module_messages.60}}'><span {%if beam.pk == active_beam %} {{color_status.60}} {%endif%}>{{beam.get_upvalues.59}}</span></td>
218 </tr>
218 </tr>
219 <tr>
219 <tr>
220 <td title='{{module_messages.57}}'><span {%if beam.pk == active_beam %} {{color_status.57}} {%endif%}>{{beam.get_downvalues.56}}</span></td>
220 <td title='{{module_messages.57}}'><span {%if beam.pk == active_beam %} {{color_status.57}} {%endif%}>{{beam.get_downvalues.56}}</span></td>
221 <td title='{{module_messages.58}}'><span {%if beam.pk == active_beam %} {{color_status.58}} {%endif%}>{{beam.get_downvalues.57}}</span></td>
221 <td title='{{module_messages.58}}'><span {%if beam.pk == active_beam %} {{color_status.58}} {%endif%}>{{beam.get_downvalues.57}}</span></td>
222 <td title='{{module_messages.59}}'><span {%if beam.pk == active_beam %} {{color_status.59}} {%endif%}>{{beam.get_downvalues.58}}</span></td>
222 <td title='{{module_messages.59}}'><span {%if beam.pk == active_beam %} {{color_status.59}} {%endif%}>{{beam.get_downvalues.58}}</span></td>
223 <td title='{{module_messages.60}}'><span {%if beam.pk == active_beam %} {{color_status.60}} {%endif%}>{{beam.get_downvalues.59}}</span></td>
223 <td title='{{module_messages.60}}'><span {%if beam.pk == active_beam %} {{color_status.60}} {%endif%}>{{beam.get_downvalues.59}}</span></td>
224 </tr>
224 </tr>
225 </table>
225 </table>
226 </td>
226 </td>
227 <td>
227 <td>
228 <b>South Quarter</b>
228 <b>South Quarter</b>
229 <table class="module">
229 <table class="module">
230 <tr>
230 <tr>
231 <td title='{{module_messages.37}}'><span {%if beam.pk == active_beam %} {{color_status.37}} {%endif%}>{{beam.get_upvalues.36}}</span></td>
231 <td title='{{module_messages.37}}'><span {%if beam.pk == active_beam %} {{color_status.37}} {%endif%}>{{beam.get_upvalues.36}}</span></td>
232 <td title='{{module_messages.38}}'><span {%if beam.pk == active_beam %} {{color_status.38}} {%endif%}>{{beam.get_upvalues.37}}</span></td>
232 <td title='{{module_messages.38}}'><span {%if beam.pk == active_beam %} {{color_status.38}} {%endif%}>{{beam.get_upvalues.37}}</span></td>
233 <td title='{{module_messages.39}}'><span {%if beam.pk == active_beam %} {{color_status.39}} {%endif%}>{{beam.get_upvalues.38}}</span></td>
233 <td title='{{module_messages.39}}'><span {%if beam.pk == active_beam %} {{color_status.39}} {%endif%}>{{beam.get_upvalues.38}}</span></td>
234 <td title='{{module_messages.40}}'><span {%if beam.pk == active_beam %} {{color_status.40}} {%endif%}>{{beam.get_upvalues.39}}</span></td>
234 <td title='{{module_messages.40}}'><span {%if beam.pk == active_beam %} {{color_status.40}} {%endif%}>{{beam.get_upvalues.39}}</span></td>
235 </tr>
235 </tr>
236 <tr>
236 <tr>
237 <td title='{{module_messages.37}}'><span {%if beam.pk == active_beam %} {{color_status.37}} {%endif%}>{{beam.get_downvalues.36}}</span></td>
237 <td title='{{module_messages.37}}'><span {%if beam.pk == active_beam %} {{color_status.37}} {%endif%}>{{beam.get_downvalues.36}}</span></td>
238 <td title='{{module_messages.38}}'><span {%if beam.pk == active_beam %} {{color_status.38}} {%endif%}>{{beam.get_downvalues.37}}</span></td>
238 <td title='{{module_messages.38}}'><span {%if beam.pk == active_beam %} {{color_status.38}} {%endif%}>{{beam.get_downvalues.37}}</span></td>
239 <td title='{{module_messages.39}}'><span {%if beam.pk == active_beam %} {{color_status.39}} {%endif%}>{{beam.get_downvalues.38}}</span></td>
239 <td title='{{module_messages.39}}'><span {%if beam.pk == active_beam %} {{color_status.39}} {%endif%}>{{beam.get_downvalues.38}}</span></td>
240 <td title='{{module_messages.40}}'><span {%if beam.pk == active_beam %} {{color_status.40}} {%endif%}>{{beam.get_downvalues.39}}</span></td>
240 <td title='{{module_messages.40}}'><span {%if beam.pk == active_beam %} {{color_status.40}} {%endif%}>{{beam.get_downvalues.39}}</span></td>
241 </tr>
241 </tr>
242 <tr>
242 <tr>
243 <td title='{{module_messages.45}}'><span {%if beam.pk == active_beam %} {{color_status.45}} {%endif%}>{{beam.get_upvalues.44}}</span></td>
243 <td title='{{module_messages.45}}'><span {%if beam.pk == active_beam %} {{color_status.45}} {%endif%}>{{beam.get_upvalues.44}}</span></td>
244 <td title='{{module_messages.46}}'><span {%if beam.pk == active_beam %} {{color_status.46}} {%endif%}>{{beam.get_upvalues.45}}</span></td>
244 <td title='{{module_messages.46}}'><span {%if beam.pk == active_beam %} {{color_status.46}} {%endif%}>{{beam.get_upvalues.45}}</span></td>
245 <td title='{{module_messages.47}}'><span {%if beam.pk == active_beam %} {{color_status.47}} {%endif%}>{{beam.get_upvalues.46}}</span></td>
245 <td title='{{module_messages.47}}'><span {%if beam.pk == active_beam %} {{color_status.47}} {%endif%}>{{beam.get_upvalues.46}}</span></td>
246 <td title='{{module_messages.48}}'><span {%if beam.pk == active_beam %} {{color_status.48}} {%endif%}>{{beam.get_upvalues.47}}</span></td>
246 <td title='{{module_messages.48}}'><span {%if beam.pk == active_beam %} {{color_status.48}} {%endif%}>{{beam.get_upvalues.47}}</span></td>
247 </tr>
247 </tr>
248 <tr>
248 <tr>
249 <td title='{{module_messages.45}}'><span {%if beam.pk == active_beam %} {{color_status.45}} {%endif%}>{{beam.get_downvalues.44}}</span></td>
249 <td title='{{module_messages.45}}'><span {%if beam.pk == active_beam %} {{color_status.45}} {%endif%}>{{beam.get_downvalues.44}}</span></td>
250 <td title='{{module_messages.46}}'><span {%if beam.pk == active_beam %} {{color_status.46}} {%endif%}>{{beam.get_downvalues.45}}</span></td>
250 <td title='{{module_messages.46}}'><span {%if beam.pk == active_beam %} {{color_status.46}} {%endif%}>{{beam.get_downvalues.45}}</span></td>
251 <td title='{{module_messages.47}}'><span {%if beam.pk == active_beam %} {{color_status.47}} {%endif%}>{{beam.get_downvalues.46}}</span></td>
251 <td title='{{module_messages.47}}'><span {%if beam.pk == active_beam %} {{color_status.47}} {%endif%}>{{beam.get_downvalues.46}}</span></td>
252 <td title='{{module_messages.48}}'><span {%if beam.pk == active_beam %} {{color_status.48}} {%endif%}>{{beam.get_downvalues.47}}</span></td>
252 <td title='{{module_messages.48}}'><span {%if beam.pk == active_beam %} {{color_status.48}} {%endif%}>{{beam.get_downvalues.47}}</span></td>
253 </tr>
253 </tr>
254 <tr>
254 <tr>
255 <td title='{{module_messages.53}}'><span {%if beam.pk == active_beam %} {{color_status.53}} {%endif%}>{{beam.get_upvalues.52}}</span></td>
255 <td title='{{module_messages.53}}'><span {%if beam.pk == active_beam %} {{color_status.53}} {%endif%}>{{beam.get_upvalues.52}}</span></td>
256 <td title='{{module_messages.54}}'><span {%if beam.pk == active_beam %} {{color_status.54}} {%endif%}>{{beam.get_upvalues.53}}</span></td>
256 <td title='{{module_messages.54}}'><span {%if beam.pk == active_beam %} {{color_status.54}} {%endif%}>{{beam.get_upvalues.53}}</span></td>
257 <td title='{{module_messages.55}}'><span {%if beam.pk == active_beam %} {{color_status.55}} {%endif%}>{{beam.get_upvalues.54}}</span></td>
257 <td title='{{module_messages.55}}'><span {%if beam.pk == active_beam %} {{color_status.55}} {%endif%}>{{beam.get_upvalues.54}}</span></td>
258 <td title='{{module_messages.56}}'><span {%if beam.pk == active_beam %} {{color_status.56}} {%endif%}>{{beam.get_upvalues.55}}</span></td>
258 <td title='{{module_messages.56}}'><span {%if beam.pk == active_beam %} {{color_status.56}} {%endif%}>{{beam.get_upvalues.55}}</span></td>
259 </tr>
259 </tr>
260 <tr>
260 <tr>
261 <td title='{{module_messages.53}}'><span {%if beam.pk == active_beam %} {{color_status.53}} {%endif%}>{{beam.get_downvalues.52}}</span></td>
261 <td title='{{module_messages.53}}'><span {%if beam.pk == active_beam %} {{color_status.53}} {%endif%}>{{beam.get_downvalues.52}}</span></td>
262 <td title='{{module_messages.54}}'><span {%if beam.pk == active_beam %} {{color_status.54}} {%endif%}>{{beam.get_downvalues.53}}</span></td>
262 <td title='{{module_messages.54}}'><span {%if beam.pk == active_beam %} {{color_status.54}} {%endif%}>{{beam.get_downvalues.53}}</span></td>
263 <td title='{{module_messages.55}}'><span {%if beam.pk == active_beam %} {{color_status.55}} {%endif%}>{{beam.get_downvalues.54}}</span></td>
263 <td title='{{module_messages.55}}'><span {%if beam.pk == active_beam %} {{color_status.55}} {%endif%}>{{beam.get_downvalues.54}}</span></td>
264 <td title='{{module_messages.56}}'><span {%if beam.pk == active_beam %} {{color_status.56}} {%endif%}>{{beam.get_downvalues.55}}</span></td>
264 <td title='{{module_messages.56}}'><span {%if beam.pk == active_beam %} {{color_status.56}} {%endif%}>{{beam.get_downvalues.55}}</span></td>
265 </tr>
265 </tr>
266 <tr>
266 <tr>
267 <td title='{{module_messages.61}}'><span {%if beam.pk == active_beam %} {{color_status.61}} {%endif%}>{{beam.get_upvalues.60}}</span></td>
267 <td title='{{module_messages.61}}'><span {%if beam.pk == active_beam %} {{color_status.61}} {%endif%}>{{beam.get_upvalues.60}}</span></td>
268 <td title='{{module_messages.62}}'><span {%if beam.pk == active_beam %} {{color_status.62}} {%endif%}>{{beam.get_upvalues.61}}</span></td>
268 <td title='{{module_messages.62}}'><span {%if beam.pk == active_beam %} {{color_status.62}} {%endif%}>{{beam.get_upvalues.61}}</span></td>
269 <td title='{{module_messages.63}}'><span {%if beam.pk == active_beam %} {{color_status.63}} {%endif%}>{{beam.get_upvalues.62}}</span></td>
269 <td title='{{module_messages.63}}'><span {%if beam.pk == active_beam %} {{color_status.63}} {%endif%}>{{beam.get_upvalues.62}}</span></td>
270 <td title='{{module_messages.64}}'><span {%if beam.pk == active_beam %} {{color_status.64}} {%endif%}>{{beam.get_upvalues.63}}</span></td>
270 <td title='{{module_messages.64}}'><span {%if beam.pk == active_beam %} {{color_status.64}} {%endif%}>{{beam.get_upvalues.63}}</span></td>
271 </tr>
271 </tr>
272 <tr>
272 <tr>
273 <td title='{{module_messages.61}}'><span {%if beam.pk == active_beam %} {{color_status.61}} {%endif%}>{{beam.get_downvalues.60}}</span></td>
273 <td title='{{module_messages.61}}'><span {%if beam.pk == active_beam %} {{color_status.61}} {%endif%}>{{beam.get_downvalues.60}}</span></td>
274 <td title='{{module_messages.62}}'><span {%if beam.pk == active_beam %} {{color_status.62}} {%endif%}>{{beam.get_downvalues.61}}</span></td>
274 <td title='{{module_messages.62}}'><span {%if beam.pk == active_beam %} {{color_status.62}} {%endif%}>{{beam.get_downvalues.61}}</span></td>
275 <td title='{{module_messages.63}}'><span {%if beam.pk == active_beam %} {{color_status.63}} {%endif%}>{{beam.get_downvalues.62}}</span></td>
275 <td title='{{module_messages.63}}'><span {%if beam.pk == active_beam %} {{color_status.63}} {%endif%}>{{beam.get_downvalues.62}}</span></td>
276 <td title='{{module_messages.64}}'><span {%if beam.pk == active_beam %} {{color_status.64}} {%endif%}>{{beam.get_downvalues.63}}</span></td>
276 <td title='{{module_messages.64}}'><span {%if beam.pk == active_beam %} {{color_status.64}} {%endif%}>{{beam.get_downvalues.63}}</span></td>
277 </tr>
277 </tr>
278 </table>
278 </table>
279 </td>
279 </td>
280 </tr>
280 </tr>
281 </table>
281 </table>
282
282
283 {% if beam.id == active_beam %}
283 {% if beam.id == active_beam %}
284 <table class="legend">
284 <table class="legend">
285 <tr>
285 <tr>
286 <th>Legend</th>
286 <th>Legend</th>
287 </tr>
287 </tr>
288 <tr>
288 <tr>
289 <td class="text-warning">Connected</td>
289 <td class="text-warning">Connected</td>
290 </tr>
290 </tr>
291 <tr>
291 <tr>
292 <td class="text-success">Running</td>
292 <td class="text-success">Running</td>
293 </tr>
293 </tr>
294 <tr>
294 <tr>
295 <td class="text-info">Mismath</td>
295 <td class="text-info">Mismath</td>
296 </tr>
296 </tr>
297 <tr>
297 <tr>
298 <td class="text-danger">Disconnected</td>
298 <td class="text-danger">Disconnected</td>
299 </tr>
299 </tr>
300 </table>
300 </table>
301 {% else %}
301 {% else %}
302 <div style="vertical-align: top; display:inline-block;">
302 <div style="vertical-align: top; display:inline-block;">
303 <button id="send_beam{{forloop.counter}}" type="button" class="btn btn-default">
303 <button id="send_beam{{forloop.counter}}" type="button" class="btn btn-default">
304 <span class="fas fa-external-link-square-alt" aria-hidden="true"></span>
304 <span class="fas fa-external-link-square-alt" aria-hidden="true"></span>
305 Change Beam</button>
305 Change Beam</button>
306 </div>
306 </div>
307 {% endif %}
307 {% endif %}
308 </div>
308 </div>
309 {% endfor %}
309 {% endfor %}
310 </div>
310 </div>
311 </div>
311 </div>
312
312
313
313
314 {% else %}
314 {% else %}
315 <p style="color:#b4bcc2; margin-left: 5%;">
315 <p style="color:#b4bcc2; margin-left: 5%;">
316 <i>No Beams...</i>
316 <i>No Beams...</i>
317 </p>
317 </p>
318 {% endif %} {% endblock extra-content %} {% block extra-js%}
318 {% endif %}
319 {% endblock extra-content %}
320 {% block extra-js%}
319 <script>
321 <script>
320 $(document).ready(function () {
322 $(document).ready(function () {
321
323
322 {% for beam in beams %}
324 {% for beam in beams %}
323
325
324 {% if dev_conf.operation_mode == 1 %}
326 {% if dev_conf.operation_mode == 1 %}
325 $("#send_beam{{forloop.counter}}").prop('disabled', true)
327 $("#send_beam{{forloop.counter}}").prop('disabled', true)
326 {% else %}
328 {% else %}
327 $("#send_beam{{forloop.counter}}").click(function () {
329 $("#send_beam{{forloop.counter}}").click(function () {
328 document.location = "{% url 'url_send_beam' dev_conf.id beam.id %}";
330 document.location = "{% url 'url_send_beam' dev_conf.id beam.id %}";
329 });
331 });
330 {% endif %}
332 {% endif %}
331
333
332 {% endfor %}
334 {% endfor %}
333
335
334
336
335 });
337 });
336 </script> {% endblock %} No newline at end of file
338 </script>
339 {% endblock %}
@@ -1,47 +1,47
1 {% extends "dev_conf_edit.html" %}
1 {% extends "dev_conf_edit.html" %}
2 {% load bootstrap4 %}
2 {% load bootstrap4 %}
3 {% load static %}
3 {% load static %}
4
4
5 {% block extra-head %}
5 {% block extra-head %}
6 <style type="text/css">
6 <style type="text/css">
7 /* show the move cursor as the user moves the mouse over the panel header.*/
7 /* show the move cursor as the user moves the mouse over the panel header.*/
8 .panel-default { cursor: move; }
8 .panel-default { cursor: move; }
9 </style>
9 </style>
10 <script src="{% static 'js/jquery-ui.min.js' %}"></script>
10
11
11
12 {% endblock %}
12 {% endblock %}
13
13
14 {% block content %}
14 {% block content %}
15 <form class="form" method="post">
15 <form class="form" method="post">
16 {% csrf_token %}
16 {% csrf_token %}
17 {% bootstrap_form form layout='horizontal' size='medium' %}
17 {% bootstrap_form form layout='horizontal' size='medium' %}
18 <div style="clear: both;"></div>
18 <div style="clear: both;"></div>
19 <h2>ABS Beams</h2><hr>
19 <h2>ABS Beams</h2><hr>
20 <div class="panel-group" id="div_beams" role="tablist" aria-multiselectable="true">
20 <div class="panel-group" id="div_beams" role="tablist" aria-multiselectable="true">
21 {% include "abs_beams_list.html" %}
21 {% include "abs_beams_list.html" %}
22 </div>
22 </div>
23 <div style="clear: both;"></div>
23 <div style="clear: both;"></div>
24 <br>
24 <br>
25 <div class="pull-right">
25 <div class="pull-right">
26 <button type="button" class="btn btn-primary" onclick="{% if previous %}window.location.replace('{{ previous }}');{% else %}history.go(-1);{% endif %}">Cancel</button>
26 <button type="button" class="btn btn-primary" onclick="{% if previous %}window.location.replace('{{ previous }}');{% else %}history.go(-1);{% endif %}">Cancel</button>
27 <button type="button" class="btn btn-primary" id="bt_add_beam">Add Beam</button>
27 <button type="button" class="btn btn-primary" id="bt_add_beam">Add Beam</button>
28 <button type="submit" class="btn btn-primary">{{button}}</button>
28 <button type="submit" class="btn btn-primary">{{button}}</button>
29 </div>
29 </div>
30 </form>
30 </form>
31 {% endblock %}
31 {% endblock %}
32
32
33
33
34 {% block extra-js%}
34 {% block extra-js%}
35 <script src="{% static 'js/abs.js' %}"></script>
35 <script src="{% static 'js/abs.js' %}"></script>
36 <script type="text/javascript">
36 <script type="text/javascript">
37
37
38 $("#bt_toggle").click(function() {
38 $("#bt_toggle").click(function() {
39 $(".panel-collapse").collapse('toggle')
39 $(".panel-collapse").collapse('toggle')
40 });
40 });
41
41
42 $("#bt_add_beam").click(function() {
42 $("#bt_add_beam").click(function() {
43 document.location = "{% url 'url_add_abs_beam' id_conf %}";
43 document.location = "{% url 'url_add_abs_beam' id_conf %}";
44 });
44 });
45
45
46 </script>
46 </script>
47 {% endblock %}
47 {% endblock %}
@@ -1,2091 +1,2093
1 import ast
1 import ast
2 import json
2 import json
3 from itertools import chain
3 from itertools import chain
4
4
5 from django import forms
5 from django import forms
6 from django.utils.safestring import mark_safe
6 from django.utils.safestring import mark_safe
7 from django.utils.html import conditional_escape
7 from django.utils.html import conditional_escape
8
8
9 style = """<style>
9 style = """<style>
10
10
11 .abs {
11 .abs {
12 border: 2px solid #00334d;
12 border: 2px solid #00334d;
13 vertical-align: top;
13 vertical-align: top;
14 display: inline-block;
14 display: inline-block;
15 font-size: 85%;
15 font-size: 85%;
16 }
16 }
17
17
18 .abs tr:nth-child(n) {
18 .abs tr:nth-child(n) {
19 border-bottom: 1px dashed #00334d;
19 border-bottom: 1px dashed #00334d;
20 }
20 }
21 .abs tr:nth-child(3) {
21 .abs tr:nth-child(3) {
22 border-bottom: 0px solid #00334d;
22 border-bottom: 0px solid #00334d;
23 }
23 }
24
24
25 .abs td:nth-child(1){
25 .abs td:nth-child(1){
26 border-right: 1px dashed #00334d;
26 border-right: 1px dashed #00334d;
27 text-align: center;
27 text-align: center;
28 padding: 1px;
28 padding: 1px;
29 }
29 }
30 .abs tr:nth-child(1) td:nth-child(1) {
30 .abs tr:nth-child(1) td:nth-child(1) {
31 border-right: 0px solid #00334d;
31 border-right: 0px solid #00334d;
32 }
32 }
33 .abs td{
33 .abs td{
34 border-right: 0px solid #00334d;
34 border-right: 0px solid #00334d;
35 text-align: center;
35 text-align: center;
36 padding: 1px;
36 padding: 1px;
37 }
37 }
38
38
39
39
40 .north_quarter{
40 .north_quarter{
41 border: 2px solid #00334d;
41 border: 2px solid #00334d;
42 vertical-align: center;
42 vertical-align: center;
43 font-weight: bold;
43 font-weight: bold;
44 }
44 }
45 .north_quarter tr{
45 .north_quarter tr{
46 border: 1px solid #ffffff;
46 border: 1px solid #ffffff;
47 background-color: #ecf0f1;
47 background-color: #ecf0f1;
48 }
48 }
49 .north_quarter td{
49 .north_quarter td{
50 border: 2px solid #e2e2e7;
50 border: 2px solid #e2e2e7;
51 text-align: center;
51 text-align: center;
52 }
52 }
53
53
54 .east_quarter{
54 .east_quarter{
55 border: 2px solid #00334d;
55 border: 2px solid #00334d;
56 vertical-align: center;
56 vertical-align: center;
57 font-weight: bold;
57 font-weight: bold;
58 }
58 }
59 .east_quarter tr{
59 .east_quarter tr{
60 border: 1px solid #ffffff;
60 border: 1px solid #ffffff;
61 background-color: #ecf0f1;
61 background-color: #ecf0f1;
62 }
62 }
63 .east_quarter td{
63 .east_quarter td{
64 border: 2px solid #e2e2e7;
64 border: 2px solid #e2e2e7;
65 text-align: center;
65 text-align: center;
66 }
66 }
67
67
68 .west_quarter{
68 .west_quarter{
69 border: 2px solid #00334d;
69 border: 2px solid #00334d;
70 vertical-align: center;
70 vertical-align: center;
71 font-weight: bold;
71 font-weight: bold;
72 }
72 }
73 .west_quarter tr{
73 .west_quarter tr{
74 border: 1px solid #ffffff;
74 border: 1px solid #ffffff;
75 background-color: #ecf0f1;
75 background-color: #ecf0f1;
76 }
76 }
77 .west_quarter td{
77 .west_quarter td{
78 border: 2px solid #e2e2e7;
78 border: 2px solid #e2e2e7;
79 text-align: center;
79 text-align: center;
80 }
80 }
81
81
82 .south_quarter{
82 .south_quarter{
83 border: 2px solid #00334d;
83 border: 2px solid #00334d;
84 vertical-align: center;
84 vertical-align: center;
85 font-weight: bold;
85 font-weight: bold;
86 }
86 }
87 .south_quarter tr{
87 .south_quarter tr{
88 border: 1px solid #ffffff;
88 border: 1px solid #ffffff;
89 background-color: #ecf0f1;
89 background-color: #ecf0f1;
90 }
90 }
91 .south_quarter td{
91 .south_quarter td{
92 border: 2px solid #e2e2e7;
92 border: 2px solid #e2e2e7;
93 text-align: center;
93 text-align: center;
94 }
94 }
95
95
96
96
97
97
98
98
99
99
100
100
101 .abs_tx {
101 .abs_tx {
102 border: 2px solid #00334d;
102 border: 2px solid #00334d;
103 vertical-align: top;
103 vertical-align: top;
104 display: inline-block;
104 display: inline-block;
105 font-size: 85%;
105 font-size: 85%;
106 margin-left: 30px;
106 margin-left: 30px;
107 }
107 }
108
108
109 .abs_tx tr:nth-child(n) {
109 .abs_tx tr:nth-child(n) {
110 border-bottom: 1px dashed #00334d;
110 border-bottom: 1px dashed #00334d;
111 }
111 }
112 .abs_tx tr:nth-child(3) {
112 .abs_tx tr:nth-child(3) {
113 border-bottom: 0px solid #00334d;
113 border-bottom: 0px solid #00334d;
114 }
114 }
115
115
116 .abs_tx td:nth-child(1){
116 .abs_tx td:nth-child(1){
117 border-right: 1px dashed #00334d;
117 border-right: 1px dashed #00334d;
118 text-align: center;
118 text-align: center;
119 padding: 1px;
119 padding: 1px;
120 }
120 }
121 .abs_tx tr:nth-child(1) td:nth-child(1) {
121 .abs_tx tr:nth-child(1) td:nth-child(1) {
122 border-right: 0px solid #00334d;
122 border-right: 0px solid #00334d;
123 }
123 }
124 .abs_tx td{
124 .abs_tx td{
125 border-right: 0px solid #00334d;
125 border-right: 0px solid #00334d;
126 text-align: center;
126 text-align: center;
127 padding: 1px;
127 padding: 1px;
128 }
128 }
129
129
130
130
131 .tx_north_quarter{
131 .tx_north_quarter{
132 border: 2px solid #00334d;
132 border: 2px solid #00334d;
133 vertical-align: center;
133 vertical-align: center;
134 font-weight: bold;
134 font-weight: bold;
135 }
135 }
136 .tx_north_quarter tr{
136 .tx_north_quarter tr{
137 border: 1px solid #ffffff;
137 border: 1px solid #ffffff;
138 background-color: #ecf0f1;
138 background-color: #ecf0f1;
139 }
139 }
140 .tx_north_quarter td{
140 .tx_north_quarter td{
141 border: 2px solid #e2e2e7;
141 border: 2px solid #e2e2e7;
142 text-align: center;
142 text-align: center;
143 }
143 }
144
144
145
145
146 .tx_east_quarter{
146 .tx_east_quarter{
147 border: 2px solid #00334d;
147 border: 2px solid #00334d;
148 vertical-align: center;
148 vertical-align: center;
149 font-weight: bold;
149 font-weight: bold;
150 }
150 }
151 .tx_east_quarter tr{
151 .tx_east_quarter tr{
152 border: 1px solid #ffffff;
152 border: 1px solid #ffffff;
153 background-color: #ecf0f1;
153 background-color: #ecf0f1;
154 }
154 }
155 .tx_east_quarter td{
155 .tx_east_quarter td{
156 border: 2px solid #e2e2e7;
156 border: 2px solid #e2e2e7;
157 text-align: center;
157 text-align: center;
158 }
158 }
159
159
160
160
161 .tx_west_quarter{
161 .tx_west_quarter{
162 border: 2px solid #00334d;
162 border: 2px solid #00334d;
163 vertical-align: center;
163 vertical-align: center;
164 font-weight: bold;
164 font-weight: bold;
165 }
165 }
166 .tx_west_quarter tr{
166 .tx_west_quarter tr{
167 border: 1px solid #ffffff;
167 border: 1px solid #ffffff;
168 background-color: #ecf0f1;
168 background-color: #ecf0f1;
169 }
169 }
170 .tx_west_quarter td{
170 .tx_west_quarter td{
171 border: 2px solid #e2e2e7;
171 border: 2px solid #e2e2e7;
172 text-align: center;
172 text-align: center;
173 }
173 }
174
174
175
175
176 .tx_south_quarter{
176 .tx_south_quarter{
177 border: 2px solid #00334d;
177 border: 2px solid #00334d;
178 vertical-align: center;
178 vertical-align: center;
179 font-weight: bold;
179 font-weight: bold;
180 }
180 }
181 .tx_south_quarter tr{
181 .tx_south_quarter tr{
182 border: 1px solid #ffffff;
182 border: 1px solid #ffffff;
183 background-color: #ecf0f1;
183 background-color: #ecf0f1;
184 }
184 }
185 .tx_south_quarter td{
185 .tx_south_quarter td{
186 border: 2px solid #e2e2e7;
186 border: 2px solid #e2e2e7;
187 text-align: center;
187 text-align: center;
188 }
188 }
189
189
190
190
191
191
192
192
193 .abs_rx {
193 .abs_rx {
194 border: 2px solid #00334d;
194 border: 2px solid #00334d;
195 vertical-align: top;
195 vertical-align: top;
196 display: inline-block;
196 display: inline-block;
197 font-size: 85%;
197 font-size: 85%;
198 margin-left: 30px;
198 margin-left: 30px;
199 }
199 }
200
200
201 .abs_rx tr:nth-child(n) {
201 .abs_rx tr:nth-child(n) {
202 border-bottom: 1px dashed #00334d;
202 border-bottom: 1px dashed #00334d;
203 }
203 }
204 .abs_rx tr:nth-child(3) {
204 .abs_rx tr:nth-child(3) {
205 border-bottom: 0px solid #00334d;
205 border-bottom: 0px solid #00334d;
206 }
206 }
207
207
208 .abs_rx td:nth-child(1){
208 .abs_rx td:nth-child(1){
209 border-right: 1px dashed #00334d;
209 border-right: 1px dashed #00334d;
210 text-align: center;
210 text-align: center;
211 padding: 1px;
211 padding: 1px;
212 }
212 }
213 .abs_rx tr:nth-child(1) td:nth-child(1) {
213 .abs_rx tr:nth-child(1) td:nth-child(1) {
214 border-right: 0px solid #00334d;
214 border-right: 0px solid #00334d;
215 }
215 }
216 .abs_rx td{
216 .abs_rx td{
217 border-right: 0px solid #00334d;
217 border-right: 0px solid #00334d;
218 text-align: center;
218 text-align: center;
219 padding: 1px;
219 padding: 1px;
220 }
220 }
221
221
222
222
223 .rx_north_quarter{
223 .rx_north_quarter{
224 border: 2px solid #00334d;
224 border: 2px solid #00334d;
225 vertical-align: center;
225 vertical-align: center;
226 font-weight: bold;
226 font-weight: bold;
227 }
227 }
228 .rx_north_quarter tr{
228 .rx_north_quarter tr{
229 border: 1px solid #ffffff;
229 border: 1px solid #ffffff;
230 background-color: #ecf0f1;
230 background-color: #ecf0f1;
231 }
231 }
232 .rx_north_quarter td{
232 .rx_north_quarter td{
233 border: 2px solid #e2e2e7;
233 border: 2px solid #e2e2e7;
234 text-align: center;
234 text-align: center;
235 }
235 }
236
236
237
237
238 .rx_east_quarter{
238 .rx_east_quarter{
239 border: 2px solid #00334d;
239 border: 2px solid #00334d;
240 vertical-align: center;
240 vertical-align: center;
241 font-weight: bold;
241 font-weight: bold;
242 }
242 }
243 .rx_east_quarter tr{
243 .rx_east_quarter tr{
244 border: 1px solid #ffffff;
244 border: 1px solid #ffffff;
245 background-color: #ecf0f1;
245 background-color: #ecf0f1;
246 }
246 }
247 .rx_east_quarter td{
247 .rx_east_quarter td{
248 border: 2px solid #e2e2e7;
248 border: 2px solid #e2e2e7;
249 text-align: center;
249 text-align: center;
250 }
250 }
251
251
252
252
253 .rx_west_quarter{
253 .rx_west_quarter{
254 border: 2px solid #00334d;
254 border: 2px solid #00334d;
255 vertical-align: center;
255 vertical-align: center;
256 font-weight: bold;
256 font-weight: bold;
257 }
257 }
258 .rx_west_quarter tr{
258 .rx_west_quarter tr{
259 border: 1px solid #ffffff;
259 border: 1px solid #ffffff;
260 background-color: #ecf0f1;
260 background-color: #ecf0f1;
261 }
261 }
262 .rx_west_quarter td{
262 .rx_west_quarter td{
263 border: 2px solid #e2e2e7;
263 border: 2px solid #e2e2e7;
264 text-align: center;
264 text-align: center;
265 }
265 }
266
266
267
267
268 .rx_south_quarter{
268 .rx_south_quarter{
269 border: 2px solid #00334d;
269 border: 2px solid #00334d;
270 vertical-align: center;
270 vertical-align: center;
271 font-weight: bold;
271 font-weight: bold;
272 }
272 }
273 .rx_south_quarter tr{
273 .rx_south_quarter tr{
274 border: 1px solid #ffffff;
274 border: 1px solid #ffffff;
275 background-color: #ecf0f1;
275 background-color: #ecf0f1;
276 }
276 }
277 .rx_south_quarter td{
277 .rx_south_quarter td{
278 border: 2px solid #e2e2e7;
278 border: 2px solid #e2e2e7;
279 text-align: center;
279 text-align: center;
280 }
280 }
281
281
282
282
283
283
284 .tx {
284 .tx {
285 border: 2px solid #00334d;
285 border: 2px solid #00334d;
286 vertical-align: center;
286 vertical-align: center;
287 font-weight: bold;
287 font-weight: bold;
288 }
288 }
289 .tx tr{
289 .tx tr{
290 border: 1px solid #ffffff;
290 border: 1px solid #ffffff;
291 background-color: #ecf0f1;
291 background-color: #ecf0f1;
292 }
292 }
293 .tx td{
293 .tx td{
294 border: 2px solid #e2e2e7;
294 border: 2px solid #e2e2e7;
295 text-align: center;
295 text-align: center;
296 }
296 }
297
297
298
298
299 .rx {
299 .rx {
300 border: 2px solid #00334d;
300 border: 2px solid #00334d;
301 vertical-align: center;
301 vertical-align: center;
302 font-weight: bold;
302 font-weight: bold;
303 }
303 }
304 .rx tr{
304 .rx tr{
305 border: 1px solid #ffffff;
305 border: 1px solid #ffffff;
306 background-color: #ecf0f1;
306 background-color: #ecf0f1;
307 }
307 }
308 .rx td{
308 .rx td{
309 border: 2px solid #e2e2e7;
309 border: 2px solid #e2e2e7;
310 text-align: center;
310 text-align: center;
311 }
311 }
312
312
313 input[type="checkbox"] {
313 input[type="checkbox"] {
314 margin-top: 0px;
314 margin-top: 0px;
315 line-height: normal;
315 line-height: normal;
316 margin-bottom: 0px;
316 margin-bottom: 0px;
317 vertical-align: middle;
317 vertical-align: middle;
318 }
318 }
319
319
320 </style>"""
320 </style>"""
321
321
322
322
323 class EditUpDataWidget(forms.widgets.TextInput):
323 class EditUpDataWidget(forms.widgets.TextInput):
324
324
325 def render(self, label, value, attrs=None):
325 def render(self, name, value, attrs=None, renderer=None):
326
326
327 try:
327 try:
328 beam = attrs.get('beam', value)
328 beam = attrs.get('beam', value)
329 except:
329 except:
330 return
330 return
331
331
332 checked_tx = {}
332 checked_tx = {}
333 for i in range(1,65):
333 for i in range(1,65):
334 checked_tx['']=''
334 checked_tx['']=''
335
335
336 checked_onlyrx = ''
336 checked_onlyrx = ''
337 if beam.get_up_onlyrx == True:
337 if beam.get_up_onlyrx == True:
338 checked_onlyrx = 'checked="True"'
338 checked_onlyrx = 'checked="True"'
339
339
340
340
341 html = '''
341 html = '''
342
342
343 <div class="container">
343 <div class="container">
344 <div style="display:inline-block">
344 <div style="display:inline-block">
345 Name:
345 Name:
346 <label style="display:inline-block"><input value="{beam.name}" style="display:inline-block" name="beam_name" class="form-control" id="id_name" type="text"></label>
346 <label style="display:inline-block"><input value="{beam.name}" style="display:inline-block" name="beam_name" class="form-control" id="id_name" type="text"></label>
347 </div>
347 </div>
348 </div>
348 </div>
349
349
350 <br>
350 <br>
351 <div class="panel-group">
351 <div class="panel-group">
352 <div style="display: inline-block" id="UP" class="panel panel-default">
352 <div style="display: inline-block" id="UP" class="panel panel-default">
353
353
354 <div class="panel-heading">UP</div>
354 <div class="panel-heading">UP</div>
355
355
356
356
357 <div class="panel-body">
357 <div class="panel-body">
358
358
359 <table class="abs">
359 <table class="abs">
360 <tr>
360 <tr>
361 <td colspan="2"> <b>Antenna</b> </td>
361 <td colspan="2"> <b>Antenna</b> </td>
362 </tr>
362 </tr>
363 <tr>
363 <tr>
364 <td> <b>North Quarter</b>
364 <td> <b>North Quarter</b>
365 <table class="north_quarter">
365 <table class="north_quarter">
366 <tr>
366 <tr>
367 <td><select id="abs_value1" name="abs_up1"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
367 <td><select id="abs_value1" name="abs_up1"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
368 <td><select id="abs_value2" name="abs_up2"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
368 <td><select id="abs_value2" name="abs_up2"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
369 <td><select id="abs_value3" name="abs_up3"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
369 <td><select id="abs_value3" name="abs_up3"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
370 <td><select id="abs_value4" name="abs_up4"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
370 <td><select id="abs_value4" name="abs_up4"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
371 </tr>
371 </tr>
372 <tr>
372 <tr>
373 <td><select id="abs_value9" name="abs_up9"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
373 <td><select id="abs_value9" name="abs_up9"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
374 <td><select id="abs_value10" name="abs_up10"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
374 <td><select id="abs_value10" name="abs_up10"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
375 <td><select id="abs_value11" name="abs_up11"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
375 <td><select id="abs_value11" name="abs_up11"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
376 <td><select id="abs_value12" name="abs_up12"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
376 <td><select id="abs_value12" name="abs_up12"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
377 </tr>
377 </tr>
378 <tr>
378 <tr>
379 <td><select id="abs_value17" name="abs_up17"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
379 <td><select id="abs_value17" name="abs_up17"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
380 <td><select id="abs_value18" name="abs_up18"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
380 <td><select id="abs_value18" name="abs_up18"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
381 <td><select id="abs_value19" name="abs_up19"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
381 <td><select id="abs_value19" name="abs_up19"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
382 <td><select id="abs_value20" name="abs_up20"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
382 <td><select id="abs_value20" name="abs_up20"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
383 </tr>
383 </tr>
384 <tr>
384 <tr>
385 <td><select id="abs_value25" name="abs_up25"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
385 <td><select id="abs_value25" name="abs_up25"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
386 <td><select id="abs_value26" name="abs_up26"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
386 <td><select id="abs_value26" name="abs_up26"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
387 <td><select id="abs_value27" name="abs_up27"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
387 <td><select id="abs_value27" name="abs_up27"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
388 <td><select id="abs_value28" name="abs_up28"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
388 <td><select id="abs_value28" name="abs_up28"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
389 </tr>
389 </tr>
390 </table>
390 </table>
391 </td>
391 </td>
392 <td> <b>East Quarter</b>
392 <td> <b>East Quarter</b>
393 <table class="east_quarter">
393 <table class="east_quarter">
394 <tr>
394 <tr>
395 <td><select id="abs_value5" name="abs_up5"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
395 <td><select id="abs_value5" name="abs_up5"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
396 <td><select id="abs_value6" name="abs_up6"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
396 <td><select id="abs_value6" name="abs_up6"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
397 <td><select id="abs_value7" name="abs_up7"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
397 <td><select id="abs_value7" name="abs_up7"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
398 <td><select id="abs_value8" name="abs_up8"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
398 <td><select id="abs_value8" name="abs_up8"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
399 </tr>
399 </tr>
400 <tr>
400 <tr>
401 <td><select id="abs_value13" name="abs_up13"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
401 <td><select id="abs_value13" name="abs_up13"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
402 <td><select id="abs_value14" name="abs_up14"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
402 <td><select id="abs_value14" name="abs_up14"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
403 <td><select id="abs_value15" name="abs_up15"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
403 <td><select id="abs_value15" name="abs_up15"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
404 <td><select id="abs_value16" name="abs_up16"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
404 <td><select id="abs_value16" name="abs_up16"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
405 </tr>
405 </tr>
406 <tr>
406 <tr>
407 <td><select id="abs_value21" name="abs_up21"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
407 <td><select id="abs_value21" name="abs_up21"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
408 <td><select id="abs_value22" name="abs_up22"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
408 <td><select id="abs_value22" name="abs_up22"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
409 <td><select id="abs_value23" name="abs_up23"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
409 <td><select id="abs_value23" name="abs_up23"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
410 <td><select id="abs_value24" name="abs_up24"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
410 <td><select id="abs_value24" name="abs_up24"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
411 </tr>
411 </tr>
412 <tr>
412 <tr>
413 <td><select id="abs_value29" name="abs_up29"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
413 <td><select id="abs_value29" name="abs_up29"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
414 <td><select id="abs_value30" name="abs_up30"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
414 <td><select id="abs_value30" name="abs_up30"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
415 <td><select id="abs_value31" name="abs_up31"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
415 <td><select id="abs_value31" name="abs_up31"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
416 <td><select id="abs_value32" name="abs_up32"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
416 <td><select id="abs_value32" name="abs_up32"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
417 </tr>
417 </tr>
418 </table>
418 </table>
419 </td>
419 </td>
420 </tr>
420 </tr>
421 <tr>
421 <tr>
422 <td> <b>West Quarter</b>
422 <td> <b>West Quarter</b>
423 <table class="west_quarter">
423 <table class="west_quarter">
424 <tr>
424 <tr>
425 <td><select id="abs_value33" name="abs_up33"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
425 <td><select id="abs_value33" name="abs_up33"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
426 <td><select id="abs_value34" name="abs_up34"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
426 <td><select id="abs_value34" name="abs_up34"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
427 <td><select id="abs_value35" name="abs_up35"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
427 <td><select id="abs_value35" name="abs_up35"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
428 <td><select id="abs_value36" name="abs_up36"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
428 <td><select id="abs_value36" name="abs_up36"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
429 </tr>
429 </tr>
430 <tr>
430 <tr>
431 <td><select id="abs_value41" name="abs_up41"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
431 <td><select id="abs_value41" name="abs_up41"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
432 <td><select id="abs_value42" name="abs_up42"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
432 <td><select id="abs_value42" name="abs_up42"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
433 <td><select id="abs_value43" name="abs_up43"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
433 <td><select id="abs_value43" name="abs_up43"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
434 <td><select id="abs_value44" name="abs_up44"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
434 <td><select id="abs_value44" name="abs_up44"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
435 </tr>
435 </tr>
436 <tr>
436 <tr>
437 <td><select id="abs_value49" name="abs_up49"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
437 <td><select id="abs_value49" name="abs_up49"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
438 <td><select id="abs_value50" name="abs_up50"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
438 <td><select id="abs_value50" name="abs_up50"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
439 <td><select id="abs_value51" name="abs_up51"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
439 <td><select id="abs_value51" name="abs_up51"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
440 <td><select id="abs_value52" name="abs_up52"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
440 <td><select id="abs_value52" name="abs_up52"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
441 </tr>
441 </tr>
442 <tr>
442 <tr>
443 <td><select id="abs_value57" name="abs_up57"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
443 <td><select id="abs_value57" name="abs_up57"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
444 <td><select id="abs_value58" name="abs_up58"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
444 <td><select id="abs_value58" name="abs_up58"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
445 <td><select id="abs_value59" name="abs_up59"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
445 <td><select id="abs_value59" name="abs_up59"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
446 <td><select id="abs_value60" name="abs_up60"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
446 <td><select id="abs_value60" name="abs_up60"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
447 </tr>
447 </tr>
448 </table>
448 </table>
449 </td>
449 </td>
450 <td> <b>South Quarter</b>
450 <td> <b>South Quarter</b>
451 <table class="south_quarter">
451 <table class="south_quarter">
452 <tr>
452 <tr>
453 <td><select id="abs_value37" name="abs_up37"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
453 <td><select id="abs_value37" name="abs_up37"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
454 <td><select id="abs_value38" name="abs_up38"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
454 <td><select id="abs_value38" name="abs_up38"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
455 <td><select id="abs_value39" name="abs_up39"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
455 <td><select id="abs_value39" name="abs_up39"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
456 <td><select id="abs_value40" name="abs_up40"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
456 <td><select id="abs_value40" name="abs_up40"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
457 </tr>
457 </tr>
458 <tr>
458 <tr>
459 <td><select id="abs_value45" name="abs_up45"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
459 <td><select id="abs_value45" name="abs_up45"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
460 <td><select id="abs_value46" name="abs_up46"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
460 <td><select id="abs_value46" name="abs_up46"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
461 <td><select id="abs_value47" name="abs_up47"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
461 <td><select id="abs_value47" name="abs_up47"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
462 <td><select id="abs_value48" name="abs_up48"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
462 <td><select id="abs_value48" name="abs_up48"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
463 </tr>
463 </tr>
464 <tr>
464 <tr>
465 <td><select id="abs_value53" name="abs_up53"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
465 <td><select id="abs_value53" name="abs_up53"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
466 <td><select id="abs_value54" name="abs_up54"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
466 <td><select id="abs_value54" name="abs_up54"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
467 <td><select id="abs_value55" name="abs_up55"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
467 <td><select id="abs_value55" name="abs_up55"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
468 <td><select id="abs_value56" name="abs_up56"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
468 <td><select id="abs_value56" name="abs_up56"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
469 </tr>
469 </tr>
470 <tr>
470 <tr>
471 <td><select id="abs_value61" name="abs_up61"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
471 <td><select id="abs_value61" name="abs_up61"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
472 <td><select id="abs_value62" name="abs_up62"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
472 <td><select id="abs_value62" name="abs_up62"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
473 <td><select id="abs_value63" name="abs_up63"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
473 <td><select id="abs_value63" name="abs_up63"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
474 <td><select id="abs_value64" name="abs_up64"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
474 <td><select id="abs_value64" name="abs_up64"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
475 </tr>
475 </tr>
476 </table>
476 </table>
477 </td>
477 </td>
478 </tr>
478 </tr>
479 </table>
479 </table>
480
480
481
481
482
482
483 <table class="abs_tx">
483 <table class="abs_tx">
484 <tr>
484 <tr>
485 <td colspan="2"> <b>TX</b> </td>
485 <td colspan="2"> <b>TX</b> </td>
486 </tr>
486 </tr>
487 <tr>
487 <tr>
488 <td> <b>North Quarter</b>
488 <td> <b>North Quarter</b>
489 <table align="center" class="tx_north_quarter">
489 <table align="center" class="tx_north_quarter">
490 <tr>
490 <tr>
491 <td> <input id="uptx1" name="uptx_checks" type="checkbox" value=1> </td>
491 <td> <input id="uptx1" name="uptx_checks" type="checkbox" value=1> </td>
492 <td> <input id="uptx2" name="uptx_checks" type="checkbox" value=2> </td>
492 <td> <input id="uptx2" name="uptx_checks" type="checkbox" value=2> </td>
493 <td> <input id="uptx3" name="uptx_checks" type="checkbox" value=3> </td>
493 <td> <input id="uptx3" name="uptx_checks" type="checkbox" value=3> </td>
494 <td> <input id="uptx4" name="uptx_checks" type="checkbox" value=4> </td>
494 <td> <input id="uptx4" name="uptx_checks" type="checkbox" value=4> </td>
495 </tr>
495 </tr>
496 <tr>
496 <tr>
497 <td> <input id="uptx9" name="uptx_checks" type="checkbox" value=9> </td>
497 <td> <input id="uptx9" name="uptx_checks" type="checkbox" value=9> </td>
498 <td> <input id="uptx10" name="uptx_checks" type="checkbox" value=10> </td>
498 <td> <input id="uptx10" name="uptx_checks" type="checkbox" value=10> </td>
499 <td> <input id="uptx11" name="uptx_checks" type="checkbox" value=11> </td>
499 <td> <input id="uptx11" name="uptx_checks" type="checkbox" value=11> </td>
500 <td> <input id="uptx12" name="uptx_checks" type="checkbox" value=12> </td>
500 <td> <input id="uptx12" name="uptx_checks" type="checkbox" value=12> </td>
501 </tr>
501 </tr>
502 <tr>
502 <tr>
503 <td> <input id="uptx17" name="uptx_checks" type="checkbox" value=17> </td>
503 <td> <input id="uptx17" name="uptx_checks" type="checkbox" value=17> </td>
504 <td> <input id="uptx18" name="uptx_checks" type="checkbox" value=18> </td>
504 <td> <input id="uptx18" name="uptx_checks" type="checkbox" value=18> </td>
505 <td> <input id="uptx19" name="uptx_checks" type="checkbox" value=19> </td>
505 <td> <input id="uptx19" name="uptx_checks" type="checkbox" value=19> </td>
506 <td> <input id="uptx20" name="uptx_checks" type="checkbox" value=20> </td>
506 <td> <input id="uptx20" name="uptx_checks" type="checkbox" value=20> </td>
507 </tr>
507 </tr>
508 <tr>
508 <tr>
509 <td> <input id="uptx25" name="uptx_checks" type="checkbox" value=25> </td>
509 <td> <input id="uptx25" name="uptx_checks" type="checkbox" value=25> </td>
510 <td> <input id="uptx26" name="uptx_checks" type="checkbox" value=26> </td>
510 <td> <input id="uptx26" name="uptx_checks" type="checkbox" value=26> </td>
511 <td> <input id="uptx27" name="uptx_checks" type="checkbox" value=27> </td>
511 <td> <input id="uptx27" name="uptx_checks" type="checkbox" value=27> </td>
512 <td> <input id="uptx28" name="uptx_checks" type="checkbox" value=28> </td>
512 <td> <input id="uptx28" name="uptx_checks" type="checkbox" value=28> </td>
513 </tr>
513 </tr>
514 </table>
514 </table>
515 </td>
515 </td>
516 <td> <b>East Quarter</b>
516 <td> <b>East Quarter</b>
517 <table align="center" class="tx_east_quarter">
517 <table align="center" class="tx_east_quarter">
518 <tr>
518 <tr>
519 <td> <input id="uptx5" name="uptx_checks" type="checkbox" value=5> </td>
519 <td> <input id="uptx5" name="uptx_checks" type="checkbox" value=5> </td>
520 <td> <input id="uptx6" name="uptx_checks" type="checkbox" value=6> </td>
520 <td> <input id="uptx6" name="uptx_checks" type="checkbox" value=6> </td>
521 <td> <input id="uptx7" name="uptx_checks" type="checkbox" value=7> </td>
521 <td> <input id="uptx7" name="uptx_checks" type="checkbox" value=7> </td>
522 <td> <input id="uptx8" name="uptx_checks" type="checkbox" value=8> </td>
522 <td> <input id="uptx8" name="uptx_checks" type="checkbox" value=8> </td>
523 </tr>
523 </tr>
524 <tr>
524 <tr>
525 <td> <input id="uptx13" name="uptx_checks" type="checkbox" value=13> </td>
525 <td> <input id="uptx13" name="uptx_checks" type="checkbox" value=13> </td>
526 <td> <input id="uptx14" name="uptx_checks" type="checkbox" value=14> </td>
526 <td> <input id="uptx14" name="uptx_checks" type="checkbox" value=14> </td>
527 <td> <input id="uptx15" name="uptx_checks" type="checkbox" value=15> </td>
527 <td> <input id="uptx15" name="uptx_checks" type="checkbox" value=15> </td>
528 <td> <input id="uptx16" name="uptx_checks" type="checkbox" value=16></td>
528 <td> <input id="uptx16" name="uptx_checks" type="checkbox" value=16></td>
529 </tr>
529 </tr>
530 <tr>
530 <tr>
531 <td> <input id="uptx21" name="uptx_checks" type="checkbox" value=21> </td>
531 <td> <input id="uptx21" name="uptx_checks" type="checkbox" value=21> </td>
532 <td> <input id="uptx22" name="uptx_checks" type="checkbox" value=22> </td>
532 <td> <input id="uptx22" name="uptx_checks" type="checkbox" value=22> </td>
533 <td> <input id="uptx23" name="uptx_checks" type="checkbox" value=23> </td>
533 <td> <input id="uptx23" name="uptx_checks" type="checkbox" value=23> </td>
534 <td> <input id="uptx24" name="uptx_checks" type="checkbox" value=24> </td>
534 <td> <input id="uptx24" name="uptx_checks" type="checkbox" value=24> </td>
535 </tr>
535 </tr>
536 <tr>
536 <tr>
537 <td> <input id="uptx29" name="uptx_checks" type="checkbox" value=29> </td>
537 <td> <input id="uptx29" name="uptx_checks" type="checkbox" value=29> </td>
538 <td> <input id="uptx30" name="uptx_checks" type="checkbox" value=30> </td>
538 <td> <input id="uptx30" name="uptx_checks" type="checkbox" value=30> </td>
539 <td> <input id="uptx31" name="uptx_checks" type="checkbox" value=31> </td>
539 <td> <input id="uptx31" name="uptx_checks" type="checkbox" value=31> </td>
540 <td> <input id="uptx32" name="uptx_checks" type="checkbox" value=32> </td>
540 <td> <input id="uptx32" name="uptx_checks" type="checkbox" value=32> </td>
541 </tr>
541 </tr>
542 </table>
542 </table>
543 </td>
543 </td>
544 </tr>
544 </tr>
545 <tr>
545 <tr>
546 <td> <b>West Quarter</b>
546 <td> <b>West Quarter</b>
547 <table align="center" class="tx_west_quarter">
547 <table align="center" class="tx_west_quarter">
548 <tr>
548 <tr>
549 <td> <input id="uptx33" name="uptx_checks" type="checkbox" value=33> </td> <!--class="checkbox-inline"--->
549 <td> <input id="uptx33" name="uptx_checks" type="checkbox" value=33> </td> <!--class="checkbox-inline"--->
550 <td> <input id="uptx34" name="uptx_checks" type="checkbox" value=34> </td>
550 <td> <input id="uptx34" name="uptx_checks" type="checkbox" value=34> </td>
551 <td> <input id="uptx35" name="uptx_checks" type="checkbox" value=35> </td>
551 <td> <input id="uptx35" name="uptx_checks" type="checkbox" value=35> </td>
552 <td> <input id="uptx36" name="uptx_checks" type="checkbox" value=36> </td>
552 <td> <input id="uptx36" name="uptx_checks" type="checkbox" value=36> </td>
553 </tr>
553 </tr>
554 <tr>
554 <tr>
555 <td> <input id="uptx41" name="uptx_checks" type="checkbox" value=41> </td>
555 <td> <input id="uptx41" name="uptx_checks" type="checkbox" value=41> </td>
556 <td> <input id="uptx42" name="uptx_checks" type="checkbox" value=42> </td>
556 <td> <input id="uptx42" name="uptx_checks" type="checkbox" value=42> </td>
557 <td> <input id="uptx43" name="uptx_checks" type="checkbox" value=43> </td>
557 <td> <input id="uptx43" name="uptx_checks" type="checkbox" value=43> </td>
558 <td> <input id="uptx44" name="uptx_checks" type="checkbox" value=44> </td>
558 <td> <input id="uptx44" name="uptx_checks" type="checkbox" value=44> </td>
559 </tr>
559 </tr>
560 <tr>
560 <tr>
561 <td> <input id="uptx49" name="uptx_checks" type="checkbox" value=49> </td>
561 <td> <input id="uptx49" name="uptx_checks" type="checkbox" value=49> </td>
562 <td> <input id="uptx50" name="uptx_checks" type="checkbox" value=50> </td>
562 <td> <input id="uptx50" name="uptx_checks" type="checkbox" value=50> </td>
563 <td> <input id="uptx51" name="uptx_checks" type="checkbox" value=51> </td>
563 <td> <input id="uptx51" name="uptx_checks" type="checkbox" value=51> </td>
564 <td> <input id="uptx52" name="uptx_checks" type="checkbox" value=52> </td>
564 <td> <input id="uptx52" name="uptx_checks" type="checkbox" value=52> </td>
565 </tr>
565 </tr>
566 <tr>
566 <tr>
567 <td> <input id="uptx57" name="uptx_checks" type="checkbox" value=57> </td>
567 <td> <input id="uptx57" name="uptx_checks" type="checkbox" value=57> </td>
568 <td> <input id="uptx58" name="uptx_checks" type="checkbox" value=58> </td>
568 <td> <input id="uptx58" name="uptx_checks" type="checkbox" value=58> </td>
569 <td> <input id="uptx59" name="uptx_checks" type="checkbox" value=59> </td>
569 <td> <input id="uptx59" name="uptx_checks" type="checkbox" value=59> </td>
570 <td> <input id="uptx60" name="uptx_checks" type="checkbox" value=60> </td>
570 <td> <input id="uptx60" name="uptx_checks" type="checkbox" value=60> </td>
571 </tr>
571 </tr>
572 </table>
572 </table>
573 </td>
573 </td>
574 <td> <b>South Quarter</b>
574 <td> <b>South Quarter</b>
575 <table align="center" class="tx_south_quarter">
575 <table align="center" class="tx_south_quarter">
576 <tr>
576 <tr>
577 <td> <input id="uptx37" name="uptx_checks" type="checkbox" value=37> </td>
577 <td> <input id="uptx37" name="uptx_checks" type="checkbox" value=37> </td>
578 <td> <input id="uptx38" name="uptx_checks" type="checkbox" value=38> </td>
578 <td> <input id="uptx38" name="uptx_checks" type="checkbox" value=38> </td>
579 <td> <input id="uptx39" name="uptx_checks" type="checkbox" value=39> </td>
579 <td> <input id="uptx39" name="uptx_checks" type="checkbox" value=39> </td>
580 <td> <input id="uptx40" name="uptx_checks" type="checkbox" value=40> </td>
580 <td> <input id="uptx40" name="uptx_checks" type="checkbox" value=40> </td>
581 </tr>
581 </tr>
582 <tr>
582 <tr>
583 <td> <input id="uptx45" name="uptx_checks" type="checkbox" value=45> </td>
583 <td> <input id="uptx45" name="uptx_checks" type="checkbox" value=45> </td>
584 <td> <input id="uptx46" name="uptx_checks" type="checkbox" value=46> </td>
584 <td> <input id="uptx46" name="uptx_checks" type="checkbox" value=46> </td>
585 <td> <input id="uptx47" name="uptx_checks" type="checkbox" value=47> </td>
585 <td> <input id="uptx47" name="uptx_checks" type="checkbox" value=47> </td>
586 <td> <input id="uptx48" name="uptx_checks" type="checkbox" value=48> </td>
586 <td> <input id="uptx48" name="uptx_checks" type="checkbox" value=48> </td>
587 </tr>
587 </tr>
588 <tr>
588 <tr>
589 <td> <input id="uptx53" name="uptx_checks" type="checkbox" value=53> </td>
589 <td> <input id="uptx53" name="uptx_checks" type="checkbox" value=53> </td>
590 <td> <input id="uptx54" name="uptx_checks" type="checkbox" value=54> </td>
590 <td> <input id="uptx54" name="uptx_checks" type="checkbox" value=54> </td>
591 <td> <input id="uptx55" name="uptx_checks" type="checkbox" value=55> </td>
591 <td> <input id="uptx55" name="uptx_checks" type="checkbox" value=55> </td>
592 <td> <input id="uptx56" name="uptx_checks" type="checkbox" value=56> </td>
592 <td> <input id="uptx56" name="uptx_checks" type="checkbox" value=56> </td>
593 </tr>
593 </tr>
594 <tr>
594 <tr>
595 <td> <input id="uptx61" name="uptx_checks" type="checkbox" value=61> </td>
595 <td> <input id="uptx61" name="uptx_checks" type="checkbox" value=61> </td>
596 <td> <input id="uptx62" name="uptx_checks" type="checkbox" value=62> </td>
596 <td> <input id="uptx62" name="uptx_checks" type="checkbox" value=62> </td>
597 <td> <input id="uptx63" name="uptx_checks" type="checkbox" value=63> </td>
597 <td> <input id="uptx63" name="uptx_checks" type="checkbox" value=63> </td>
598 <td> <input id="uptx64" name="uptx_checks" type="checkbox" value=64> </td>
598 <td> <input id="uptx64" name="uptx_checks" type="checkbox" value=64> </td>
599 </tr>
599 </tr>
600 </table>
600 </table>
601 </td>
601 </td>
602 </tr>
602 </tr>
603 </table>
603 </table>
604
604
605 <table class="abs_rx">
605 <table class="abs_rx">
606 <tr>
606 <tr>
607 <td colspan="2"> <b>RX</b> </td>
607 <td colspan="2"> <b>RX</b> </td>
608 </tr>
608 </tr>
609 <tr>
609 <tr>
610 <td> <b>North Quarter</b>
610 <td> <b>North Quarter</b>
611 <table align="center" class="rx_north_quarter">
611 <table align="center" class="rx_north_quarter">
612 <tr>
612 <tr>
613 <td> <input id="uprx1" name="uprx_checks" type="checkbox" value=1> </td>
613 <td> <input id="uprx1" name="uprx_checks" type="checkbox" value=1> </td>
614 <td> <input id="uprx2" name="uprx_checks" type="checkbox" value=2> </td>
614 <td> <input id="uprx2" name="uprx_checks" type="checkbox" value=2> </td>
615 <td> <input id="uprx3" name="uprx_checks" type="checkbox" value=3> </td>
615 <td> <input id="uprx3" name="uprx_checks" type="checkbox" value=3> </td>
616 <td> <input id="uprx4" name="uprx_checks" type="checkbox" value=4> </td>
616 <td> <input id="uprx4" name="uprx_checks" type="checkbox" value=4> </td>
617 </tr>
617 </tr>
618 <tr>
618 <tr>
619 <td> <input id="uprx9" name="uprx_checks" type="checkbox" value=9> </td>
619 <td> <input id="uprx9" name="uprx_checks" type="checkbox" value=9> </td>
620 <td> <input id="uprx10" name="uprx_checks" type="checkbox" value=10> </td>
620 <td> <input id="uprx10" name="uprx_checks" type="checkbox" value=10> </td>
621 <td> <input id="uprx11" name="uprx_checks" type="checkbox" value=11> </td>
621 <td> <input id="uprx11" name="uprx_checks" type="checkbox" value=11> </td>
622 <td> <input id="uprx12" name="uprx_checks" type="checkbox" value=12> </td>
622 <td> <input id="uprx12" name="uprx_checks" type="checkbox" value=12> </td>
623 </tr>
623 </tr>
624 <tr>
624 <tr>
625 <td> <input id="uprx17" name="uprx_checks" type="checkbox" value=17> </td>
625 <td> <input id="uprx17" name="uprx_checks" type="checkbox" value=17> </td>
626 <td> <input id="uprx18" name="uprx_checks" type="checkbox" value=18> </td>
626 <td> <input id="uprx18" name="uprx_checks" type="checkbox" value=18> </td>
627 <td> <input id="uprx19" name="uprx_checks" type="checkbox" value=19> </td>
627 <td> <input id="uprx19" name="uprx_checks" type="checkbox" value=19> </td>
628 <td> <input id="uprx20" name="uprx_checks" type="checkbox" value=20> </td>
628 <td> <input id="uprx20" name="uprx_checks" type="checkbox" value=20> </td>
629 </tr>
629 </tr>
630 <tr>
630 <tr>
631 <td> <input id="uprx25" name="uprx_checks" type="checkbox" value=25> </td>
631 <td> <input id="uprx25" name="uprx_checks" type="checkbox" value=25> </td>
632 <td> <input id="uprx26" name="uprx_checks" type="checkbox" value=26> </td>
632 <td> <input id="uprx26" name="uprx_checks" type="checkbox" value=26> </td>
633 <td> <input id="uprx27" name="uprx_checks" type="checkbox" value=27> </td>
633 <td> <input id="uprx27" name="uprx_checks" type="checkbox" value=27> </td>
634 <td> <input id="uprx28" name="uprx_checks" type="checkbox" value=28> </td>
634 <td> <input id="uprx28" name="uprx_checks" type="checkbox" value=28> </td>
635 </tr>
635 </tr>
636 </table>
636 </table>
637 </td>
637 </td>
638 <td> <b>East Quarter</b>
638 <td> <b>East Quarter</b>
639 <table align="center" class="rx_east_quarter">
639 <table align="center" class="rx_east_quarter">
640 <tr>
640 <tr>
641 <td> <input id="uprx5" name="uprx_checks" type="checkbox" value=5> </td>
641 <td> <input id="uprx5" name="uprx_checks" type="checkbox" value=5> </td>
642 <td> <input id="uprx6" name="uprx_checks" type="checkbox" value=6> </td>
642 <td> <input id="uprx6" name="uprx_checks" type="checkbox" value=6> </td>
643 <td> <input id="uprx7" name="uprx_checks" type="checkbox" value=7> </td>
643 <td> <input id="uprx7" name="uprx_checks" type="checkbox" value=7> </td>
644 <td> <input id="uprx8" name="uprx_checks" type="checkbox" value=8> </td>
644 <td> <input id="uprx8" name="uprx_checks" type="checkbox" value=8> </td>
645 </tr>
645 </tr>
646 <tr>
646 <tr>
647 <td> <input id="uprx13" name="uprx_checks" type="checkbox" value=13> </td>
647 <td> <input id="uprx13" name="uprx_checks" type="checkbox" value=13> </td>
648 <td> <input id="uprx14" name="uprx_checks" type="checkbox" value=14> </td>
648 <td> <input id="uprx14" name="uprx_checks" type="checkbox" value=14> </td>
649 <td> <input id="uprx15" name="uprx_checks" type="checkbox" value=15> </td>
649 <td> <input id="uprx15" name="uprx_checks" type="checkbox" value=15> </td>
650 <td> <input id="uprx16" name="uprx_checks" type="checkbox" value=16></td>
650 <td> <input id="uprx16" name="uprx_checks" type="checkbox" value=16></td>
651 </tr>
651 </tr>
652 <tr>
652 <tr>
653 <td> <input id="uprx21" name="uprx_checks" type="checkbox" value=21> </td>
653 <td> <input id="uprx21" name="uprx_checks" type="checkbox" value=21> </td>
654 <td> <input id="uprx22" name="uprx_checks" type="checkbox" value=22> </td>
654 <td> <input id="uprx22" name="uprx_checks" type="checkbox" value=22> </td>
655 <td> <input id="uprx23" name="uprx_checks" type="checkbox" value=23> </td>
655 <td> <input id="uprx23" name="uprx_checks" type="checkbox" value=23> </td>
656 <td> <input id="uprx24" name="uprx_checks" type="checkbox" value=24> </td>
656 <td> <input id="uprx24" name="uprx_checks" type="checkbox" value=24> </td>
657 </tr>
657 </tr>
658 <tr>
658 <tr>
659 <td> <input id="uprx29" name="uprx_checks" type="checkbox" value=29> </td>
659 <td> <input id="uprx29" name="uprx_checks" type="checkbox" value=29> </td>
660 <td> <input id="uprx30" name="uprx_checks" type="checkbox" value=30> </td>
660 <td> <input id="uprx30" name="uprx_checks" type="checkbox" value=30> </td>
661 <td> <input id="uprx31" name="uprx_checks" type="checkbox" value=31> </td>
661 <td> <input id="uprx31" name="uprx_checks" type="checkbox" value=31> </td>
662 <td> <input id="uprx32" name="uprx_checks" type="checkbox" value=32> </td>
662 <td> <input id="uprx32" name="uprx_checks" type="checkbox" value=32> </td>
663 </tr>
663 </tr>
664 </table>
664 </table>
665 </td>
665 </td>
666 </tr>
666 </tr>
667 <tr>
667 <tr>
668 <td> <b>West Quarter</b>
668 <td> <b>West Quarter</b>
669 <table align="center" class="rx_west_quarter">
669 <table align="center" class="rx_west_quarter">
670 <tr>
670 <tr>
671 <td> <input id="uprx33" name="uprx_checks" type="checkbox" value=33> </td> <!--class="checkbox-inline"--->
671 <td> <input id="uprx33" name="uprx_checks" type="checkbox" value=33> </td> <!--class="checkbox-inline"--->
672 <td> <input id="uprx34" name="uprx_checks" type="checkbox" value=34> </td>
672 <td> <input id="uprx34" name="uprx_checks" type="checkbox" value=34> </td>
673 <td> <input id="uprx35" name="uprx_checks" type="checkbox" value=35> </td>
673 <td> <input id="uprx35" name="uprx_checks" type="checkbox" value=35> </td>
674 <td> <input id="uprx36" name="uprx_checks" type="checkbox" value=36> </td>
674 <td> <input id="uprx36" name="uprx_checks" type="checkbox" value=36> </td>
675 </tr>
675 </tr>
676 <tr>
676 <tr>
677 <td> <input id="uprx41" name="uprx_checks" type="checkbox" value=41> </td>
677 <td> <input id="uprx41" name="uprx_checks" type="checkbox" value=41> </td>
678 <td> <input id="uprx42" name="uprx_checks" type="checkbox" value=42> </td>
678 <td> <input id="uprx42" name="uprx_checks" type="checkbox" value=42> </td>
679 <td> <input id="uprx43" name="uprx_checks" type="checkbox" value=43> </td>
679 <td> <input id="uprx43" name="uprx_checks" type="checkbox" value=43> </td>
680 <td> <input id="uprx44" name="uprx_checks" type="checkbox" value=44> </td>
680 <td> <input id="uprx44" name="uprx_checks" type="checkbox" value=44> </td>
681 </tr>
681 </tr>
682 <tr>
682 <tr>
683 <td> <input id="uprx49" name="uprx_checks" type="checkbox" value=49> </td>
683 <td> <input id="uprx49" name="uprx_checks" type="checkbox" value=49> </td>
684 <td> <input id="uprx50" name="uprx_checks" type="checkbox" value=50> </td>
684 <td> <input id="uprx50" name="uprx_checks" type="checkbox" value=50> </td>
685 <td> <input id="uprx51" name="uprx_checks" type="checkbox" value=51> </td>
685 <td> <input id="uprx51" name="uprx_checks" type="checkbox" value=51> </td>
686 <td> <input id="uprx52" name="uprx_checks" type="checkbox" value=52> </td>
686 <td> <input id="uprx52" name="uprx_checks" type="checkbox" value=52> </td>
687 </tr>
687 </tr>
688 <tr>
688 <tr>
689 <td> <input id="uprx57" name="uprx_checks" type="checkbox" value=57> </td>
689 <td> <input id="uprx57" name="uprx_checks" type="checkbox" value=57> </td>
690 <td> <input id="uprx58" name="uprx_checks" type="checkbox" value=58> </td>
690 <td> <input id="uprx58" name="uprx_checks" type="checkbox" value=58> </td>
691 <td> <input id="uprx59" name="uprx_checks" type="checkbox" value=59> </td>
691 <td> <input id="uprx59" name="uprx_checks" type="checkbox" value=59> </td>
692 <td> <input id="uprx60" name="uprx_checks" type="checkbox" value=60> </td>
692 <td> <input id="uprx60" name="uprx_checks" type="checkbox" value=60> </td>
693 </tr>
693 </tr>
694 </table>
694 </table>
695 </td>
695 </td>
696 <td> <b>South Quarter</b>
696 <td> <b>South Quarter</b>
697 <table align="center" class="rx_south_quarter">
697 <table align="center" class="rx_south_quarter">
698 <tr>
698 <tr>
699 <td> <input id="uprx37" name="uprx_checks" type="checkbox" value=37> </td>
699 <td> <input id="uprx37" name="uprx_checks" type="checkbox" value=37> </td>
700 <td> <input id="uprx38" name="uprx_checks" type="checkbox" value=38> </td>
700 <td> <input id="uprx38" name="uprx_checks" type="checkbox" value=38> </td>
701 <td> <input id="uprx39" name="uprx_checks" type="checkbox" value=39> </td>
701 <td> <input id="uprx39" name="uprx_checks" type="checkbox" value=39> </td>
702 <td> <input id="uprx40" name="uprx_checks" type="checkbox" value=40> </td>
702 <td> <input id="uprx40" name="uprx_checks" type="checkbox" value=40> </td>
703 </tr>
703 </tr>
704 <tr>
704 <tr>
705 <td> <input id="uprx45" name="uprx_checks" type="checkbox" value=45> </td>
705 <td> <input id="uprx45" name="uprx_checks" type="checkbox" value=45> </td>
706 <td> <input id="uprx46" name="uprx_checks" type="checkbox" value=46> </td>
706 <td> <input id="uprx46" name="uprx_checks" type="checkbox" value=46> </td>
707 <td> <input id="uprx47" name="uprx_checks" type="checkbox" value=47> </td>
707 <td> <input id="uprx47" name="uprx_checks" type="checkbox" value=47> </td>
708 <td> <input id="uprx48" name="uprx_checks" type="checkbox" value=48> </td>
708 <td> <input id="uprx48" name="uprx_checks" type="checkbox" value=48> </td>
709 </tr>
709 </tr>
710 <tr>
710 <tr>
711 <td> <input id="uprx53" name="uprx_checks" type="checkbox" value=53> </td>
711 <td> <input id="uprx53" name="uprx_checks" type="checkbox" value=53> </td>
712 <td> <input id="uprx54" name="uprx_checks" type="checkbox" value=54> </td>
712 <td> <input id="uprx54" name="uprx_checks" type="checkbox" value=54> </td>
713 <td> <input id="uprx55" name="uprx_checks" type="checkbox" value=55> </td>
713 <td> <input id="uprx55" name="uprx_checks" type="checkbox" value=55> </td>
714 <td> <input id="uprx56" name="uprx_checks" type="checkbox" value=56> </td>
714 <td> <input id="uprx56" name="uprx_checks" type="checkbox" value=56> </td>
715 </tr>
715 </tr>
716 <tr>
716 <tr>
717 <td> <input id="uprx61" name="uprx_checks" type="checkbox" value=61> </td>
717 <td> <input id="uprx61" name="uprx_checks" type="checkbox" value=61> </td>
718 <td> <input id="uprx62" name="uprx_checks" type="checkbox" value=62> </td>
718 <td> <input id="uprx62" name="uprx_checks" type="checkbox" value=62> </td>
719 <td> <input id="uprx63" name="uprx_checks" type="checkbox" value=63> </td>
719 <td> <input id="uprx63" name="uprx_checks" type="checkbox" value=63> </td>
720 <td> <input id="uprx64" name="uprx_checks" type="checkbox" value=64> </td>
720 <td> <input id="uprx64" name="uprx_checks" type="checkbox" value=64> </td>
721 </tr>
721 </tr>
722 </table>
722 </table>
723 </td>
723 </td>
724 </tr>
724 </tr>
725 </table>
725 </table>
726
726
727
727
728 <div id="id_ues_up" class="container">
728 <div id="id_ues_up" class="container">
729 <h5>Ues</h5>
729 <h5>Ues</h5>
730 <div class="col-xs-2">
730 <div class="col-xs-2">
731 <input name="ues_up1" value="{beam.get_up_ues[0]}" class="form-control" id="input1" type="number" step="any">
731 <input name="ues_up1" value="{beam.get_up_ues[0]}" class="form-control" id="input1" type="number" step="any">
732 </div>
732 </div>
733 <div class="col-xs-2">
733 <div class="col-xs-2">
734 <input name="ues_up2" value="{beam.get_up_ues[1]}" class="form-control" id="input2" type="number" step="any">
734 <input name="ues_up2" value="{beam.get_up_ues[1]}" class="form-control" id="input2" type="number" step="any">
735 </div>
735 </div>
736 <div class="col-xs-2">
736 <div class="col-xs-2">
737 <input name="ues_up3" value="{beam.get_up_ues[2]}" class="form-control" id="input3" type="number" step="any">
737 <input name="ues_up3" value="{beam.get_up_ues[2]}" class="form-control" id="input3" type="number" step="any">
738 </div>
738 </div>
739 <div class="col-xs-2">
739 <div class="col-xs-2">
740 <input name="ues_up4" value="{beam.get_up_ues[3]}" class="form-control" id="input4" type="number" step="any">
740 <input name="ues_up4" value="{beam.get_up_ues[3]}" class="form-control" id="input4" type="number" step="any">
741 </div>
741 </div>
742 <div style="vertical-align:center; margin-top:20px;">
742 <div style="vertical-align:center; margin-top:20px;">
743 <label class="checkbox-inline"><input name="onlyrx" {checked_onlyrx} style="vertical-align:bottom" id="onlyrx_up" type="checkbox" value=1>Only RX</label>
743 <label class="checkbox-inline"><input name="onlyrx" {checked_onlyrx} style="vertical-align:bottom" id="onlyrx_up" type="checkbox" value=1>Only RX</label>
744 </div>
744 </div>
745 </div>
745 </div>
746
746
747
747
748 </div>
748 </div>
749
749
750
750
751
751
752 </div>
752 </div>
753 </div>
753 </div>
754 '''.format(beam=beam, checked_onlyrx=checked_onlyrx)
754 '''.format(beam=beam, checked_onlyrx=checked_onlyrx)
755
755
756 script = '''
756 script = '''
757
757
758 <script type="text/javascript">
758 <script type="text/javascript">
759 $(document).ready(function () {{
759 $(document).ready(function () {{
760
760
761 var antenna_upvalues = {beam.get_upvalues};
761 var antenna_upvalues = {beam.get_upvalues};
762 var tx_upvalues = {beam.get_uptx};
762 var tx_upvalues = {beam.get_uptx};
763 var rx_upvalues = {beam.get_uprx};
763 var rx_upvalues = {beam.get_uprx};
764
764
765 for (var i = 1, len = 65; i < len; i++) {{
765 for (var i = 1, len = 65; i < len; i++) {{
766 var abs_select = "abs_value"+i.toString()
766 var abs_select = "abs_value"+i.toString()
767 document.getElementById(abs_select).value = antenna_upvalues[i-1];
767 document.getElementById(abs_select).value = antenna_upvalues[i-1];
768
768
769 var abs_uptx = "uptx"+i.toString()
769 var abs_uptx = "uptx"+i.toString()
770 if (tx_upvalues[i-1]==1){{
770 if (tx_upvalues[i-1]==1){{
771 document.getElementById(abs_uptx).checked = true;
771 document.getElementById(abs_uptx).checked = true;
772 }}
772 }}
773
773
774 var abs_uprx = "uprx"+i.toString()
774 var abs_uprx = "uprx"+i.toString()
775 if (rx_upvalues[i-1]==1){{
775 if (rx_upvalues[i-1]==1){{
776 document.getElementById(abs_uprx).checked = true;
776 document.getElementById(abs_uprx).checked = true;
777 }}
777 }}
778 }}
778 }}
779
779
780
780
781 for (var i = 1, len = 65; i < len; i++) {{
781 for (var i = 1, len = 65; i < len; i++) {{
782
782
783 }}
783 }}
784
784
785
785
786
786
787 }});
787 }});
788 </script>
788 </script>
789
789
790 '''.format(beam=beam)
790 '''.format(beam=beam)
791
791
792 return mark_safe(style+html+script)
792 return mark_safe(style+html+script)
793
793
794
794
795 class EditDownDataWidget(forms.widgets.TextInput):
795 class EditDownDataWidget(forms.widgets.TextInput):
796
796
797 def render(self, label, value, attrs=None):
797 def render(self, name, value, attrs=None, renderer=None):
798
798
799 try:
799 try:
800 beam = attrs.get('beam', value)
800 beam = attrs.get('beam', value)
801 except:
801 except:
802 return
802 return
803
803
804 checked_onlyrx = ''
804 checked_onlyrx = ''
805 if beam.get_down_onlyrx == True:
805 if beam.get_down_onlyrx == True:
806 checked_onlyrx = 'checked="True"'
806 checked_onlyrx = 'checked="True"'
807
807
808 html = '''
808 html = '''
809 <br>
809 <br>
810 <div class="panel-group">
810 <div class="panel-group">
811 <div style="display: inline-block" id="DOWN" class="panel panel-default">
811 <div style="display: inline-block" id="DOWN" class="panel panel-default">
812
812
813 <div class="panel-heading">Down</div>
813 <div class="panel-heading">Down</div>
814
814
815
815
816 <div class="panel-body">
816 <div class="panel-body">
817
817
818 <table class="abs">
818 <table class="abs">
819 <tr>
819 <tr>
820 <td colspan="2"> <b>Antenna</b> </td>
820 <td colspan="2"> <b>Antenna</b> </td>
821 </tr>
821 </tr>
822 <tr>
822 <tr>
823 <td> <b>North Quarter</b>
823 <td> <b>North Quarter</b>
824 <table class="north_quarter">
824 <table class="north_quarter">
825 <tr>
825 <tr>
826 <td><select id="abs_dvalue1" name="abs_down1"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
826 <td><select id="abs_dvalue1" name="abs_down1"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
827 <td><select id="abs_dvalue2" name="abs_down2"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
827 <td><select id="abs_dvalue2" name="abs_down2"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
828 <td><select id="abs_dvalue3" name="abs_down3"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
828 <td><select id="abs_dvalue3" name="abs_down3"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
829 <td><select id="abs_dvalue4" name="abs_down4"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
829 <td><select id="abs_dvalue4" name="abs_down4"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
830 </tr>
830 </tr>
831 <tr>
831 <tr>
832 <td><select id="abs_dvalue9" name="abs_down9"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
832 <td><select id="abs_dvalue9" name="abs_down9"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
833 <td><select id="abs_dvalue10" name="abs_down10"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
833 <td><select id="abs_dvalue10" name="abs_down10"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
834 <td><select id="abs_dvalue11" name="abs_down11"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
834 <td><select id="abs_dvalue11" name="abs_down11"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
835 <td><select id="abs_dvalue12" name="abs_down12"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
835 <td><select id="abs_dvalue12" name="abs_down12"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
836 </tr>
836 </tr>
837 <tr>
837 <tr>
838 <td><select id="abs_dvalue17" name="abs_down17"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
838 <td><select id="abs_dvalue17" name="abs_down17"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
839 <td><select id="abs_dvalue18" name="abs_down18"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
839 <td><select id="abs_dvalue18" name="abs_down18"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
840 <td><select id="abs_dvalue19" name="abs_down19"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
840 <td><select id="abs_dvalue19" name="abs_down19"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
841 <td><select id="abs_dvalue20" name="abs_down20"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
841 <td><select id="abs_dvalue20" name="abs_down20"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
842 </tr>
842 </tr>
843 <tr>
843 <tr>
844 <td><select id="abs_dvalue25" name="abs_down25"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
844 <td><select id="abs_dvalue25" name="abs_down25"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
845 <td><select id="abs_dvalue26" name="abs_down26"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
845 <td><select id="abs_dvalue26" name="abs_down26"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
846 <td><select id="abs_dvalue27" name="abs_down27"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
846 <td><select id="abs_dvalue27" name="abs_down27"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
847 <td><select id="abs_dvalue28" name="abs_down28"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
847 <td><select id="abs_dvalue28" name="abs_down28"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
848 </tr>
848 </tr>
849 </table>
849 </table>
850 </td>
850 </td>
851 <td> <b>East Quarter</b>
851 <td> <b>East Quarter</b>
852 <table class="east_quarter">
852 <table class="east_quarter">
853 <tr>
853 <tr>
854 <td><select id="abs_dvalue5" name="abs_down5"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
854 <td><select id="abs_dvalue5" name="abs_down5"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
855 <td><select id="abs_dvalue6" name="abs_down6"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
855 <td><select id="abs_dvalue6" name="abs_down6"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
856 <td><select id="abs_dvalue7" name="abs_down7"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
856 <td><select id="abs_dvalue7" name="abs_down7"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
857 <td><select id="abs_dvalue8" name="abs_down8"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
857 <td><select id="abs_dvalue8" name="abs_down8"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
858 </tr>
858 </tr>
859 <tr>
859 <tr>
860 <td><select id="abs_dvalue13" name="abs_down13"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
860 <td><select id="abs_dvalue13" name="abs_down13"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
861 <td><select id="abs_dvalue14" name="abs_down14"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
861 <td><select id="abs_dvalue14" name="abs_down14"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
862 <td><select id="abs_dvalue15" name="abs_down15"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
862 <td><select id="abs_dvalue15" name="abs_down15"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
863 <td><select id="abs_dvalue16" name="abs_down16"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
863 <td><select id="abs_dvalue16" name="abs_down16"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
864 </tr>
864 </tr>
865 <tr>
865 <tr>
866 <td><select id="abs_dvalue21" name="abs_down21"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
866 <td><select id="abs_dvalue21" name="abs_down21"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
867 <td><select id="abs_dvalue22" name="abs_down22"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
867 <td><select id="abs_dvalue22" name="abs_down22"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
868 <td><select id="abs_dvalue23" name="abs_down23"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
868 <td><select id="abs_dvalue23" name="abs_down23"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
869 <td><select id="abs_dvalue24" name="abs_down24"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
869 <td><select id="abs_dvalue24" name="abs_down24"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
870 </tr>
870 </tr>
871 <tr>
871 <tr>
872 <td><select id="abs_dvalue29" name="abs_down29"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
872 <td><select id="abs_dvalue29" name="abs_down29"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
873 <td><select id="abs_dvalue30" name="abs_down30"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
873 <td><select id="abs_dvalue30" name="abs_down30"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
874 <td><select id="abs_dvalue31" name="abs_down31"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
874 <td><select id="abs_dvalue31" name="abs_down31"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
875 <td><select id="abs_dvalue32" name="abs_down32"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
875 <td><select id="abs_dvalue32" name="abs_down32"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
876 </tr>
876 </tr>
877 </table>
877 </table>
878 </td>
878 </td>
879 </tr>
879 </tr>
880 <tr>
880 <tr>
881 <td> <b>West Quarter</b>
881 <td> <b>West Quarter</b>
882 <table class="west_quarter">
882 <table class="west_quarter">
883 <tr>
883 <tr>
884 <td><select id="abs_dvalue33" name="abs_down33"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
884 <td><select id="abs_dvalue33" name="abs_down33"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
885 <td><select id="abs_dvalue34" name="abs_down34"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
885 <td><select id="abs_dvalue34" name="abs_down34"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
886 <td><select id="abs_dvalue35" name="abs_down35"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
886 <td><select id="abs_dvalue35" name="abs_down35"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
887 <td><select id="abs_dvalue36" name="abs_down36"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
887 <td><select id="abs_dvalue36" name="abs_down36"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
888 </tr>
888 </tr>
889 <tr>
889 <tr>
890 <td><select id="abs_dvalue41" name="abs_down41"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
890 <td><select id="abs_dvalue41" name="abs_down41"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
891 <td><select id="abs_dvalue42" name="abs_down42"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
891 <td><select id="abs_dvalue42" name="abs_down42"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
892 <td><select id="abs_dvalue43" name="abs_down43"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
892 <td><select id="abs_dvalue43" name="abs_down43"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
893 <td><select id="abs_dvalue44" name="abs_down44"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
893 <td><select id="abs_dvalue44" name="abs_down44"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
894 </tr>
894 </tr>
895 <tr>
895 <tr>
896 <td><select id="abs_dvalue49" name="abs_down49"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
896 <td><select id="abs_dvalue49" name="abs_down49"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
897 <td><select id="abs_dvalue50" name="abs_down50"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
897 <td><select id="abs_dvalue50" name="abs_down50"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
898 <td><select id="abs_dvalue51" name="abs_down51"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
898 <td><select id="abs_dvalue51" name="abs_down51"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
899 <td><select id="abs_dvalue52" name="abs_down52"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
899 <td><select id="abs_dvalue52" name="abs_down52"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
900 </tr>
900 </tr>
901 <tr>
901 <tr>
902 <td><select id="abs_dvalue57" name="abs_down57"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
902 <td><select id="abs_dvalue57" name="abs_down57"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
903 <td><select id="abs_dvalue58" name="abs_down58"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
903 <td><select id="abs_dvalue58" name="abs_down58"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
904 <td><select id="abs_dvalue59" name="abs_down59"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
904 <td><select id="abs_dvalue59" name="abs_down59"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
905 <td><select id="abs_dvalue60" name="abs_down60"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
905 <td><select id="abs_dvalue60" name="abs_down60"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
906 </tr>
906 </tr>
907 </table>
907 </table>
908 </td>
908 </td>
909 <td> <b>South Quarter</b>
909 <td> <b>South Quarter</b>
910 <table class="south_quarter">
910 <table class="south_quarter">
911 <tr>
911 <tr>
912 <td><select id="abs_dvalue37" name="abs_down37"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
912 <td><select id="abs_dvalue37" name="abs_down37"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
913 <td><select id="abs_dvalue38" name="abs_down38"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
913 <td><select id="abs_dvalue38" name="abs_down38"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
914 <td><select id="abs_dvalue39" name="abs_down39"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
914 <td><select id="abs_dvalue39" name="abs_down39"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
915 <td><select id="abs_dvalue40" name="abs_down40"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
915 <td><select id="abs_dvalue40" name="abs_down40"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
916 </tr>
916 </tr>
917 <tr>
917 <tr>
918 <td><select id="abs_dvalue45" name="abs_down45"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
918 <td><select id="abs_dvalue45" name="abs_down45"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
919 <td><select id="abs_dvalue46" name="abs_down46"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
919 <td><select id="abs_dvalue46" name="abs_down46"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
920 <td><select id="abs_dvalue47" name="abs_down47"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
920 <td><select id="abs_dvalue47" name="abs_down47"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
921 <td><select id="abs_dvalue48" name="abs_down48"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
921 <td><select id="abs_dvalue48" name="abs_down48"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
922 </tr>
922 </tr>
923 <tr>
923 <tr>
924 <td><select id="abs_dvalue53" name="abs_down53"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
924 <td><select id="abs_dvalue53" name="abs_down53"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
925 <td><select id="abs_dvalue54" name="abs_down54"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
925 <td><select id="abs_dvalue54" name="abs_down54"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
926 <td><select id="abs_dvalue55" name="abs_down55"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
926 <td><select id="abs_dvalue55" name="abs_down55"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
927 <td><select id="abs_dvalue56" name="abs_down56"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
927 <td><select id="abs_dvalue56" name="abs_down56"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
928 </tr>
928 </tr>
929 <tr>
929 <tr>
930 <td><select id="abs_dvalue61" name="abs_down61"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
930 <td><select id="abs_dvalue61" name="abs_down61"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
931 <td><select id="abs_dvalue62" name="abs_down62"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
931 <td><select id="abs_dvalue62" name="abs_down62"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
932 <td><select id="abs_dvalue63" name="abs_down63"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
932 <td><select id="abs_dvalue63" name="abs_down63"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
933 <td><select id="abs_dvalue64" name="abs_down64"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
933 <td><select id="abs_dvalue64" name="abs_down64"> <option value=0>0.0</option> <option value=0.5>0.5</option> <option value=1>1.0</option> <option value=1.5>1.5</option> <option value=2>2.0</option> <option value=2.5>2.5</option> <option value=3>3.0</option> <option value=3.5>3.5</option> </select></td>
934 </tr>
934 </tr>
935 </table>
935 </table>
936 </td>
936 </td>
937 </tr>
937 </tr>
938 </table>
938 </table>
939
939
940
940
941
941
942 <table class="abs_tx">
942 <table class="abs_tx">
943 <tr>
943 <tr>
944 <td colspan="2"> <b>TX</b> </td>
944 <td colspan="2"> <b>TX</b> </td>
945 </tr>
945 </tr>
946 <tr>
946 <tr>
947 <td> <b>North Quarter</b>
947 <td> <b>North Quarter</b>
948 <table align="center" class="tx_north_quarter">
948 <table align="center" class="tx_north_quarter">
949 <tr>
949 <tr>
950 <td> <input id="downtx1" name="downtx_checks" type="checkbox" value=1> </td>
950 <td> <input id="downtx1" name="downtx_checks" type="checkbox" value=1> </td>
951 <td> <input id="downtx2" name="downtx_checks" type="checkbox" value=2> </td>
951 <td> <input id="downtx2" name="downtx_checks" type="checkbox" value=2> </td>
952 <td> <input id="downtx3" name="downtx_checks" type="checkbox" value=3> </td>
952 <td> <input id="downtx3" name="downtx_checks" type="checkbox" value=3> </td>
953 <td> <input id="downtx4" name="downtx_checks" type="checkbox" value=4> </td>
953 <td> <input id="downtx4" name="downtx_checks" type="checkbox" value=4> </td>
954 </tr>
954 </tr>
955 <tr>
955 <tr>
956 <td> <input id="downtx9" name="downtx_checks" type="checkbox" value=9> </td>
956 <td> <input id="downtx9" name="downtx_checks" type="checkbox" value=9> </td>
957 <td> <input id="downtx10" name="downtx_checks" type="checkbox" value=10> </td>
957 <td> <input id="downtx10" name="downtx_checks" type="checkbox" value=10> </td>
958 <td> <input id="downtx11" name="downtx_checks" type="checkbox" value=11> </td>
958 <td> <input id="downtx11" name="downtx_checks" type="checkbox" value=11> </td>
959 <td> <input id="downtx12" name="downtx_checks" type="checkbox" value=12> </td>
959 <td> <input id="downtx12" name="downtx_checks" type="checkbox" value=12> </td>
960 </tr>
960 </tr>
961 <tr>
961 <tr>
962 <td> <input id="downtx17" name="downtx_checks" type="checkbox" value=17> </td>
962 <td> <input id="downtx17" name="downtx_checks" type="checkbox" value=17> </td>
963 <td> <input id="downtx18" name="downtx_checks" type="checkbox" value=18> </td>
963 <td> <input id="downtx18" name="downtx_checks" type="checkbox" value=18> </td>
964 <td> <input id="downtx19" name="downtx_checks" type="checkbox" value=19> </td>
964 <td> <input id="downtx19" name="downtx_checks" type="checkbox" value=19> </td>
965 <td> <input id="downtx20" name="downtx_checks" type="checkbox" value=20> </td>
965 <td> <input id="downtx20" name="downtx_checks" type="checkbox" value=20> </td>
966 </tr>
966 </tr>
967 <tr>
967 <tr>
968 <td> <input id="downtx25" name="downtx_checks" type="checkbox" value=25> </td>
968 <td> <input id="downtx25" name="downtx_checks" type="checkbox" value=25> </td>
969 <td> <input id="downtx26" name="downtx_checks" type="checkbox" value=26> </td>
969 <td> <input id="downtx26" name="downtx_checks" type="checkbox" value=26> </td>
970 <td> <input id="downtx27" name="downtx_checks" type="checkbox" value=27> </td>
970 <td> <input id="downtx27" name="downtx_checks" type="checkbox" value=27> </td>
971 <td> <input id="downtx28" name="downtx_checks" type="checkbox" value=28> </td>
971 <td> <input id="downtx28" name="downtx_checks" type="checkbox" value=28> </td>
972 </tr>
972 </tr>
973 </table>
973 </table>
974 </td>
974 </td>
975 <td> <b>East Quarter</b>
975 <td> <b>East Quarter</b>
976 <table align="center" class="tx_east_quarter">
976 <table align="center" class="tx_east_quarter">
977 <tr>
977 <tr>
978 <td> <input id="downtx5" name="downtx_checks" type="checkbox" value=5> </td>
978 <td> <input id="downtx5" name="downtx_checks" type="checkbox" value=5> </td>
979 <td> <input id="downtx6" name="downtx_checks" type="checkbox" value=6> </td>
979 <td> <input id="downtx6" name="downtx_checks" type="checkbox" value=6> </td>
980 <td> <input id="downtx7" name="downtx_checks" type="checkbox" value=7> </td>
980 <td> <input id="downtx7" name="downtx_checks" type="checkbox" value=7> </td>
981 <td> <input id="downtx8" name="downtx_checks" type="checkbox" value=8> </td>
981 <td> <input id="downtx8" name="downtx_checks" type="checkbox" value=8> </td>
982 </tr>
982 </tr>
983 <tr>
983 <tr>
984 <td> <input id="downtx13" name="downtx_checks" type="checkbox" value=13> </td>
984 <td> <input id="downtx13" name="downtx_checks" type="checkbox" value=13> </td>
985 <td> <input id="downtx14" name="downtx_checks" type="checkbox" value=14> </td>
985 <td> <input id="downtx14" name="downtx_checks" type="checkbox" value=14> </td>
986 <td> <input id="downtx15" name="downtx_checks" type="checkbox" value=15> </td>
986 <td> <input id="downtx15" name="downtx_checks" type="checkbox" value=15> </td>
987 <td> <input id="downtx16" name="downtx_checks" type="checkbox" value=16> </td>
987 <td> <input id="downtx16" name="downtx_checks" type="checkbox" value=16> </td>
988 </tr>
988 </tr>
989 <tr>
989 <tr>
990 <td> <input id="downtx21" name="downtx_checks" type="checkbox" value=21> </td>
990 <td> <input id="downtx21" name="downtx_checks" type="checkbox" value=21> </td>
991 <td> <input id="downtx22" name="downtx_checks" type="checkbox" value=22> </td>
991 <td> <input id="downtx22" name="downtx_checks" type="checkbox" value=22> </td>
992 <td> <input id="downtx23" name="downtx_checks" type="checkbox" value=23> </td>
992 <td> <input id="downtx23" name="downtx_checks" type="checkbox" value=23> </td>
993 <td> <input id="downtx24" name="downtx_checks" type="checkbox" value=24> </td>
993 <td> <input id="downtx24" name="downtx_checks" type="checkbox" value=24> </td>
994 </tr>
994 </tr>
995 <tr>
995 <tr>
996 <td> <input id="downtx29" name="downtx_checks" type="checkbox" value=29> </td>
996 <td> <input id="downtx29" name="downtx_checks" type="checkbox" value=29> </td>
997 <td> <input id="downtx30" name="downtx_checks" type="checkbox" value=30> </td>
997 <td> <input id="downtx30" name="downtx_checks" type="checkbox" value=30> </td>
998 <td> <input id="downtx31" name="downtx_checks" type="checkbox" value=31> </td>
998 <td> <input id="downtx31" name="downtx_checks" type="checkbox" value=31> </td>
999 <td> <input id="downtx32" name="downtx_checks" type="checkbox" value=32> </td>
999 <td> <input id="downtx32" name="downtx_checks" type="checkbox" value=32> </td>
1000 </tr>
1000 </tr>
1001 </table>
1001 </table>
1002 </td>
1002 </td>
1003 </tr>
1003 </tr>
1004 <tr>
1004 <tr>
1005 <td> <b>West Quarter</b>
1005 <td> <b>West Quarter</b>
1006 <table align="center" class="tx_west_quarter">
1006 <table align="center" class="tx_west_quarter">
1007 <tr>
1007 <tr>
1008 <td> <input id="downtx33" name="downtx_checks" type="checkbox" value=33> </td> <!--class="checkbox-inline"--->
1008 <td> <input id="downtx33" name="downtx_checks" type="checkbox" value=33> </td> <!--class="checkbox-inline"--->
1009 <td> <input id="downtx34" name="downtx_checks" type="checkbox" value=34> </td>
1009 <td> <input id="downtx34" name="downtx_checks" type="checkbox" value=34> </td>
1010 <td> <input id="downtx35" name="downtx_checks" type="checkbox" value=35> </td>
1010 <td> <input id="downtx35" name="downtx_checks" type="checkbox" value=35> </td>
1011 <td> <input id="downtx36" name="downtx_checks" type="checkbox" value=36> </td>
1011 <td> <input id="downtx36" name="downtx_checks" type="checkbox" value=36> </td>
1012 </tr>
1012 </tr>
1013 <tr>
1013 <tr>
1014 <td> <input id="downtx41" name="downtx_checks" type="checkbox" value=41> </td>
1014 <td> <input id="downtx41" name="downtx_checks" type="checkbox" value=41> </td>
1015 <td> <input id="downtx42" name="downtx_checks" type="checkbox" value=42> </td>
1015 <td> <input id="downtx42" name="downtx_checks" type="checkbox" value=42> </td>
1016 <td> <input id="downtx43" name="downtx_checks" type="checkbox" value=43> </td>
1016 <td> <input id="downtx43" name="downtx_checks" type="checkbox" value=43> </td>
1017 <td> <input id="downtx44"name="downtx_checks" type="checkbox" value=44> </td>
1017 <td> <input id="downtx44"name="downtx_checks" type="checkbox" value=44> </td>
1018 </tr>
1018 </tr>
1019 <tr>
1019 <tr>
1020 <td> <input id="downtx49" name="downtx_checks" type="checkbox" value=49> </td>
1020 <td> <input id="downtx49" name="downtx_checks" type="checkbox" value=49> </td>
1021 <td> <input id="downtx50" name="downtx_checks" type="checkbox" value=50> </td>
1021 <td> <input id="downtx50" name="downtx_checks" type="checkbox" value=50> </td>
1022 <td> <input id="downtx51" name="downtx_checks" type="checkbox" value=51> </td>
1022 <td> <input id="downtx51" name="downtx_checks" type="checkbox" value=51> </td>
1023 <td> <input id="downtx52" name="downtx_checks" type="checkbox" value=52> </td>
1023 <td> <input id="downtx52" name="downtx_checks" type="checkbox" value=52> </td>
1024 </tr>
1024 </tr>
1025 <tr>
1025 <tr>
1026 <td> <input id="downtx57" name="downtx_checks" type="checkbox" value=57> </td>
1026 <td> <input id="downtx57" name="downtx_checks" type="checkbox" value=57> </td>
1027 <td> <input id="downtx58" name="downtx_checks" type="checkbox" value=58> </td>
1027 <td> <input id="downtx58" name="downtx_checks" type="checkbox" value=58> </td>
1028 <td> <input id="downtx59" name="downtx_checks" type="checkbox" value=59> </td>
1028 <td> <input id="downtx59" name="downtx_checks" type="checkbox" value=59> </td>
1029 <td> <input id="downtx60" name="downtx_checks" type="checkbox" value=60> </td>
1029 <td> <input id="downtx60" name="downtx_checks" type="checkbox" value=60> </td>
1030 </tr>
1030 </tr>
1031 </table>
1031 </table>
1032 </td>
1032 </td>
1033 <td> <b>South Quarter</b>
1033 <td> <b>South Quarter</b>
1034 <table align="center" class="tx_south_quarter">
1034 <table align="center" class="tx_south_quarter">
1035 <tr>
1035 <tr>
1036 <td> <input id="downtx37" name="downtx_checks" type="checkbox" value=37> </td> <!--class="checkbox-inline"--->
1036 <td> <input id="downtx37" name="downtx_checks" type="checkbox" value=37> </td> <!--class="checkbox-inline"--->
1037 <td> <input id="downtx38" name="downtx_checks" type="checkbox" value=38> </td>
1037 <td> <input id="downtx38" name="downtx_checks" type="checkbox" value=38> </td>
1038 <td> <input id="downtx39" name="downtx_checks" type="checkbox" value=39> </td>
1038 <td> <input id="downtx39" name="downtx_checks" type="checkbox" value=39> </td>
1039 <td> <input id="downtx40" name="downtx_checks" type="checkbox" value=40> </td>
1039 <td> <input id="downtx40" name="downtx_checks" type="checkbox" value=40> </td>
1040 </tr>
1040 </tr>
1041 <tr>
1041 <tr>
1042 <td> <input id="downtx45" name="downtx_checks" type="checkbox" value=45> </td>
1042 <td> <input id="downtx45" name="downtx_checks" type="checkbox" value=45> </td>
1043 <td> <input id="downtx46" name="downtx_checks" type="checkbox" value=46> </td>
1043 <td> <input id="downtx46" name="downtx_checks" type="checkbox" value=46> </td>
1044 <td> <input id="downtx47" name="downtx_checks" type="checkbox" value=47> </td>
1044 <td> <input id="downtx47" name="downtx_checks" type="checkbox" value=47> </td>
1045 <td> <input id="downtx48" name="downtx_checks" type="checkbox" value=48> </td>
1045 <td> <input id="downtx48" name="downtx_checks" type="checkbox" value=48> </td>
1046 </tr>
1046 </tr>
1047 <tr>
1047 <tr>
1048 <td> <input id="downtx53" name="downtx_checks" type="checkbox" value=53> </td>
1048 <td> <input id="downtx53" name="downtx_checks" type="checkbox" value=53> </td>
1049 <td> <input id="downtx54" name="downtx_checks" type="checkbox" value=54> </td>
1049 <td> <input id="downtx54" name="downtx_checks" type="checkbox" value=54> </td>
1050 <td> <input id="downtx55" name="downtx_checks" type="checkbox" value=55> </td>
1050 <td> <input id="downtx55" name="downtx_checks" type="checkbox" value=55> </td>
1051 <td> <input id="downtx56" name="downtx_checks" type="checkbox" value=56> </td>
1051 <td> <input id="downtx56" name="downtx_checks" type="checkbox" value=56> </td>
1052 </tr>
1052 </tr>
1053 <tr>
1053 <tr>
1054 <td> <input id="downtx61" name="downtx_checks" type="checkbox" value=61> </td>
1054 <td> <input id="downtx61" name="downtx_checks" type="checkbox" value=61> </td>
1055 <td> <input id="downtx62" name="downtx_checks" type="checkbox" value=62> </td>
1055 <td> <input id="downtx62" name="downtx_checks" type="checkbox" value=62> </td>
1056 <td> <input id="downtx63" name="downtx_checks" type="checkbox" value=63> </td>
1056 <td> <input id="downtx63" name="downtx_checks" type="checkbox" value=63> </td>
1057 <td> <input id="downtx64" name="downtx_checks" type="checkbox" value=64> </td>
1057 <td> <input id="downtx64" name="downtx_checks" type="checkbox" value=64> </td>
1058 </tr>
1058 </tr>
1059 </table>
1059 </table>
1060 </td>
1060 </td>
1061 </tr>
1061 </tr>
1062 </table>
1062 </table>
1063
1063
1064 <table class="abs_rx">
1064 <table class="abs_rx">
1065 <tr>
1065 <tr>
1066 <td colspan="2"> <b>RX</b> </td>
1066 <td colspan="2"> <b>RX</b> </td>
1067 </tr>
1067 </tr>
1068 <tr>
1068 <tr>
1069 <td> <b>North Quarter</b>
1069 <td> <b>North Quarter</b>
1070 <table align="center" class="rx_north_quarter">
1070 <table align="center" class="rx_north_quarter">
1071 <tr>
1071 <tr>
1072 <td> <input id="downrx1" name="downrx_checks" type="checkbox" value=1> </td>
1072 <td> <input id="downrx1" name="downrx_checks" type="checkbox" value=1> </td>
1073 <td> <input id="downrx2" name="downrx_checks" type="checkbox" value=2> </td>
1073 <td> <input id="downrx2" name="downrx_checks" type="checkbox" value=2> </td>
1074 <td> <input id="downrx3" name="downrx_checks" type="checkbox" value=3> </td>
1074 <td> <input id="downrx3" name="downrx_checks" type="checkbox" value=3> </td>
1075 <td> <input id="downrx4" name="downrx_checks" type="checkbox" value=4> </td>
1075 <td> <input id="downrx4" name="downrx_checks" type="checkbox" value=4> </td>
1076 </tr>
1076 </tr>
1077 <tr>
1077 <tr>
1078 <td> <input id="downrx9" name="downrx_checks" type="checkbox" value=9> </td>
1078 <td> <input id="downrx9" name="downrx_checks" type="checkbox" value=9> </td>
1079 <td> <input id="downrx10" name="downrx_checks" type="checkbox" value=10> </td>
1079 <td> <input id="downrx10" name="downrx_checks" type="checkbox" value=10> </td>
1080 <td> <input id="downrx11" name="downrx_checks" type="checkbox" value=11> </td>
1080 <td> <input id="downrx11" name="downrx_checks" type="checkbox" value=11> </td>
1081 <td> <input id="downrx12" name="downrx_checks" type="checkbox" value=12> </td>
1081 <td> <input id="downrx12" name="downrx_checks" type="checkbox" value=12> </td>
1082 </tr>
1082 </tr>
1083 <tr>
1083 <tr>
1084 <td> <input id="downrx17" name="downrx_checks" type="checkbox" value=17> </td>
1084 <td> <input id="downrx17" name="downrx_checks" type="checkbox" value=17> </td>
1085 <td> <input id="downrx18" name="downrx_checks" type="checkbox" value=18> </td>
1085 <td> <input id="downrx18" name="downrx_checks" type="checkbox" value=18> </td>
1086 <td> <input id="downrx19" name="downrx_checks" type="checkbox" value=19> </td>
1086 <td> <input id="downrx19" name="downrx_checks" type="checkbox" value=19> </td>
1087 <td> <input id="downrx20" name="downrx_checks" type="checkbox" value=20> </td>
1087 <td> <input id="downrx20" name="downrx_checks" type="checkbox" value=20> </td>
1088 </tr>
1088 </tr>
1089 <tr>
1089 <tr>
1090 <td> <input id="downrx25" name="downrx_checks" type="checkbox" value=25> </td>
1090 <td> <input id="downrx25" name="downrx_checks" type="checkbox" value=25> </td>
1091 <td> <input id="downrx26" name="downrx_checks" type="checkbox" value=26> </td>
1091 <td> <input id="downrx26" name="downrx_checks" type="checkbox" value=26> </td>
1092 <td> <input id="downrx27" name="downrx_checks" type="checkbox" value=27> </td>
1092 <td> <input id="downrx27" name="downrx_checks" type="checkbox" value=27> </td>
1093 <td> <input id="downrx28" name="downrx_checks" type="checkbox" value=28> </td>
1093 <td> <input id="downrx28" name="downrx_checks" type="checkbox" value=28> </td>
1094 </tr>
1094 </tr>
1095 </table>
1095 </table>
1096 </td>
1096 </td>
1097 <td> <b>East Quarter</b>
1097 <td> <b>East Quarter</b>
1098 <table align="center" class="rx_east_quarter">
1098 <table align="center" class="rx_east_quarter">
1099 <tr>
1099 <tr>
1100 <td> <input id="downrx5" name="downrx_checks" type="checkbox" value=5> </td>
1100 <td> <input id="downrx5" name="downrx_checks" type="checkbox" value=5> </td>
1101 <td> <input id="downrx6" name="downrx_checks" type="checkbox" value=6> </td>
1101 <td> <input id="downrx6" name="downrx_checks" type="checkbox" value=6> </td>
1102 <td> <input id="downrx7" name="downrx_checks" type="checkbox" value=7> </td>
1102 <td> <input id="downrx7" name="downrx_checks" type="checkbox" value=7> </td>
1103 <td> <input id="downrx8" name="downrx_checks" type="checkbox" value=8> </td>
1103 <td> <input id="downrx8" name="downrx_checks" type="checkbox" value=8> </td>
1104 </tr>
1104 </tr>
1105 <tr>
1105 <tr>
1106 <td> <input id="downrx13" name="downrx_checks" type="checkbox" value=13> </td>
1106 <td> <input id="downrx13" name="downrx_checks" type="checkbox" value=13> </td>
1107 <td> <input id="downrx14" name="downrx_checks" type="checkbox" value=14> </td>
1107 <td> <input id="downrx14" name="downrx_checks" type="checkbox" value=14> </td>
1108 <td> <input id="downrx15" name="downrx_checks" type="checkbox" value=15> </td>
1108 <td> <input id="downrx15" name="downrx_checks" type="checkbox" value=15> </td>
1109 <td> <input id="downrx16" name="downrx_checks" type="checkbox" value=16> </td>
1109 <td> <input id="downrx16" name="downrx_checks" type="checkbox" value=16> </td>
1110 </tr>
1110 </tr>
1111 <tr>
1111 <tr>
1112 <td> <input id="downrx21" name="downrx_checks" type="checkbox" value=21> </td>
1112 <td> <input id="downrx21" name="downrx_checks" type="checkbox" value=21> </td>
1113 <td> <input id="downrx22" name="downrx_checks" type="checkbox" value=22> </td>
1113 <td> <input id="downrx22" name="downrx_checks" type="checkbox" value=22> </td>
1114 <td> <input id="downrx23" name="downrx_checks" type="checkbox" value=23> </td>
1114 <td> <input id="downrx23" name="downrx_checks" type="checkbox" value=23> </td>
1115 <td> <input id="downrx24" name="downrx_checks" type="checkbox" value=24> </td>
1115 <td> <input id="downrx24" name="downrx_checks" type="checkbox" value=24> </td>
1116 </tr>
1116 </tr>
1117 <tr>
1117 <tr>
1118 <td> <input id="downrx29" name="downrx_checks" type="checkbox" value=29> </td>
1118 <td> <input id="downrx29" name="downrx_checks" type="checkbox" value=29> </td>
1119 <td> <input id="downrx30" name="downrx_checks" type="checkbox" value=30> </td>
1119 <td> <input id="downrx30" name="downrx_checks" type="checkbox" value=30> </td>
1120 <td> <input id="downrx31" name="downrx_checks" type="checkbox" value=31> </td>
1120 <td> <input id="downrx31" name="downrx_checks" type="checkbox" value=31> </td>
1121 <td> <input id="downrx32" name="downrx_checks" type="checkbox" value=32> </td>
1121 <td> <input id="downrx32" name="downrx_checks" type="checkbox" value=32> </td>
1122 </tr>
1122 </tr>
1123 </table>
1123 </table>
1124 </td>
1124 </td>
1125 </tr>
1125 </tr>
1126 <tr>
1126 <tr>
1127 <td> <b>West Quarter</b>
1127 <td> <b>West Quarter</b>
1128 <table align="center" class="rx_west_quarter">
1128 <table align="center" class="rx_west_quarter">
1129 <tr>
1129 <tr>
1130 <td> <input id="downrx33" name="downrx_checks" type="checkbox" value=33> </td>
1130 <td> <input id="downrx33" name="downrx_checks" type="checkbox" value=33> </td>
1131 <td> <input id="downrx34" name="downrx_checks" type="checkbox" value=34> </td>
1131 <td> <input id="downrx34" name="downrx_checks" type="checkbox" value=34> </td>
1132 <td> <input id="downrx35" name="downrx_checks" type="checkbox" value=35> </td>
1132 <td> <input id="downrx35" name="downrx_checks" type="checkbox" value=35> </td>
1133 <td> <input id="downrx36" name="downrx_checks" type="checkbox" value=36> </td>
1133 <td> <input id="downrx36" name="downrx_checks" type="checkbox" value=36> </td>
1134 </tr>
1134 </tr>
1135 <tr>
1135 <tr>
1136 <td> <input id="downrx41" name="downrx_checks" type="checkbox" value=41> </td>
1136 <td> <input id="downrx41" name="downrx_checks" type="checkbox" value=41> </td>
1137 <td> <input id="downrx42" name="downrx_checks" type="checkbox" value=42> </td>
1137 <td> <input id="downrx42" name="downrx_checks" type="checkbox" value=42> </td>
1138 <td> <input id="downrx43" name="downrx_checks" type="checkbox" value=43> </td>
1138 <td> <input id="downrx43" name="downrx_checks" type="checkbox" value=43> </td>
1139 <td> <input id="downrx44" name="downrx_checks" type="checkbox" value=44> </td>
1139 <td> <input id="downrx44" name="downrx_checks" type="checkbox" value=44> </td>
1140 </tr>
1140 </tr>
1141 <tr>
1141 <tr>
1142 <td> <input id="downrx49" name="downrx_checks" type="checkbox" value=49> </td>
1142 <td> <input id="downrx49" name="downrx_checks" type="checkbox" value=49> </td>
1143 <td> <input id="downrx50" name="downrx_checks" type="checkbox" value=50> </td>
1143 <td> <input id="downrx50" name="downrx_checks" type="checkbox" value=50> </td>
1144 <td> <input id="downrx51" name="downrx_checks" type="checkbox" value=51> </td>
1144 <td> <input id="downrx51" name="downrx_checks" type="checkbox" value=51> </td>
1145 <td> <input id="downrx52" name="downrx_checks" type="checkbox" value=52> </td>
1145 <td> <input id="downrx52" name="downrx_checks" type="checkbox" value=52> </td>
1146 </tr>
1146 </tr>
1147 <tr>
1147 <tr>
1148 <td> <input id="downrx57" name="downrx_checks" type="checkbox" value=57> </td>
1148 <td> <input id="downrx57" name="downrx_checks" type="checkbox" value=57> </td>
1149 <td> <input id="downrx58" name="downrx_checks" type="checkbox" value=58> </td>
1149 <td> <input id="downrx58" name="downrx_checks" type="checkbox" value=58> </td>
1150 <td> <input id="downrx59" name="downrx_checks" type="checkbox" value=59> </td>
1150 <td> <input id="downrx59" name="downrx_checks" type="checkbox" value=59> </td>
1151 <td> <input id="downrx60" name="downrx_checks" type="checkbox" value=60> </td>
1151 <td> <input id="downrx60" name="downrx_checks" type="checkbox" value=60> </td>
1152 </tr>
1152 </tr>
1153 </table>
1153 </table>
1154 </td>
1154 </td>
1155 <td> <b>South Quarter</b>
1155 <td> <b>South Quarter</b>
1156 <table align="center" class="rx_south_quarter">
1156 <table align="center" class="rx_south_quarter">
1157 <tr>
1157 <tr>
1158 <td> <input id="downrx37" name="downrx_checks" type="checkbox" value=37> </td>
1158 <td> <input id="downrx37" name="downrx_checks" type="checkbox" value=37> </td>
1159 <td> <input id="downrx38" name="downrx_checks" type="checkbox" value=38> </td>
1159 <td> <input id="downrx38" name="downrx_checks" type="checkbox" value=38> </td>
1160 <td> <input id="downrx39" name="downrx_checks" type="checkbox" value=39> </td>
1160 <td> <input id="downrx39" name="downrx_checks" type="checkbox" value=39> </td>
1161 <td> <input id="downrx40" name="downrx_checks" type="checkbox" value=40> </td>
1161 <td> <input id="downrx40" name="downrx_checks" type="checkbox" value=40> </td>
1162 </tr>
1162 </tr>
1163 <tr>
1163 <tr>
1164 <td> <input id="downrx45" name="downrx_checks" type="checkbox" value=45> </td>
1164 <td> <input id="downrx45" name="downrx_checks" type="checkbox" value=45> </td>
1165 <td> <input id="downrx46" name="downrx_checks" type="checkbox" value=46> </td>
1165 <td> <input id="downrx46" name="downrx_checks" type="checkbox" value=46> </td>
1166 <td> <input id="downrx47" name="downrx_checks" type="checkbox" value=47> </td>
1166 <td> <input id="downrx47" name="downrx_checks" type="checkbox" value=47> </td>
1167 <td> <input id="downrx48" name="downrx_checks" type="checkbox" value=48> </td>
1167 <td> <input id="downrx48" name="downrx_checks" type="checkbox" value=48> </td>
1168 </tr>
1168 </tr>
1169 <tr>
1169 <tr>
1170 <td> <input id="downrx53" name="downrx_checks" type="checkbox" value=53> </td>
1170 <td> <input id="downrx53" name="downrx_checks" type="checkbox" value=53> </td>
1171 <td> <input id="downrx54" name="downrx_checks" type="checkbox" value=54> </td>
1171 <td> <input id="downrx54" name="downrx_checks" type="checkbox" value=54> </td>
1172 <td> <input id="downrx55" name="downrx_checks" type="checkbox" value=55> </td>
1172 <td> <input id="downrx55" name="downrx_checks" type="checkbox" value=55> </td>
1173 <td> <input id="downrx56" name="downrx_checks" type="checkbox" value=56> </td>
1173 <td> <input id="downrx56" name="downrx_checks" type="checkbox" value=56> </td>
1174 </tr>
1174 </tr>
1175 <tr>
1175 <tr>
1176 <td> <input id="downrx61" name="downrx_checks" type="checkbox" value=61> </td>
1176 <td> <input id="downrx61" name="downrx_checks" type="checkbox" value=61> </td>
1177 <td> <input id="downrx62" name="downrx_checks" type="checkbox" value=62> </td>
1177 <td> <input id="downrx62" name="downrx_checks" type="checkbox" value=62> </td>
1178 <td> <input id="downrx63" name="downrx_checks" type="checkbox" value=63> </td>
1178 <td> <input id="downrx63" name="downrx_checks" type="checkbox" value=63> </td>
1179 <td> <input id="downrx64" name="downrx_checks" type="checkbox" value=64> </td>
1179 <td> <input id="downrx64" name="downrx_checks" type="checkbox" value=64> </td>
1180 </tr>
1180 </tr>
1181 </table>
1181 </table>
1182 </td>
1182 </td>
1183 </tr>
1183 </tr>
1184 </table>
1184 </table>
1185
1185
1186
1186
1187 <div id="id_ues_down" class="container">
1187 <div id="id_ues_down" class="container">
1188 <h5>Ues</h5>
1188 <h5>Ues</h5>
1189 <div class="col-xs-2">
1189 <div class="col-xs-2">
1190 <input name="ues_down1" value="{beam.get_down_ues[0]}" class="form-control" id="input1_down" type="number" step="any">
1190 <input name="ues_down1" value="{beam.get_down_ues[0]}" class="form-control" id="input1_down" type="number" step="any">
1191 </div>
1191 </div>
1192 <div class="col-xs-2">
1192 <div class="col-xs-2">
1193 <input name="ues_down2" value="{beam.get_down_ues[1]}" class="form-control" id="input2_down" type="number" step="any">
1193 <input name="ues_down2" value="{beam.get_down_ues[1]}" class="form-control" id="input2_down" type="number" step="any">
1194 </div>
1194 </div>
1195 <div class="col-xs-2">
1195 <div class="col-xs-2">
1196 <input name="ues_down3" value="{beam.get_down_ues[2]}" class="form-control" id="input3_down" type="number" step="any">
1196 <input name="ues_down3" value="{beam.get_down_ues[2]}" class="form-control" id="input3_down" type="number" step="any">
1197 </div>
1197 </div>
1198 <div class="col-xs-2">
1198 <div class="col-xs-2">
1199 <input name="ues_down4" value="{beam.get_down_ues[3]}" class="form-control" id="input4_down" type="number" step="any">
1199 <input name="ues_down4" value="{beam.get_down_ues[3]}" class="form-control" id="input4_down" type="number" step="any">
1200 </div>
1200 </div>
1201 <div style="vertical-align:center; margin-top:20px;">
1201 <div style="vertical-align:center; margin-top:20px;">
1202 <label class="checkbox-inline"><input style="vertical-align:bottom" {checked_onlyrx} name="onlyrx" id="onlyrx_down" type="checkbox" value=2>Only RX</label>
1202 <label class="checkbox-inline"><input style="vertical-align:bottom" {checked_onlyrx} name="onlyrx" id="onlyrx_down" type="checkbox" value=2>Only RX</label>
1203 </div>
1203 </div>
1204 </div>
1204 </div>
1205
1205
1206
1206
1207 </div>
1207 </div>
1208
1208
1209
1209
1210 </div>
1210 </div>
1211 </div>
1211 </div>
1212 '''.format(beam=beam, checked_onlyrx=checked_onlyrx)
1212 '''.format(beam=beam, checked_onlyrx=checked_onlyrx)
1213
1213
1214 script = '''
1214 script = '''
1215
1215
1216 <script type="text/javascript">
1216 <script type="text/javascript">
1217 $(document).ready(function () {{
1217 $(document).ready(function () {{
1218 var antenna_downvalues = {beam.get_downvalues};
1218 var antenna_downvalues = {beam.get_downvalues};
1219 var tx_downvalues = {beam.get_downtx};
1219 var tx_downvalues = {beam.get_downtx};
1220 var rx_downvalues = {beam.get_downrx};
1220 var rx_downvalues = {beam.get_downrx};
1221
1221
1222 for (var i = 1, len = 65; i < len; i++) {{
1222 for (var i = 1, len = 65; i < len; i++) {{
1223 var abs_dselect = "abs_dvalue"+i.toString()
1223 var abs_dselect = "abs_dvalue"+i.toString()
1224 document.getElementById(abs_dselect).value = antenna_downvalues[i-1];
1224 document.getElementById(abs_dselect).value = antenna_downvalues[i-1];
1225
1225
1226 var abs_downtx = "downtx"+i.toString()
1226 var abs_downtx = "downtx"+i.toString()
1227 if (tx_downvalues[i-1]==1){{
1227 if (tx_downvalues[i-1]==1){{
1228 document.getElementById(abs_downtx).checked = true;
1228 document.getElementById(abs_downtx).checked = true;
1229 }}
1229 }}
1230
1230
1231 var abs_downrx = "downrx"+i.toString()
1231 var abs_downrx = "downrx"+i.toString()
1232 if (rx_downvalues[i-1]==1){{
1232 if (rx_downvalues[i-1]==1){{
1233 document.getElementById(abs_downrx).checked = true;
1233 document.getElementById(abs_downrx).checked = true;
1234 }}
1234 }}
1235 }}
1235 }}
1236
1236
1237 }});
1237 }});
1238 </script>
1238 </script>
1239
1239
1240 '''.format(beam=beam)
1240 '''.format(beam=beam)
1241
1241
1242
1242
1243
1243
1244 return mark_safe(style+html+script)
1244 return mark_safe(style+html+script)
1245
1245
1246
1246
1247
1247
1248 class UpDataWidget(forms.widgets.TextInput):
1248 class UpDataWidget(forms.widgets.TextInput):
1249
1249
1250 def render(self, label, value, attrs=None):
1250 def render(self, name, value, attrs=None, renderer=None):
1251
1251
1252
1252
1253 html = '''
1253 html = '''
1254
1254
1255 <div class="container">
1255 <div class="container">
1256 <div style="display:inline-block">
1256 <div style="display:inline-block">
1257 Name:
1257 Name:
1258 <label style="display:inline-block"><input value="Beam" style="display:inline-block" name="beam_name" class="form-control" id="id_name" type="text"></label>
1258 <label style="display:inline-block"><input value="Beam" style="display:inline-block" name="beam_name" class="form-control" id="id_name" type="text"></label>
1259 </div>
1259 </div>
1260 </div>
1260 </div>
1261
1261
1262 <br>
1262 <br>
1263 <div class="panel-group">
1263 <div class="panel-group">
1264 <div style="display: inline-block" id="UP" class="panel panel-default">
1264 <div style="display: inline-block" id="UP" class="panel panel-default">
1265
1265
1266 <div class="panel-heading">UP</div>
1266 <div class="panel-heading">UP</div>
1267
1267
1268
1268
1269 <div class="panel-body">
1269 <div class="panel-body">
1270
1270
1271 <table class="abs">
1271 <table class="abs">
1272 <tr>
1272 <tr>
1273 <td colspan="2"> <b>Antenna</b> </td>
1273 <td colspan="2"> <b>Antenna</b> </td>
1274 </tr>
1274 </tr>
1275 <tr>
1275 <tr>
1276 <td> <b>North Quarter</b>
1276 <td> <b>North Quarter</b>
1277 <table class="north_quarter">
1277 <table class="north_quarter">
1278 <tr>
1278 <tr>
1279 <td><select name="abs_up1"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1279 <td><select name="abs_up1"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1280 <td><select name="abs_up2"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1280 <td><select name="abs_up2"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1281 <td><select name="abs_up3"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1281 <td><select name="abs_up3"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1282 <td><select name="abs_up4"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1282 <td><select name="abs_up4"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1283 </tr>
1283 </tr>
1284 <tr>
1284 <tr>
1285 <td><select name="abs_up9"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1285 <td><select name="abs_up9"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1286 <td><select name="abs_up10"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1286 <td><select name="abs_up10"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1287 <td><select name="abs_up11"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1287 <td><select name="abs_up11"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1288 <td><select name="abs_up12"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1288 <td><select name="abs_up12"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1289 </tr>
1289 </tr>
1290 <tr>
1290 <tr>
1291 <td><select name="abs_up17"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1291 <td><select name="abs_up17"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1292 <td><select name="abs_up18"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1292 <td><select name="abs_up18"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1293 <td><select name="abs_up19"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1293 <td><select name="abs_up19"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1294 <td><select name="abs_up20"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1294 <td><select name="abs_up20"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1295 </tr>
1295 </tr>
1296 <tr>
1296 <tr>
1297 <td><select name="abs_up25"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1297 <td><select name="abs_up25"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1298 <td><select name="abs_up26"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1298 <td><select name="abs_up26"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1299 <td><select name="abs_up27"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1299 <td><select name="abs_up27"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1300 <td><select name="abs_up28"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1300 <td><select name="abs_up28"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1301 </tr>
1301 </tr>
1302 </table>
1302 </table>
1303 </td>
1303 </td>
1304 <td> <b>East Quarter</b>
1304 <td> <b>East Quarter</b>
1305 <table class="east_quarter">
1305 <table class="east_quarter">
1306 <tr>
1306 <tr>
1307 <td><select name="abs_up5"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1307 <td><select name="abs_up5"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1308 <td><select name="abs_up6"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1308 <td><select name="abs_up6"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1309 <td><select name="abs_up7"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1309 <td><select name="abs_up7"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1310 <td><select name="abs_up8"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1310 <td><select name="abs_up8"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1311 </tr>
1311 </tr>
1312 <tr>
1312 <tr>
1313 <td><select name="abs_up13"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1313 <td><select name="abs_up13"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1314 <td><select name="abs_up14"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1314 <td><select name="abs_up14"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1315 <td><select name="abs_up15"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1315 <td><select name="abs_up15"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1316 <td><select name="abs_up16"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1316 <td><select name="abs_up16"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1317 </tr>
1317 </tr>
1318 <tr>
1318 <tr>
1319 <td><select name="abs_up21"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1319 <td><select name="abs_up21"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1320 <td><select name="abs_up22"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1320 <td><select name="abs_up22"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1321 <td><select name="abs_up23"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1321 <td><select name="abs_up23"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1322 <td><select name="abs_up24"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1322 <td><select name="abs_up24"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1323 </tr>
1323 </tr>
1324 <tr>
1324 <tr>
1325 <td><select name="abs_up29"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1325 <td><select name="abs_up29"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1326 <td><select name="abs_up30"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1326 <td><select name="abs_up30"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1327 <td><select name="abs_up31"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1327 <td><select name="abs_up31"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1328 <td><select name="abs_up32"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1328 <td><select name="abs_up32"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1329 </tr>
1329 </tr>
1330 </table>
1330 </table>
1331 </td>
1331 </td>
1332 </tr>
1332 </tr>
1333 <tr>
1333 <tr>
1334 <td> <b>West Quarter</b>
1334 <td> <b>West Quarter</b>
1335 <table class="west_quarter">
1335 <table class="west_quarter">
1336 <tr>
1336 <tr>
1337 <td><select name="abs_up33"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1337 <td><select name="abs_up33"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1338 <td><select name="abs_up34"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1338 <td><select name="abs_up34"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1339 <td><select name="abs_up35"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1339 <td><select name="abs_up35"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1340 <td><select name="abs_up36"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1340 <td><select name="abs_up36"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1341 </tr>
1341 </tr>
1342 <tr>
1342 <tr>
1343 <td><select name="abs_up41"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1343 <td><select name="abs_up41"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1344 <td><select name="abs_up42"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1344 <td><select name="abs_up42"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1345 <td><select name="abs_up43"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1345 <td><select name="abs_up43"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1346 <td><select name="abs_up44"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1346 <td><select name="abs_up44"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1347 </tr>
1347 </tr>
1348 <tr>
1348 <tr>
1349 <td><select name="abs_up49"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1349 <td><select name="abs_up49"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1350 <td><select name="abs_up50"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1350 <td><select name="abs_up50"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1351 <td><select name="abs_up51"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1351 <td><select name="abs_up51"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1352 <td><select name="abs_up52"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1352 <td><select name="abs_up52"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1353 </tr>
1353 </tr>
1354 <tr>
1354 <tr>
1355 <td><select name="abs_up57"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1355 <td><select name="abs_up57"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1356 <td><select name="abs_up58"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1356 <td><select name="abs_up58"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1357 <td><select name="abs_up59"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1357 <td><select name="abs_up59"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1358 <td><select name="abs_up60"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1358 <td><select name="abs_up60"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1359 </tr>
1359 </tr>
1360 </table>
1360 </table>
1361 </td>
1361 </td>
1362 <td> <b>South Quarter</b>
1362 <td> <b>South Quarter</b>
1363 <table class="south_quarter">
1363 <table class="south_quarter">
1364 <tr>
1364 <tr>
1365 <td><select name="abs_up37"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1365 <td><select name="abs_up37"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1366 <td><select name="abs_up38"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1366 <td><select name="abs_up38"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1367 <td><select name="abs_up39"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1367 <td><select name="abs_up39"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1368 <td><select name="abs_up40"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1368 <td><select name="abs_up40"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1369 </tr>
1369 </tr>
1370 <tr>
1370 <tr>
1371 <td><select name="abs_up45"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1371 <td><select name="abs_up45"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1372 <td><select name="abs_up46"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1372 <td><select name="abs_up46"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1373 <td><select name="abs_up47"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1373 <td><select name="abs_up47"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1374 <td><select name="abs_up48"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1374 <td><select name="abs_up48"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1375 </tr>
1375 </tr>
1376 <tr>
1376 <tr>
1377 <td><select name="abs_up53"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1377 <td><select name="abs_up53"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1378 <td><select name="abs_up54"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1378 <td><select name="abs_up54"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1379 <td><select name="abs_up55"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1379 <td><select name="abs_up55"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1380 <td><select name="abs_up56"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1380 <td><select name="abs_up56"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1381 </tr>
1381 </tr>
1382 <tr>
1382 <tr>
1383 <td><select name="abs_up61"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1383 <td><select name="abs_up61"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1384 <td><select name="abs_up62"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1384 <td><select name="abs_up62"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1385 <td><select name="abs_up63"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1385 <td><select name="abs_up63"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1386 <td><select name="abs_up64"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1386 <td><select name="abs_up64"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1387 </tr>
1387 </tr>
1388 </table>
1388 </table>
1389 </td>
1389 </td>
1390 </tr>
1390 </tr>
1391 </table>
1391 </table>
1392
1392
1393
1393
1394
1394
1395 <table class="abs_tx">
1395 <table class="abs_tx">
1396 <tr>
1396 <tr>
1397 <td colspan="2"> <b>TX</b> </td>
1397 <td colspan="2"> <b>TX</b> </td>
1398 </tr>
1398 </tr>
1399 <tr>
1399 <tr>
1400 <td> <b>North Quarter</b>
1400 <td> <b>North Quarter</b>
1401 <table align="center" class="tx_north_quarter">
1401 <table align="center" class="tx_north_quarter">
1402 <tr>
1402 <tr>
1403 <td> <input name="uptx_checks" type="checkbox" value=1> </td>
1403 <td> <input name="uptx_checks" type="checkbox" value=1> </td>
1404 <td> <input name="uptx_checks" type="checkbox" value=2> </td>
1404 <td> <input name="uptx_checks" type="checkbox" value=2> </td>
1405 <td> <input name="uptx_checks" type="checkbox" value=3> </td>
1405 <td> <input name="uptx_checks" type="checkbox" value=3> </td>
1406 <td> <input name="uptx_checks" type="checkbox" value=4> </td>
1406 <td> <input name="uptx_checks" type="checkbox" value=4> </td>
1407 </tr>
1407 </tr>
1408 <tr>
1408 <tr>
1409 <td> <input name="uptx_checks" type="checkbox" value=9> </td>
1409 <td> <input name="uptx_checks" type="checkbox" value=9> </td>
1410 <td> <input name="uptx_checks" type="checkbox" value=10> </td>
1410 <td> <input name="uptx_checks" type="checkbox" value=10> </td>
1411 <td> <input name="uptx_checks" type="checkbox" value=11> </td>
1411 <td> <input name="uptx_checks" type="checkbox" value=11> </td>
1412 <td> <input name="uptx_checks" type="checkbox" value=12> </td>
1412 <td> <input name="uptx_checks" type="checkbox" value=12> </td>
1413 </tr>
1413 </tr>
1414 <tr>
1414 <tr>
1415 <td> <input name="uptx_checks" type="checkbox" value=17> </td>
1415 <td> <input name="uptx_checks" type="checkbox" value=17> </td>
1416 <td> <input name="uptx_checks" type="checkbox" value=18> </td>
1416 <td> <input name="uptx_checks" type="checkbox" value=18> </td>
1417 <td> <input name="uptx_checks" type="checkbox" value=19> </td>
1417 <td> <input name="uptx_checks" type="checkbox" value=19> </td>
1418 <td> <input name="uptx_checks" type="checkbox" value=20> </td>
1418 <td> <input name="uptx_checks" type="checkbox" value=20> </td>
1419 </tr>
1419 </tr>
1420 <tr>
1420 <tr>
1421 <td> <input name="uptx_checks" type="checkbox" value=25> </td>
1421 <td> <input name="uptx_checks" type="checkbox" value=25> </td>
1422 <td> <input name="uptx_checks" type="checkbox" value=26> </td>
1422 <td> <input name="uptx_checks" type="checkbox" value=26> </td>
1423 <td> <input name="uptx_checks" type="checkbox" value=27> </td>
1423 <td> <input name="uptx_checks" type="checkbox" value=27> </td>
1424 <td> <input name="uptx_checks" type="checkbox" value=28> </td>
1424 <td> <input name="uptx_checks" type="checkbox" value=28> </td>
1425 </tr>
1425 </tr>
1426 </table>
1426 </table>
1427 </td>
1427 </td>
1428 <td> <b>East Quarter</b>
1428 <td> <b>East Quarter</b>
1429 <table align="center" class="tx_east_quarter">
1429 <table align="center" class="tx_east_quarter">
1430 <tr>
1430 <tr>
1431 <td> <input name="uptx_checks" type="checkbox" value=5> </td>
1431 <td> <input name="uptx_checks" type="checkbox" value=5> </td>
1432 <td> <input name="uptx_checks" type="checkbox" value=6> </td>
1432 <td> <input name="uptx_checks" type="checkbox" value=6> </td>
1433 <td> <input name="uptx_checks" type="checkbox" value=7> </td>
1433 <td> <input name="uptx_checks" type="checkbox" value=7> </td>
1434 <td> <input name="uptx_checks" type="checkbox" value=8> </td>
1434 <td> <input name="uptx_checks" type="checkbox" value=8> </td>
1435 </tr>
1435 </tr>
1436 <tr>
1436 <tr>
1437 <td> <input name="uptx_checks" type="checkbox" value=13> </td>
1437 <td> <input name="uptx_checks" type="checkbox" value=13> </td>
1438 <td> <input name="uptx_checks" type="checkbox" value=14> </td>
1438 <td> <input name="uptx_checks" type="checkbox" value=14> </td>
1439 <td> <input name="uptx_checks" type="checkbox" value=15> </td>
1439 <td> <input name="uptx_checks" type="checkbox" value=15> </td>
1440 <td> <input name="uptx_checks" type="checkbox" value=16></td>
1440 <td> <input name="uptx_checks" type="checkbox" value=16></td>
1441 </tr>
1441 </tr>
1442 <tr>
1442 <tr>
1443 <td> <input name="uptx_checks" type="checkbox" value=21> </td>
1443 <td> <input name="uptx_checks" type="checkbox" value=21> </td>
1444 <td> <input name="uptx_checks" type="checkbox" value=22> </td>
1444 <td> <input name="uptx_checks" type="checkbox" value=22> </td>
1445 <td> <input name="uptx_checks" type="checkbox" value=23> </td>
1445 <td> <input name="uptx_checks" type="checkbox" value=23> </td>
1446 <td> <input name="uptx_checks" type="checkbox" value=24> </td>
1446 <td> <input name="uptx_checks" type="checkbox" value=24> </td>
1447 </tr>
1447 </tr>
1448 <tr>
1448 <tr>
1449 <td> <input name="uptx_checks" type="checkbox" value=29> </td>
1449 <td> <input name="uptx_checks" type="checkbox" value=29> </td>
1450 <td> <input name="uptx_checks" type="checkbox" value=30> </td>
1450 <td> <input name="uptx_checks" type="checkbox" value=30> </td>
1451 <td> <input name="uptx_checks" type="checkbox" value=31> </td>
1451 <td> <input name="uptx_checks" type="checkbox" value=31> </td>
1452 <td> <input name="uptx_checks" type="checkbox" value=32> </td>
1452 <td> <input name="uptx_checks" type="checkbox" value=32> </td>
1453 </tr>
1453 </tr>
1454 </table>
1454 </table>
1455 </td>
1455 </td>
1456 </tr>
1456 </tr>
1457 <tr>
1457 <tr>
1458 <td> <b>West Quarter</b>
1458 <td> <b>West Quarter</b>
1459 <table align="center" class="tx_west_quarter">
1459 <table align="center" class="tx_west_quarter">
1460 <tr>
1460 <tr>
1461 <td> <input name="uptx_checks" type="checkbox" value=33> </td> <!--class="checkbox-inline"--->
1461 <td> <input name="uptx_checks" type="checkbox" value=33> </td> <!--class="checkbox-inline"--->
1462 <td> <input name="uptx_checks" type="checkbox" value=34> </td>
1462 <td> <input name="uptx_checks" type="checkbox" value=34> </td>
1463 <td> <input name="uptx_checks" type="checkbox" value=35> </td>
1463 <td> <input name="uptx_checks" type="checkbox" value=35> </td>
1464 <td> <input name="uptx_checks" type="checkbox" value=36> </td>
1464 <td> <input name="uptx_checks" type="checkbox" value=36> </td>
1465 </tr>
1465 </tr>
1466 <tr>
1466 <tr>
1467 <td> <input name="uptx_checks" type="checkbox" value=41> </td>
1467 <td> <input name="uptx_checks" type="checkbox" value=41> </td>
1468 <td> <input name="uptx_checks" type="checkbox" value=42> </td>
1468 <td> <input name="uptx_checks" type="checkbox" value=42> </td>
1469 <td> <input name="uptx_checks" type="checkbox" value=43> </td>
1469 <td> <input name="uptx_checks" type="checkbox" value=43> </td>
1470 <td> <input name="uptx_checks" type="checkbox" value=44> </td>
1470 <td> <input name="uptx_checks" type="checkbox" value=44> </td>
1471 </tr>
1471 </tr>
1472 <tr>
1472 <tr>
1473 <td> <input name="uptx_checks" type="checkbox" value=49> </td>
1473 <td> <input name="uptx_checks" type="checkbox" value=49> </td>
1474 <td> <input name="uptx_checks" type="checkbox" value=50> </td>
1474 <td> <input name="uptx_checks" type="checkbox" value=50> </td>
1475 <td> <input name="uptx_checks" type="checkbox" value=51> </td>
1475 <td> <input name="uptx_checks" type="checkbox" value=51> </td>
1476 <td> <input name="uptx_checks" type="checkbox" value=52> </td>
1476 <td> <input name="uptx_checks" type="checkbox" value=52> </td>
1477 </tr>
1477 </tr>
1478 <tr>
1478 <tr>
1479 <td> <input name="uptx_checks" type="checkbox" value=57> </td>
1479 <td> <input name="uptx_checks" type="checkbox" value=57> </td>
1480 <td> <input name="uptx_checks" type="checkbox" value=58> </td>
1480 <td> <input name="uptx_checks" type="checkbox" value=58> </td>
1481 <td> <input name="uptx_checks" type="checkbox" value=59> </td>
1481 <td> <input name="uptx_checks" type="checkbox" value=59> </td>
1482 <td> <input name="uptx_checks" type="checkbox" value=60> </td>
1482 <td> <input name="uptx_checks" type="checkbox" value=60> </td>
1483 </tr>
1483 </tr>
1484 </table>
1484 </table>
1485 </td>
1485 </td>
1486 <td> <b>South Quarter</b>
1486 <td> <b>South Quarter</b>
1487 <table align="center" class="tx_south_quarter">
1487 <table align="center" class="tx_south_quarter">
1488 <tr>
1488 <tr>
1489 <td> <input name="uptx_checks" type="checkbox" value=37> </td>
1489 <td> <input name="uptx_checks" type="checkbox" value=37> </td>
1490 <td> <input name="uptx_checks" type="checkbox" value=38> </td>
1490 <td> <input name="uptx_checks" type="checkbox" value=38> </td>
1491 <td> <input name="uptx_checks" type="checkbox" value=39> </td>
1491 <td> <input name="uptx_checks" type="checkbox" value=39> </td>
1492 <td> <input name="uptx_checks" type="checkbox" value=40> </td>
1492 <td> <input name="uptx_checks" type="checkbox" value=40> </td>
1493 </tr>
1493 </tr>
1494 <tr>
1494 <tr>
1495 <td> <input name="uptx_checks" type="checkbox" value=45> </td>
1495 <td> <input name="uptx_checks" type="checkbox" value=45> </td>
1496 <td> <input name="uptx_checks" type="checkbox" value=46> </td>
1496 <td> <input name="uptx_checks" type="checkbox" value=46> </td>
1497 <td> <input name="uptx_checks" type="checkbox" value=47> </td>
1497 <td> <input name="uptx_checks" type="checkbox" value=47> </td>
1498 <td> <input name="uptx_checks" type="checkbox" value=48> </td>
1498 <td> <input name="uptx_checks" type="checkbox" value=48> </td>
1499 </tr>
1499 </tr>
1500 <tr>
1500 <tr>
1501 <td> <input name="uptx_checks" type="checkbox" value=53> </td>
1501 <td> <input name="uptx_checks" type="checkbox" value=53> </td>
1502 <td> <input name="uptx_checks" type="checkbox" value=54> </td>
1502 <td> <input name="uptx_checks" type="checkbox" value=54> </td>
1503 <td> <input name="uptx_checks" type="checkbox" value=55> </td>
1503 <td> <input name="uptx_checks" type="checkbox" value=55> </td>
1504 <td> <input name="uptx_checks" type="checkbox" value=56> </td>
1504 <td> <input name="uptx_checks" type="checkbox" value=56> </td>
1505 </tr>
1505 </tr>
1506 <tr>
1506 <tr>
1507 <td> <input name="uptx_checks" type="checkbox" value=61> </td>
1507 <td> <input name="uptx_checks" type="checkbox" value=61> </td>
1508 <td> <input name="uptx_checks" type="checkbox" value=62> </td>
1508 <td> <input name="uptx_checks" type="checkbox" value=62> </td>
1509 <td> <input name="uptx_checks" type="checkbox" value=63> </td>
1509 <td> <input name="uptx_checks" type="checkbox" value=63> </td>
1510 <td> <input name="uptx_checks" type="checkbox" value=64> </td>
1510 <td> <input name="uptx_checks" type="checkbox" value=64> </td>
1511 </tr>
1511 </tr>
1512 </table>
1512 </table>
1513 </td>
1513 </td>
1514 </tr>
1514 </tr>
1515 </table>
1515 </table>
1516
1516
1517 <table class="abs_rx">
1517 <table class="abs_rx">
1518 <tr>
1518 <tr>
1519 <td colspan="2"> <b>RX</b> </td>
1519 <td colspan="2"> <b>RX</b> </td>
1520 </tr>
1520 </tr>
1521 <tr>
1521 <tr>
1522 <td> <b>North Quarter</b>
1522 <td> <b>North Quarter</b>
1523 <table align="center" class="rx_north_quarter">
1523 <table align="center" class="rx_north_quarter">
1524 <tr>
1524 <tr>
1525 <td> <input name="uprx_checks" type="checkbox" value=1> </td>
1525 <td> <input name="uprx_checks" type="checkbox" value=1> </td>
1526 <td> <input name="uprx_checks" type="checkbox" value=2> </td>
1526 <td> <input name="uprx_checks" type="checkbox" value=2> </td>
1527 <td> <input name="uprx_checks" type="checkbox" value=3> </td>
1527 <td> <input name="uprx_checks" type="checkbox" value=3> </td>
1528 <td> <input name="uprx_checks" type="checkbox" value=4> </td>
1528 <td> <input name="uprx_checks" type="checkbox" value=4> </td>
1529 </tr>
1529 </tr>
1530 <tr>
1530 <tr>
1531 <td> <input name="uprx_checks" type="checkbox" value=9> </td>
1531 <td> <input name="uprx_checks" type="checkbox" value=9> </td>
1532 <td> <input name="uprx_checks" type="checkbox" value=10> </td>
1532 <td> <input name="uprx_checks" type="checkbox" value=10> </td>
1533 <td> <input name="uprx_checks" type="checkbox" value=11> </td>
1533 <td> <input name="uprx_checks" type="checkbox" value=11> </td>
1534 <td> <input name="uprx_checks" type="checkbox" value=12> </td>
1534 <td> <input name="uprx_checks" type="checkbox" value=12> </td>
1535 </tr>
1535 </tr>
1536 <tr>
1536 <tr>
1537 <td> <input name="uprx_checks" type="checkbox" value=17> </td>
1537 <td> <input name="uprx_checks" type="checkbox" value=17> </td>
1538 <td> <input name="uprx_checks" type="checkbox" value=18> </td>
1538 <td> <input name="uprx_checks" type="checkbox" value=18> </td>
1539 <td> <input name="uprx_checks" type="checkbox" value=19> </td>
1539 <td> <input name="uprx_checks" type="checkbox" value=19> </td>
1540 <td> <input name="uprx_checks" type="checkbox" value=20> </td>
1540 <td> <input name="uprx_checks" type="checkbox" value=20> </td>
1541 </tr>
1541 </tr>
1542 <tr>
1542 <tr>
1543 <td> <input name="uprx_checks" type="checkbox" value=25> </td>
1543 <td> <input name="uprx_checks" type="checkbox" value=25> </td>
1544 <td> <input name="uprx_checks" type="checkbox" value=26> </td>
1544 <td> <input name="uprx_checks" type="checkbox" value=26> </td>
1545 <td> <input name="uprx_checks" type="checkbox" value=27> </td>
1545 <td> <input name="uprx_checks" type="checkbox" value=27> </td>
1546 <td> <input name="uprx_checks" type="checkbox" value=28> </td>
1546 <td> <input name="uprx_checks" type="checkbox" value=28> </td>
1547 </tr>
1547 </tr>
1548 </table>
1548 </table>
1549 </td>
1549 </td>
1550 <td> <b>East Quarter</b>
1550 <td> <b>East Quarter</b>
1551 <table align="center" class="rx_east_quarter">
1551 <table align="center" class="rx_east_quarter">
1552 <tr>
1552 <tr>
1553 <td> <input name="uprx_checks" type="checkbox" value=5> </td>
1553 <td> <input name="uprx_checks" type="checkbox" value=5> </td>
1554 <td> <input name="uprx_checks" type="checkbox" value=6> </td>
1554 <td> <input name="uprx_checks" type="checkbox" value=6> </td>
1555 <td> <input name="uprx_checks" type="checkbox" value=7> </td>
1555 <td> <input name="uprx_checks" type="checkbox" value=7> </td>
1556 <td> <input name="uprx_checks" type="checkbox" value=8> </td>
1556 <td> <input name="uprx_checks" type="checkbox" value=8> </td>
1557 </tr>
1557 </tr>
1558 <tr>
1558 <tr>
1559 <td> <input name="uprx_checks" type="checkbox" value=13> </td>
1559 <td> <input name="uprx_checks" type="checkbox" value=13> </td>
1560 <td> <input name="uprx_checks" type="checkbox" value=14> </td>
1560 <td> <input name="uprx_checks" type="checkbox" value=14> </td>
1561 <td> <input name="uprx_checks" type="checkbox" value=15> </td>
1561 <td> <input name="uprx_checks" type="checkbox" value=15> </td>
1562 <td> <input name="uprx_checks" type="checkbox" value=16></td>
1562 <td> <input name="uprx_checks" type="checkbox" value=16></td>
1563 </tr>
1563 </tr>
1564 <tr>
1564 <tr>
1565 <td> <input name="uprx_checks" type="checkbox" value=21> </td>
1565 <td> <input name="uprx_checks" type="checkbox" value=21> </td>
1566 <td> <input name="uprx_checks" type="checkbox" value=22> </td>
1566 <td> <input name="uprx_checks" type="checkbox" value=22> </td>
1567 <td> <input name="uprx_checks" type="checkbox" value=23> </td>
1567 <td> <input name="uprx_checks" type="checkbox" value=23> </td>
1568 <td> <input name="uprx_checks" type="checkbox" value=24> </td>
1568 <td> <input name="uprx_checks" type="checkbox" value=24> </td>
1569 </tr>
1569 </tr>
1570 <tr>
1570 <tr>
1571 <td> <input name="uprx_checks" type="checkbox" value=29> </td>
1571 <td> <input name="uprx_checks" type="checkbox" value=29> </td>
1572 <td> <input name="uprx_checks" type="checkbox" value=30> </td>
1572 <td> <input name="uprx_checks" type="checkbox" value=30> </td>
1573 <td> <input name="uprx_checks" type="checkbox" value=31> </td>
1573 <td> <input name="uprx_checks" type="checkbox" value=31> </td>
1574 <td> <input name="uprx_checks" type="checkbox" value=32> </td>
1574 <td> <input name="uprx_checks" type="checkbox" value=32> </td>
1575 </tr>
1575 </tr>
1576 </table>
1576 </table>
1577 </td>
1577 </td>
1578 </tr>
1578 </tr>
1579 <tr>
1579 <tr>
1580 <td> <b>West Quarter</b>
1580 <td> <b>West Quarter</b>
1581 <table align="center" class="rx_west_quarter">
1581 <table align="center" class="rx_west_quarter">
1582 <tr>
1582 <tr>
1583 <td> <input name="uprx_checks" type="checkbox" value=33> </td> <!--class="checkbox-inline"--->
1583 <td> <input name="uprx_checks" type="checkbox" value=33> </td> <!--class="checkbox-inline"--->
1584 <td> <input name="uprx_checks" type="checkbox" value=34> </td>
1584 <td> <input name="uprx_checks" type="checkbox" value=34> </td>
1585 <td> <input name="uprx_checks" type="checkbox" value=35> </td>
1585 <td> <input name="uprx_checks" type="checkbox" value=35> </td>
1586 <td> <input name="uprx_checks" type="checkbox" value=36> </td>
1586 <td> <input name="uprx_checks" type="checkbox" value=36> </td>
1587 </tr>
1587 </tr>
1588 <tr>
1588 <tr>
1589 <td> <input name="uprx_checks" type="checkbox" value=41> </td>
1589 <td> <input name="uprx_checks" type="checkbox" value=41> </td>
1590 <td> <input name="uprx_checks" type="checkbox" value=42> </td>
1590 <td> <input name="uprx_checks" type="checkbox" value=42> </td>
1591 <td> <input name="uprx_checks" type="checkbox" value=43> </td>
1591 <td> <input name="uprx_checks" type="checkbox" value=43> </td>
1592 <td> <input name="uprx_checks" type="checkbox" value=44> </td>
1592 <td> <input name="uprx_checks" type="checkbox" value=44> </td>
1593 </tr>
1593 </tr>
1594 <tr>
1594 <tr>
1595 <td> <input name="uprx_checks" type="checkbox" value=49> </td>
1595 <td> <input name="uprx_checks" type="checkbox" value=49> </td>
1596 <td> <input name="uprx_checks" type="checkbox" value=50> </td>
1596 <td> <input name="uprx_checks" type="checkbox" value=50> </td>
1597 <td> <input name="uprx_checks" type="checkbox" value=51> </td>
1597 <td> <input name="uprx_checks" type="checkbox" value=51> </td>
1598 <td> <input name="uprx_checks" type="checkbox" value=52> </td>
1598 <td> <input name="uprx_checks" type="checkbox" value=52> </td>
1599 </tr>
1599 </tr>
1600 <tr>
1600 <tr>
1601 <td> <input name="uprx_checks" type="checkbox" value=57> </td>
1601 <td> <input name="uprx_checks" type="checkbox" value=57> </td>
1602 <td> <input name="uprx_checks" type="checkbox" value=58> </td>
1602 <td> <input name="uprx_checks" type="checkbox" value=58> </td>
1603 <td> <input name="uprx_checks" type="checkbox" value=59> </td>
1603 <td> <input name="uprx_checks" type="checkbox" value=59> </td>
1604 <td> <input name="uprx_checks" type="checkbox" value=60> </td>
1604 <td> <input name="uprx_checks" type="checkbox" value=60> </td>
1605 </tr>
1605 </tr>
1606 </table>
1606 </table>
1607 </td>
1607 </td>
1608 <td> <b>South Quarter</b>
1608 <td> <b>South Quarter</b>
1609 <table align="center" class="rx_south_quarter">
1609 <table align="center" class="rx_south_quarter">
1610 <tr>
1610 <tr>
1611 <td> <input name="uprx_checks" type="checkbox" value=37> </td>
1611 <td> <input name="uprx_checks" type="checkbox" value=37> </td>
1612 <td> <input name="uprx_checks" type="checkbox" value=38> </td>
1612 <td> <input name="uprx_checks" type="checkbox" value=38> </td>
1613 <td> <input name="uprx_checks" type="checkbox" value=39> </td>
1613 <td> <input name="uprx_checks" type="checkbox" value=39> </td>
1614 <td> <input name="uprx_checks" type="checkbox" value=40> </td>
1614 <td> <input name="uprx_checks" type="checkbox" value=40> </td>
1615 </tr>
1615 </tr>
1616 <tr>
1616 <tr>
1617 <td> <input name="uprx_checks" type="checkbox" value=45> </td>
1617 <td> <input name="uprx_checks" type="checkbox" value=45> </td>
1618 <td> <input name="uprx_checks" type="checkbox" value=46> </td>
1618 <td> <input name="uprx_checks" type="checkbox" value=46> </td>
1619 <td> <input name="uprx_checks" type="checkbox" value=47> </td>
1619 <td> <input name="uprx_checks" type="checkbox" value=47> </td>
1620 <td> <input name="uprx_checks" type="checkbox" value=48> </td>
1620 <td> <input name="uprx_checks" type="checkbox" value=48> </td>
1621 </tr>
1621 </tr>
1622 <tr>
1622 <tr>
1623 <td> <input name="uprx_checks" type="checkbox" value=53> </td>
1623 <td> <input name="uprx_checks" type="checkbox" value=53> </td>
1624 <td> <input name="uprx_checks" type="checkbox" value=54> </td>
1624 <td> <input name="uprx_checks" type="checkbox" value=54> </td>
1625 <td> <input name="uprx_checks" type="checkbox" value=55> </td>
1625 <td> <input name="uprx_checks" type="checkbox" value=55> </td>
1626 <td> <input name="uprx_checks" type="checkbox" value=56> </td>
1626 <td> <input name="uprx_checks" type="checkbox" value=56> </td>
1627 </tr>
1627 </tr>
1628 <tr>
1628 <tr>
1629 <td> <input name="uprx_checks" type="checkbox" value=61> </td>
1629 <td> <input name="uprx_checks" type="checkbox" value=61> </td>
1630 <td> <input name="uprx_checks" type="checkbox" value=62> </td>
1630 <td> <input name="uprx_checks" type="checkbox" value=62> </td>
1631 <td> <input name="uprx_checks" type="checkbox" value=63> </td>
1631 <td> <input name="uprx_checks" type="checkbox" value=63> </td>
1632 <td> <input name="uprx_checks" type="checkbox" value=64> </td>
1632 <td> <input name="uprx_checks" type="checkbox" value=64> </td>
1633 </tr>
1633 </tr>
1634 </table>
1634 </table>
1635 </td>
1635 </td>
1636 </tr>
1636 </tr>
1637 </table>
1637 </table>
1638
1638
1639
1639
1640 <div id="id_ues_up" class="container">
1640 <div id="id_ues_up" class="container">
1641 <h5>Ues</h5>
1641 <h5>Ues</h5>
1642 <div class="col-xs-2">
1642 <div class="row">
1643 <input name="ues_up1" value="0" class="form-control" id="input1" type="number" step="any">
1643 <div class="col-xs-2">
1644 </div>
1644 <input name="ues_up1" value="0" class="form-control" id="input1" type="number" step="any">
1645 <div class="col-xs-2">
1645 </div>
1646 <input name="ues_up2" value="0" class="form-control" id="input2" type="number" step="any">
1646 <div class="col-xs-2">
1647 </div>
1647 <input name="ues_up2" value="0" class="form-control" id="input2" type="number" step="any">
1648 <div class="col-xs-2">
1648 </div>
1649 <input name="ues_up3" value="0" class="form-control" id="input3" type="number" step="any">
1649 <div class="col-xs-2">
1650 </div>
1650 <input name="ues_up3" value="0" class="form-control" id="input3" type="number" step="any">
1651 <div class="col-xs-2">
1651 </div>
1652 <input name="ues_up4" value="0" class="form-control" id="input4" type="number" step="any">
1652 <div class="col-xs-2">
1653 <input name="ues_up4" value="0" class="form-control" id="input4" type="number" step="any">
1654 </div>
1653 </div>
1655 </div>
1654 <div style="vertical-align:center; margin-top:20px;">
1656 <div style="vertical-align:center; margin-top:20px;">
1655 <label class="checkbox-inline"><input name="onlyrx" style="vertical-align:bottom" id="onlyrx_up" type="checkbox" value=1>Only RX</label>
1657 <label class="checkbox-inline"><input name="onlyrx" style="vertical-align:bottom" id="onlyrx_up" type="checkbox" value=1>Only RX</label>
1656 </div>
1658 </div>
1657 </div>
1659 </div>
1658
1660
1659
1661
1660 </div>
1662 </div>
1661
1663
1662
1664
1663 </div>
1665 </div>
1664 </div>
1666 </div>
1665 '''
1667 '''
1666
1668
1667 script = '''
1669 script = '''
1668
1670
1669 '''
1671 '''
1670
1672
1671 return mark_safe(style+html+script)
1673 return mark_safe(style+html+script)
1672
1674
1673
1675
1674 class DownDataWidget(forms.widgets.TextInput):
1676 class DownDataWidget(forms.widgets.TextInput):
1675
1677
1676 def render(self, label, value, attrs=None):
1678 def render(self, name, value, attrs=None, renderer=None):
1677
1679
1678 html = '''
1680 html = '''
1679 <br>
1681 <br>
1680 <div class="panel-group">
1682 <div class="panel-group">
1681 <div style="display: inline-block" id="DOWN" class="panel panel-default">
1683 <div style="display: inline-block" id="DOWN" class="panel panel-default">
1682
1684
1683 <div class="panel-heading">Down</div>
1685 <div class="panel-heading">Down</div>
1684
1686
1685
1687
1686 <div class="panel-body">
1688 <div class="panel-body">
1687
1689
1688 <table class="abs">
1690 <table class="abs">
1689 <tr>
1691 <tr>
1690 <td colspan="2"> <b>Antenna</b> </td>
1692 <td colspan="2"> <b>Antenna</b> </td>
1691 </tr>
1693 </tr>
1692 <tr>
1694 <tr>
1693 <td> <b>North Quarter</b>
1695 <td> <b>North Quarter</b>
1694 <table class="north_quarter">
1696 <table class="north_quarter">
1695 <tr>
1697 <tr>
1696 <td><select name="abs_down1"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1698 <td><select name="abs_down1"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1697 <td><select name="abs_down2"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1699 <td><select name="abs_down2"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1698 <td><select name="abs_down3"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1700 <td><select name="abs_down3"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1699 <td><select name="abs_down4"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1701 <td><select name="abs_down4"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1700 </tr>
1702 </tr>
1701 <tr>
1703 <tr>
1702 <td><select name="abs_down9"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1704 <td><select name="abs_down9"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1703 <td><select name="abs_down10"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1705 <td><select name="abs_down10"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1704 <td><select name="abs_down11"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1706 <td><select name="abs_down11"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1705 <td><select name="abs_down12"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1707 <td><select name="abs_down12"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1706 </tr>
1708 </tr>
1707 <tr>
1709 <tr>
1708 <td><select name="abs_down17"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1710 <td><select name="abs_down17"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1709 <td><select name="abs_down18"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1711 <td><select name="abs_down18"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1710 <td><select name="abs_down19"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1712 <td><select name="abs_down19"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1711 <td><select name="abs_down20"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1713 <td><select name="abs_down20"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1712 </tr>
1714 </tr>
1713 <tr>
1715 <tr>
1714 <td><select name="abs_down25"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1716 <td><select name="abs_down25"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1715 <td><select name="abs_down26"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1717 <td><select name="abs_down26"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1716 <td><select name="abs_down27"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1718 <td><select name="abs_down27"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1717 <td><select name="abs_down28"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1719 <td><select name="abs_down28"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1718 </tr>
1720 </tr>
1719 </table>
1721 </table>
1720 </td>
1722 </td>
1721 <td> <b>East Quarter</b>
1723 <td> <b>East Quarter</b>
1722 <table class="east_quarter">
1724 <table class="east_quarter">
1723 <tr>
1725 <tr>
1724 <td><select name="abs_down5"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1726 <td><select name="abs_down5"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1725 <td><select name="abs_down6"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1727 <td><select name="abs_down6"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1726 <td><select name="abs_down7"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1728 <td><select name="abs_down7"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1727 <td><select name="abs_down8"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1729 <td><select name="abs_down8"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1728 </tr>
1730 </tr>
1729 <tr>
1731 <tr>
1730 <td><select name="abs_down13"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1732 <td><select name="abs_down13"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1731 <td><select name="abs_down14"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1733 <td><select name="abs_down14"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1732 <td><select name="abs_down15"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1734 <td><select name="abs_down15"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1733 <td><select name="abs_down16"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1735 <td><select name="abs_down16"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1734 </tr>
1736 </tr>
1735 <tr>
1737 <tr>
1736 <td><select name="abs_down21"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1738 <td><select name="abs_down21"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1737 <td><select name="abs_down22"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1739 <td><select name="abs_down22"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1738 <td><select name="abs_down23"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1740 <td><select name="abs_down23"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1739 <td><select name="abs_down24"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1741 <td><select name="abs_down24"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1740 </tr>
1742 </tr>
1741 <tr>
1743 <tr>
1742 <td><select name="abs_down29"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1744 <td><select name="abs_down29"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1743 <td><select name="abs_down30"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1745 <td><select name="abs_down30"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1744 <td><select name="abs_down31"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1746 <td><select name="abs_down31"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1745 <td><select name="abs_down32"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1747 <td><select name="abs_down32"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1746 </tr>
1748 </tr>
1747 </table>
1749 </table>
1748 </td>
1750 </td>
1749 </tr>
1751 </tr>
1750 <tr>
1752 <tr>
1751 <td> <b>West Quarter</b>
1753 <td> <b>West Quarter</b>
1752 <table class="west_quarter">
1754 <table class="west_quarter">
1753 <tr>
1755 <tr>
1754 <td><select name="abs_down33"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1756 <td><select name="abs_down33"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1755 <td><select name="abs_down34"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1757 <td><select name="abs_down34"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1756 <td><select name="abs_down35"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1758 <td><select name="abs_down35"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1757 <td><select name="abs_down36"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1759 <td><select name="abs_down36"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1758 </tr>
1760 </tr>
1759 <tr>
1761 <tr>
1760 <td><select name="abs_down41"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1762 <td><select name="abs_down41"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1761 <td><select name="abs_down42"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1763 <td><select name="abs_down42"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1762 <td><select name="abs_down43"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1764 <td><select name="abs_down43"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1763 <td><select name="abs_down44"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1765 <td><select name="abs_down44"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1764 </tr>
1766 </tr>
1765 <tr>
1767 <tr>
1766 <td><select name="abs_down49"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1768 <td><select name="abs_down49"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1767 <td><select name="abs_down50"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1769 <td><select name="abs_down50"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1768 <td><select name="abs_down51"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1770 <td><select name="abs_down51"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1769 <td><select name="abs_down52"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1771 <td><select name="abs_down52"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1770 </tr>
1772 </tr>
1771 <tr>
1773 <tr>
1772 <td><select name="abs_down57"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1774 <td><select name="abs_down57"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1773 <td><select name="abs_down58"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1775 <td><select name="abs_down58"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1774 <td><select name="abs_down59"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1776 <td><select name="abs_down59"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1775 <td><select name="abs_down60"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1777 <td><select name="abs_down60"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1776 </tr>
1778 </tr>
1777 </table>
1779 </table>
1778 </td>
1780 </td>
1779 <td> <b>South Quarter</b>
1781 <td> <b>South Quarter</b>
1780 <table class="south_quarter">
1782 <table class="south_quarter">
1781 <tr>
1783 <tr>
1782 <td><select name="abs_down37"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1784 <td><select name="abs_down37"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1783 <td><select name="abs_down38"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1785 <td><select name="abs_down38"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1784 <td><select name="abs_down39"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1786 <td><select name="abs_down39"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1785 <td><select name="abs_down40"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1787 <td><select name="abs_down40"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1786 </tr>
1788 </tr>
1787 <tr>
1789 <tr>
1788 <td><select name="abs_down45"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1790 <td><select name="abs_down45"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1789 <td><select name="abs_down46"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1791 <td><select name="abs_down46"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1790 <td><select name="abs_down47"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1792 <td><select name="abs_down47"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1791 <td><select name="abs_down48"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1793 <td><select name="abs_down48"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1792 </tr>
1794 </tr>
1793 <tr>
1795 <tr>
1794 <td><select name="abs_down53"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1796 <td><select name="abs_down53"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1795 <td><select name="abs_down54"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1797 <td><select name="abs_down54"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1796 <td><select name="abs_down55"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1798 <td><select name="abs_down55"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1797 <td><select name="abs_down56"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1799 <td><select name="abs_down56"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1798 </tr>
1800 </tr>
1799 <tr>
1801 <tr>
1800 <td><select name="abs_down61"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1802 <td><select name="abs_down61"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1801 <td><select name="abs_down62"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1803 <td><select name="abs_down62"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1802 <td><select name="abs_down63"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1804 <td><select name="abs_down63"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1803 <td><select name="abs_down64"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1805 <td><select name="abs_down64"> <option value=0.0>0.0</option> <option value=0.5>0.5</option> <option value=1.0>1.0</option> <option value=1.5>1.5</option> <option value=2.0>2.0</option> <option value=2.5>2.5</option> <option value=3.0>3.0</option> <option value=3.5>3.5</option> </select></td>
1804 </tr>
1806 </tr>
1805 </table>
1807 </table>
1806 </td>
1808 </td>
1807 </tr>
1809 </tr>
1808 </table>
1810 </table>
1809
1811
1810
1812
1811
1813
1812 <table class="abs_tx">
1814 <table class="abs_tx">
1813 <tr>
1815 <tr>
1814 <td colspan="2"> <b>TX</b> </td>
1816 <td colspan="2"> <b>TX</b> </td>
1815 </tr>
1817 </tr>
1816 <tr>
1818 <tr>
1817 <td> <b>North Quarter</b>
1819 <td> <b>North Quarter</b>
1818 <table align="center" class="tx_north_quarter">
1820 <table align="center" class="tx_north_quarter">
1819 <tr>
1821 <tr>
1820 <td> <input name="downtx_checks" type="checkbox" value=1> </td>
1822 <td> <input name="downtx_checks" type="checkbox" value=1> </td>
1821 <td> <input name="downtx_checks" type="checkbox" value=2> </td>
1823 <td> <input name="downtx_checks" type="checkbox" value=2> </td>
1822 <td> <input name="downtx_checks" type="checkbox" value=3> </td>
1824 <td> <input name="downtx_checks" type="checkbox" value=3> </td>
1823 <td> <input name="downtx_checks" type="checkbox" value=4> </td>
1825 <td> <input name="downtx_checks" type="checkbox" value=4> </td>
1824 </tr>
1826 </tr>
1825 <tr>
1827 <tr>
1826 <td> <input name="downtx_checks" type="checkbox" value=9> </td>
1828 <td> <input name="downtx_checks" type="checkbox" value=9> </td>
1827 <td> <input name="downtx_checks" type="checkbox" value=10> </td>
1829 <td> <input name="downtx_checks" type="checkbox" value=10> </td>
1828 <td> <input name="downtx_checks" type="checkbox" value=11> </td>
1830 <td> <input name="downtx_checks" type="checkbox" value=11> </td>
1829 <td> <input name="downtx_checks" type="checkbox" value=12> </td>
1831 <td> <input name="downtx_checks" type="checkbox" value=12> </td>
1830 </tr>
1832 </tr>
1831 <tr>
1833 <tr>
1832 <td> <input name="downtx_checks" type="checkbox" value=17> </td>
1834 <td> <input name="downtx_checks" type="checkbox" value=17> </td>
1833 <td> <input name="downtx_checks" type="checkbox" value=18> </td>
1835 <td> <input name="downtx_checks" type="checkbox" value=18> </td>
1834 <td> <input name="downtx_checks" type="checkbox" value=19> </td>
1836 <td> <input name="downtx_checks" type="checkbox" value=19> </td>
1835 <td> <input name="downtx_checks" type="checkbox" value=20> </td>
1837 <td> <input name="downtx_checks" type="checkbox" value=20> </td>
1836 </tr>
1838 </tr>
1837 <tr>
1839 <tr>
1838 <td> <input name="downtx_checks" type="checkbox" value=25> </td>
1840 <td> <input name="downtx_checks" type="checkbox" value=25> </td>
1839 <td> <input name="downtx_checks" type="checkbox" value=26> </td>
1841 <td> <input name="downtx_checks" type="checkbox" value=26> </td>
1840 <td> <input name="downtx_checks" type="checkbox" value=27> </td>
1842 <td> <input name="downtx_checks" type="checkbox" value=27> </td>
1841 <td> <input name="downtx_checks" type="checkbox" value=28> </td>
1843 <td> <input name="downtx_checks" type="checkbox" value=28> </td>
1842 </tr>
1844 </tr>
1843 </table>
1845 </table>
1844 </td>
1846 </td>
1845 <td> <b>East Quarter</b>
1847 <td> <b>East Quarter</b>
1846 <table align="center" class="tx_east_quarter">
1848 <table align="center" class="tx_east_quarter">
1847 <tr>
1849 <tr>
1848 <td> <input name="downtx_checks" type="checkbox" value=4> </td>
1850 <td> <input name="downtx_checks" type="checkbox" value=4> </td>
1849 <td> <input name="downtx_checks" type="checkbox" value=6> </td>
1851 <td> <input name="downtx_checks" type="checkbox" value=6> </td>
1850 <td> <input name="downtx_checks" type="checkbox" value=7> </td>
1852 <td> <input name="downtx_checks" type="checkbox" value=7> </td>
1851 <td> <input name="downtx_checks" type="checkbox" value=8> </td>
1853 <td> <input name="downtx_checks" type="checkbox" value=8> </td>
1852 </tr>
1854 </tr>
1853 <tr>
1855 <tr>
1854 <td> <input name="downtx_checks" type="checkbox" value=13> </td>
1856 <td> <input name="downtx_checks" type="checkbox" value=13> </td>
1855 <td> <input name="downtx_checks" type="checkbox" value=14> </td>
1857 <td> <input name="downtx_checks" type="checkbox" value=14> </td>
1856 <td> <input name="downtx_checks" type="checkbox" value=15> </td>
1858 <td> <input name="downtx_checks" type="checkbox" value=15> </td>
1857 <td> <input name="downtx_checks" type="checkbox" value=16> </td>
1859 <td> <input name="downtx_checks" type="checkbox" value=16> </td>
1858 </tr>
1860 </tr>
1859 <tr>
1861 <tr>
1860 <td> <input name="downtx_checks" type="checkbox" value=21> </td>
1862 <td> <input name="downtx_checks" type="checkbox" value=21> </td>
1861 <td> <input name="downtx_checks" type="checkbox" value=22> </td>
1863 <td> <input name="downtx_checks" type="checkbox" value=22> </td>
1862 <td> <input name="downtx_checks" type="checkbox" value=23> </td>
1864 <td> <input name="downtx_checks" type="checkbox" value=23> </td>
1863 <td> <input name="downtx_checks" type="checkbox" value=24> </td>
1865 <td> <input name="downtx_checks" type="checkbox" value=24> </td>
1864 </tr>
1866 </tr>
1865 <tr>
1867 <tr>
1866 <td> <input name="downtx_checks" type="checkbox" value=29> </td>
1868 <td> <input name="downtx_checks" type="checkbox" value=29> </td>
1867 <td> <input name="downtx_checks" type="checkbox" value=30> </td>
1869 <td> <input name="downtx_checks" type="checkbox" value=30> </td>
1868 <td> <input name="downtx_checks" type="checkbox" value=31> </td>
1870 <td> <input name="downtx_checks" type="checkbox" value=31> </td>
1869 <td> <input name="downtx_checks" type="checkbox" value=32> </td>
1871 <td> <input name="downtx_checks" type="checkbox" value=32> </td>
1870 </tr>
1872 </tr>
1871 </table>
1873 </table>
1872 </td>
1874 </td>
1873 </tr>
1875 </tr>
1874 <tr>
1876 <tr>
1875 <td> <b>West Quarter</b>
1877 <td> <b>West Quarter</b>
1876 <table align="center" class="tx_west_quarter">
1878 <table align="center" class="tx_west_quarter">
1877 <tr>
1879 <tr>
1878 <td> <input name="downtx_checks" type="checkbox" value=33> </td> <!--class="checkbox-inline"--->
1880 <td> <input name="downtx_checks" type="checkbox" value=33> </td> <!--class="checkbox-inline"--->
1879 <td> <input name="downtx_checks" type="checkbox" value=34> </td>
1881 <td> <input name="downtx_checks" type="checkbox" value=34> </td>
1880 <td> <input name="downtx_checks" type="checkbox" value=35> </td>
1882 <td> <input name="downtx_checks" type="checkbox" value=35> </td>
1881 <td> <input name="downtx_checks" type="checkbox" value=36> </td>
1883 <td> <input name="downtx_checks" type="checkbox" value=36> </td>
1882 </tr>
1884 </tr>
1883 <tr>
1885 <tr>
1884 <td> <input name="downtx_checks" type="checkbox" value=41> </td>
1886 <td> <input name="downtx_checks" type="checkbox" value=41> </td>
1885 <td> <input name="downtx_checks" type="checkbox" value=42> </td>
1887 <td> <input name="downtx_checks" type="checkbox" value=42> </td>
1886 <td> <input name="downtx_checks" type="checkbox" value=43> </td>
1888 <td> <input name="downtx_checks" type="checkbox" value=43> </td>
1887 <td> <input name="downtx_checks" type="checkbox" value=44> </td>
1889 <td> <input name="downtx_checks" type="checkbox" value=44> </td>
1888 </tr>
1890 </tr>
1889 <tr>
1891 <tr>
1890 <td> <input name="downtx_checks" type="checkbox" value=49> </td>
1892 <td> <input name="downtx_checks" type="checkbox" value=49> </td>
1891 <td> <input name="downtx_checks" type="checkbox" value=50> </td>
1893 <td> <input name="downtx_checks" type="checkbox" value=50> </td>
1892 <td> <input name="downtx_checks" type="checkbox" value=51> </td>
1894 <td> <input name="downtx_checks" type="checkbox" value=51> </td>
1893 <td> <input name="downtx_checks" type="checkbox" value=52> </td>
1895 <td> <input name="downtx_checks" type="checkbox" value=52> </td>
1894 </tr>
1896 </tr>
1895 <tr>
1897 <tr>
1896 <td> <input name="downtx_checks" type="checkbox" value=57> </td>
1898 <td> <input name="downtx_checks" type="checkbox" value=57> </td>
1897 <td> <input name="downtx_checks" type="checkbox" value=58> </td>
1899 <td> <input name="downtx_checks" type="checkbox" value=58> </td>
1898 <td> <input name="downtx_checks" type="checkbox" value=59> </td>
1900 <td> <input name="downtx_checks" type="checkbox" value=59> </td>
1899 <td> <input name="downtx_checks" type="checkbox" value=60> </td>
1901 <td> <input name="downtx_checks" type="checkbox" value=60> </td>
1900 </tr>
1902 </tr>
1901 </table>
1903 </table>
1902 </td>
1904 </td>
1903 <td> <b>South Quarter</b>
1905 <td> <b>South Quarter</b>
1904 <table align="center" class="tx_south_quarter">
1906 <table align="center" class="tx_south_quarter">
1905 <tr>
1907 <tr>
1906 <td> <input name="downtx_checks" type="checkbox" value=37> </td> <!--class="checkbox-inline"--->
1908 <td> <input name="downtx_checks" type="checkbox" value=37> </td> <!--class="checkbox-inline"--->
1907 <td> <input name="downtx_checks" type="checkbox" value=38> </td>
1909 <td> <input name="downtx_checks" type="checkbox" value=38> </td>
1908 <td> <input name="downtx_checks" type="checkbox" value=39> </td>
1910 <td> <input name="downtx_checks" type="checkbox" value=39> </td>
1909 <td> <input name="downtx_checks" type="checkbox" value=40> </td>
1911 <td> <input name="downtx_checks" type="checkbox" value=40> </td>
1910 </tr>
1912 </tr>
1911 <tr>
1913 <tr>
1912 <td> <input name="downtx_checks" type="checkbox" value=45> </td>
1914 <td> <input name="downtx_checks" type="checkbox" value=45> </td>
1913 <td> <input name="downtx_checks" type="checkbox" value=46> </td>
1915 <td> <input name="downtx_checks" type="checkbox" value=46> </td>
1914 <td> <input name="downtx_checks" type="checkbox" value=47> </td>
1916 <td> <input name="downtx_checks" type="checkbox" value=47> </td>
1915 <td> <input name="downtx_checks" type="checkbox" value=48> </td>
1917 <td> <input name="downtx_checks" type="checkbox" value=48> </td>
1916 </tr>
1918 </tr>
1917 <tr>
1919 <tr>
1918 <td> <input name="downtx_checks" type="checkbox" value=53> </td>
1920 <td> <input name="downtx_checks" type="checkbox" value=53> </td>
1919 <td> <input name="downtx_checks" type="checkbox" value=54> </td>
1921 <td> <input name="downtx_checks" type="checkbox" value=54> </td>
1920 <td> <input name="downtx_checks" type="checkbox" value=55> </td>
1922 <td> <input name="downtx_checks" type="checkbox" value=55> </td>
1921 <td> <input name="downtx_checks" type="checkbox" value=56> </td>
1923 <td> <input name="downtx_checks" type="checkbox" value=56> </td>
1922 </tr>
1924 </tr>
1923 <tr>
1925 <tr>
1924 <td> <input name="downtx_checks" type="checkbox" value=61> </td>
1926 <td> <input name="downtx_checks" type="checkbox" value=61> </td>
1925 <td> <input name="downtx_checks" type="checkbox" value=62> </td>
1927 <td> <input name="downtx_checks" type="checkbox" value=62> </td>
1926 <td> <input name="downtx_checks" type="checkbox" value=63> </td>
1928 <td> <input name="downtx_checks" type="checkbox" value=63> </td>
1927 <td> <input name="downtx_checks" type="checkbox" value=64> </td>
1929 <td> <input name="downtx_checks" type="checkbox" value=64> </td>
1928 </tr>
1930 </tr>
1929 </table>
1931 </table>
1930 </td>
1932 </td>
1931 </tr>
1933 </tr>
1932 </table>
1934 </table>
1933
1935
1934 <table class="abs_rx">
1936 <table class="abs_rx">
1935 <tr>
1937 <tr>
1936 <td colspan="2"> <b>RX</b> </td>
1938 <td colspan="2"> <b>RX</b> </td>
1937 </tr>
1939 </tr>
1938 <tr>
1940 <tr>
1939 <td> <b>North Quarter</b>
1941 <td> <b>North Quarter</b>
1940 <table align="center" class="rx_north_quarter">
1942 <table align="center" class="rx_north_quarter">
1941 <tr>
1943 <tr>
1942 <td> <input name="downrx_checks" type="checkbox" value=1> </td>
1944 <td> <input name="downrx_checks" type="checkbox" value=1> </td>
1943 <td> <input name="downrx_checks" type="checkbox" value=2> </td>
1945 <td> <input name="downrx_checks" type="checkbox" value=2> </td>
1944 <td> <input name="downrx_checks" type="checkbox" value=3> </td>
1946 <td> <input name="downrx_checks" type="checkbox" value=3> </td>
1945 <td> <input name="downrx_checks" type="checkbox" value=4> </td>
1947 <td> <input name="downrx_checks" type="checkbox" value=4> </td>
1946 </tr>
1948 </tr>
1947 <tr>
1949 <tr>
1948 <td> <input name="downrx_checks" type="checkbox" value=9> </td>
1950 <td> <input name="downrx_checks" type="checkbox" value=9> </td>
1949 <td> <input name="downrx_checks" type="checkbox" value=10> </td>
1951 <td> <input name="downrx_checks" type="checkbox" value=10> </td>
1950 <td> <input name="downrx_checks" type="checkbox" value=11> </td>
1952 <td> <input name="downrx_checks" type="checkbox" value=11> </td>
1951 <td> <input name="downrx_checks" type="checkbox" value=12> </td>
1953 <td> <input name="downrx_checks" type="checkbox" value=12> </td>
1952 </tr>
1954 </tr>
1953 <tr>
1955 <tr>
1954 <td> <input name="downrx_checks" type="checkbox" value=17> </td>
1956 <td> <input name="downrx_checks" type="checkbox" value=17> </td>
1955 <td> <input name="downrx_checks" type="checkbox" value=18> </td>
1957 <td> <input name="downrx_checks" type="checkbox" value=18> </td>
1956 <td> <input name="downrx_checks" type="checkbox" value=19> </td>
1958 <td> <input name="downrx_checks" type="checkbox" value=19> </td>
1957 <td> <input name="downrx_checks" type="checkbox" value=20> </td>
1959 <td> <input name="downrx_checks" type="checkbox" value=20> </td>
1958 </tr>
1960 </tr>
1959 <tr>
1961 <tr>
1960 <td> <input name="downrx_checks" type="checkbox" value=25> </td>
1962 <td> <input name="downrx_checks" type="checkbox" value=25> </td>
1961 <td> <input name="downrx_checks" type="checkbox" value=26> </td>
1963 <td> <input name="downrx_checks" type="checkbox" value=26> </td>
1962 <td> <input name="downrx_checks" type="checkbox" value=27> </td>
1964 <td> <input name="downrx_checks" type="checkbox" value=27> </td>
1963 <td> <input name="downrx_checks" type="checkbox" value=28> </td>
1965 <td> <input name="downrx_checks" type="checkbox" value=28> </td>
1964 </tr>
1966 </tr>
1965 </table>
1967 </table>
1966 </td>
1968 </td>
1967 <td> <b>East Quarter</b>
1969 <td> <b>East Quarter</b>
1968 <table align="center" class="rx_east_quarter">
1970 <table align="center" class="rx_east_quarter">
1969 <tr>
1971 <tr>
1970 <td> <input name="downrx_checks" type="checkbox" value=5> </td>
1972 <td> <input name="downrx_checks" type="checkbox" value=5> </td>
1971 <td> <input name="downrx_checks" type="checkbox" value=6> </td>
1973 <td> <input name="downrx_checks" type="checkbox" value=6> </td>
1972 <td> <input name="downrx_checks" type="checkbox" value=7> </td>
1974 <td> <input name="downrx_checks" type="checkbox" value=7> </td>
1973 <td> <input name="downrx_checks" type="checkbox" value=8> </td>
1975 <td> <input name="downrx_checks" type="checkbox" value=8> </td>
1974 </tr>
1976 </tr>
1975 <tr>
1977 <tr>
1976 <td> <input name="downrx_checks" type="checkbox" value=13> </td>
1978 <td> <input name="downrx_checks" type="checkbox" value=13> </td>
1977 <td> <input name="downrx_checks" type="checkbox" value=14> </td>
1979 <td> <input name="downrx_checks" type="checkbox" value=14> </td>
1978 <td> <input name="downrx_checks" type="checkbox" value=15> </td>
1980 <td> <input name="downrx_checks" type="checkbox" value=15> </td>
1979 <td> <input name="downrx_checks" type="checkbox" value=16> </td>
1981 <td> <input name="downrx_checks" type="checkbox" value=16> </td>
1980 </tr>
1982 </tr>
1981 <tr>
1983 <tr>
1982 <td> <input name="downrx_checks" type="checkbox" value=21> </td>
1984 <td> <input name="downrx_checks" type="checkbox" value=21> </td>
1983 <td> <input name="downrx_checks" type="checkbox" value=22> </td>
1985 <td> <input name="downrx_checks" type="checkbox" value=22> </td>
1984 <td> <input name="downrx_checks" type="checkbox" value=23> </td>
1986 <td> <input name="downrx_checks" type="checkbox" value=23> </td>
1985 <td> <input name="downrx_checks" type="checkbox" value=24> </td>
1987 <td> <input name="downrx_checks" type="checkbox" value=24> </td>
1986 </tr>
1988 </tr>
1987 <tr>
1989 <tr>
1988 <td> <input name="downrx_checks" type="checkbox" value=29> </td>
1990 <td> <input name="downrx_checks" type="checkbox" value=29> </td>
1989 <td> <input name="downrx_checks" type="checkbox" value=30> </td>
1991 <td> <input name="downrx_checks" type="checkbox" value=30> </td>
1990 <td> <input name="downrx_checks" type="checkbox" value=31> </td>
1992 <td> <input name="downrx_checks" type="checkbox" value=31> </td>
1991 <td> <input name="downrx_checks" type="checkbox" value=32> </td>
1993 <td> <input name="downrx_checks" type="checkbox" value=32> </td>
1992 </tr>
1994 </tr>
1993 </table>
1995 </table>
1994 </td>
1996 </td>
1995 </tr>
1997 </tr>
1996 <tr>
1998 <tr>
1997 <td> <b>West Quarter</b>
1999 <td> <b>West Quarter</b>
1998 <table align="center" class="rx_west_quarter">
2000 <table align="center" class="rx_west_quarter">
1999 <tr>
2001 <tr>
2000 <td> <input name="downrx_checks" type="checkbox" value=33> </td>
2002 <td> <input name="downrx_checks" type="checkbox" value=33> </td>
2001 <td> <input name="downrx_checks" type="checkbox" value=34> </td>
2003 <td> <input name="downrx_checks" type="checkbox" value=34> </td>
2002 <td> <input name="downrx_checks" type="checkbox" value=35> </td>
2004 <td> <input name="downrx_checks" type="checkbox" value=35> </td>
2003 <td> <input name="downrx_checks" type="checkbox" value=36> </td>
2005 <td> <input name="downrx_checks" type="checkbox" value=36> </td>
2004 </tr>
2006 </tr>
2005 <tr>
2007 <tr>
2006 <td> <input name="downrx_checks" type="checkbox" value=41> </td>
2008 <td> <input name="downrx_checks" type="checkbox" value=41> </td>
2007 <td> <input name="downrx_checks" type="checkbox" value=42> </td>
2009 <td> <input name="downrx_checks" type="checkbox" value=42> </td>
2008 <td> <input name="downrx_checks" type="checkbox" value=43> </td>
2010 <td> <input name="downrx_checks" type="checkbox" value=43> </td>
2009 <td> <input name="downrx_checks" type="checkbox" value=44> </td>
2011 <td> <input name="downrx_checks" type="checkbox" value=44> </td>
2010 </tr>
2012 </tr>
2011 <tr>
2013 <tr>
2012 <td> <input name="downrx_checks" type="checkbox" value=49> </td>
2014 <td> <input name="downrx_checks" type="checkbox" value=49> </td>
2013 <td> <input name="downrx_checks" type="checkbox" value=50> </td>
2015 <td> <input name="downrx_checks" type="checkbox" value=50> </td>
2014 <td> <input name="downrx_checks" type="checkbox" value=51> </td>
2016 <td> <input name="downrx_checks" type="checkbox" value=51> </td>
2015 <td> <input name="downrx_checks" type="checkbox" value=52> </td>
2017 <td> <input name="downrx_checks" type="checkbox" value=52> </td>
2016 </tr>
2018 </tr>
2017 <tr>
2019 <tr>
2018 <td> <input name="downrx_checks" type="checkbox" value=57> </td>
2020 <td> <input name="downrx_checks" type="checkbox" value=57> </td>
2019 <td> <input name="downrx_checks" type="checkbox" value=58> </td>
2021 <td> <input name="downrx_checks" type="checkbox" value=58> </td>
2020 <td> <input name="downrx_checks" type="checkbox" value=59> </td>
2022 <td> <input name="downrx_checks" type="checkbox" value=59> </td>
2021 <td> <input name="downrx_checks" type="checkbox" value=60> </td>
2023 <td> <input name="downrx_checks" type="checkbox" value=60> </td>
2022 </tr>
2024 </tr>
2023 </table>
2025 </table>
2024 </td>
2026 </td>
2025 <td> <b>South Quarter</b>
2027 <td> <b>South Quarter</b>
2026 <table align="center" class="rx_south_quarter">
2028 <table align="center" class="rx_south_quarter">
2027 <tr>
2029 <tr>
2028 <td> <input name="downrx_checks" type="checkbox" value=37> </td>
2030 <td> <input name="downrx_checks" type="checkbox" value=37> </td>
2029 <td> <input name="downrx_checks" type="checkbox" value=38> </td>
2031 <td> <input name="downrx_checks" type="checkbox" value=38> </td>
2030 <td> <input name="downrx_checks" type="checkbox" value=39> </td>
2032 <td> <input name="downrx_checks" type="checkbox" value=39> </td>
2031 <td> <input name="downrx_checks" type="checkbox" value=40> </td>
2033 <td> <input name="downrx_checks" type="checkbox" value=40> </td>
2032 </tr>
2034 </tr>
2033 <tr>
2035 <tr>
2034 <td> <input name="downrx_checks" type="checkbox" value=45> </td>
2036 <td> <input name="downrx_checks" type="checkbox" value=45> </td>
2035 <td> <input name="downrx_checks" type="checkbox" value=46> </td>
2037 <td> <input name="downrx_checks" type="checkbox" value=46> </td>
2036 <td> <input name="downrx_checks" type="checkbox" value=47> </td>
2038 <td> <input name="downrx_checks" type="checkbox" value=47> </td>
2037 <td> <input name="downrx_checks" type="checkbox" value=48> </td>
2039 <td> <input name="downrx_checks" type="checkbox" value=48> </td>
2038 </tr>
2040 </tr>
2039 <tr>
2041 <tr>
2040 <td> <input name="downrx_checks" type="checkbox" value=53> </td>
2042 <td> <input name="downrx_checks" type="checkbox" value=53> </td>
2041 <td> <input name="downrx_checks" type="checkbox" value=54> </td>
2043 <td> <input name="downrx_checks" type="checkbox" value=54> </td>
2042 <td> <input name="downrx_checks" type="checkbox" value=55> </td>
2044 <td> <input name="downrx_checks" type="checkbox" value=55> </td>
2043 <td> <input name="downrx_checks" type="checkbox" value=56> </td>
2045 <td> <input name="downrx_checks" type="checkbox" value=56> </td>
2044 </tr>
2046 </tr>
2045 <tr>
2047 <tr>
2046 <td> <input name="downrx_checks" type="checkbox" value=61> </td>
2048 <td> <input name="downrx_checks" type="checkbox" value=61> </td>
2047 <td> <input name="downrx_checks" type="checkbox" value=62> </td>
2049 <td> <input name="downrx_checks" type="checkbox" value=62> </td>
2048 <td> <input name="downrx_checks" type="checkbox" value=63> </td>
2050 <td> <input name="downrx_checks" type="checkbox" value=63> </td>
2049 <td> <input name="downrx_checks" type="checkbox" value=64> </td>
2051 <td> <input name="downrx_checks" type="checkbox" value=64> </td>
2050 </tr>
2052 </tr>
2051 </table>
2053 </table>
2052 </td>
2054 </td>
2053 </tr>
2055 </tr>
2054 </table>
2056 </table>
2055
2057
2056
2058
2057 <div id="id_ues_down" class="container">
2059 <div id="id_ues_down" class="container">
2058 <h5>Ues</h5>
2060 <h5>Ues</h5>
2059 <div class="col-xs-2">
2061 <div class="col-xs-2">
2060 <input name="ues_down1" value="0" class="form-control" id="input1_down" type="number" step="any">
2062 <input name="ues_down1" value="0" class="form-control" id="input1_down" type="number" step="any">
2061 </div>
2063 </div>
2062 <div class="col-xs-2">
2064 <div class="col-xs-2">
2063 <input name="ues_down2" value="0" class="form-control" id="input2_down" type="number" step="any">
2065 <input name="ues_down2" value="0" class="form-control" id="input2_down" type="number" step="any">
2064 </div>
2066 </div>
2065 <div class="col-xs-2">
2067 <div class="col-xs-2">
2066 <input name="ues_down3" value="0" class="form-control" id="input3_down" type="number" step="any">
2068 <input name="ues_down3" value="0" class="form-control" id="input3_down" type="number" step="any">
2067 </div>
2069 </div>
2068 <div class="col-xs-2">
2070 <div class="col-xs-2">
2069 <input name="ues_down4" value="0" class="form-control" id="input4_down" type="number" step="any">
2071 <input name="ues_down4" value="0" class="form-control" id="input4_down" type="number" step="any">
2070 </div>
2072 </div>
2071 <div style="vertical-align:center; margin-top:20px;">
2073 <div style="vertical-align:center; margin-top:20px;">
2072 <label class="checkbox-inline"><input style="vertical-align:bottom" name="onlyrx" id="onlyrx_down" type="checkbox" value=2>Only RX</label>
2074 <label class="checkbox-inline"><input style="vertical-align:bottom" name="onlyrx" id="onlyrx_down" type="checkbox" value=2>Only RX</label>
2073 </div>
2075 </div>
2074 </div>
2076 </div>
2075
2077
2076
2078
2077 </div>
2079 </div>
2078
2080
2079
2081
2080 </div>
2082 </div>
2081 </div>
2083 </div>
2082 '''
2084 '''
2083
2085
2084 script = '''
2086 script = '''
2085
2087
2086
2088
2087 '''
2089 '''
2088
2090
2089
2091
2090
2092
2091 return mark_safe(style+html+script)
2093 return mark_safe(style+html+script)
@@ -1,11 +1,11
1 @import url(https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,700italic,400,300,700);/*!
1 @import url('fonts.googleapi.css');/*!
2 * bootswatch v3.3.5
2 * bootswatch v3.3.5
3 * Homepage: http://bootswatch.com
3 * Homepage: http://bootswatch.com
4 * Copyright 2012-2015 Thomas Park
4 * Copyright 2012-2015 Thomas Park
5 * Licensed under MIT
5 * Licensed under MIT
6 * Based on Bootstrap
6 * Based on Bootstrap
7 *//*!
7 *//*!
8 * Bootstrap v3.3.5 (http://getbootstrap.com)
8 * Bootstrap v3.3.5 (http://getbootstrap.com)
9 * Copyright 2011-2015 Twitter, Inc.
9 * Copyright 2011-2015 Twitter, Inc.
10 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
10 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
11 *//*! 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:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{background:0 0!important;color:#000!important;-webkit-box-shadow:none!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:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:transparent}body{font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;color:#222;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#008cba;text-decoration:none}a:focus,a:hover{color:#008cba;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:0}.img-thumbnail{padding:4px;line-height:1.4;background-color:#fff;border:1px solid #ddd;border-radius:0;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:21px;margin-bottom:21px;border:0;border-top:1px solid #ddd}.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:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:300;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#999}.h1,.h2,.h3,h1,h2,h3{margin-top:21px;margin-bottom:10.5px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10.5px;margin-bottom:10.5px}.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:39px}.h2,h2{font-size:32px}.h3,h3{font-size:26px}.h4,h4{font-size:19px}.h5,h5{font-size:15px}.h6,h6{font-size:13px}p{margin:0 0 10.5px}.lead{margin-bottom:21px;font-size:17px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:22.5px}}.small,small{font-size:80%}.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:#999}.text-primary{color:#008cba}a.text-primary:focus,a.text-primary:hover{color:#006687}.text-success{color:#43ac6a}a.text-success:focus,a.text-success:hover{color:#358753}.text-info{color:#5bc0de}a.text-info:focus,a.text-info:hover{color:#31b0d5}.text-warning{color:#e99002}a.text-warning:focus,a.text-warning:hover{color:#b67102}.text-danger{color:#f04124}a.text-danger:focus,a.text-danger:hover{color:#d32a0e}.bg-primary{color:#fff;background-color:#008cba}a.bg-primary:focus,a.bg-primary:hover{background-color:#006687}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9.5px;margin:42px 0 21px;border-bottom:1px solid #ddd}ol,ul{margin-top:0;margin-bottom:10.5px}ol ol,ol ul,ul ol,ul ul{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:21px}dd,dt{line-height:1.4}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #999}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10.5px 21px;margin:0 0 21px;font-size:18.75px;border-left:5px solid #ddd}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.4;color:#6f6f6f}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #ddd;border-left:0;text-align:right}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:21px;font-style:normal;line-height:1.4}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:0}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:0;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:10px;margin:0 0 10.5px;font-size:14px;line-height:1.4;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:0}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#999;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:21px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.4;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;float:none;display:table-column}table td[class*=col-],table th[class*=col-]{position:static;float:none;display:table-cell}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15.75px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:21px;font-size:22.5px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:9px;font-size:15px;line-height:1.4;color:#6f6f6f}.form-control{display:block;width:100%;height:39px;padding:8px 12px;font-size:15px;line-height:1.4;color:#6f6f6f;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{line-height:39px}.input-group-sm input[type=date],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],.input-group-sm input[type=time],input[type=date].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm,input[type=time].input-sm{line-height:36px}.input-group-lg input[type=date],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],.input-group-lg input[type=time],input[type=date].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg,input[type=time].input-lg{line-height:60px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:21px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{padding-top:9px;padding-bottom:9px;margin-bottom:0;min-height:36px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{height:36px;padding:8px 12px;font-size:12px;line-height:1.5;border-radius:0}select.input-sm{height:36px;line-height:36px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:36px;padding:8px 12px;font-size:12px;line-height:1.5;border-radius:0}.form-group-sm select.form-control{height:36px;line-height:36px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:36px;min-height:33px;padding:9px 12px;font-size:12px;line-height:1.5}.input-lg{height:60px;padding:16px 20px;font-size:19px;line-height:1.3333333;border-radius:0}select.input-lg{height:60px;line-height:60px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:60px;padding:16px 20px;font-size:19px;line-height:1.3333333;border-radius:0}.form-group-lg select.form-control{height:60px;line-height:60px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:60px;min-height:40px;padding:17px 20px;font-size:19px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:48.75px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:39px;height:39px;line-height:39px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:60px;height:60px;line-height:60px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:36px;height:36px;line-height:36px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#43ac6a}.has-success .form-control{border-color:#43ac6a;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#358753;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #85d0a1;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #85d0a1}.has-success .input-group-addon{color:#43ac6a;border-color:#43ac6a;background-color:#dff0d8}.has-success .form-control-feedback{color:#43ac6a}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#e99002}.has-warning .form-control{border-color:#e99002;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#b67102;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #febc53;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #febc53}.has-warning .input-group-addon{color:#e99002;border-color:#e99002;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#e99002}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#f04124}.has-error .form-control{border-color:#f04124;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#d32a0e;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #f79483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #f79483}.has-error .input-group-addon{color:#f04124;border-color:#f04124;background-color:#f2dede}.has-error .form-control-feedback{color:#f04124}.has-feedback label~.form-control-feedback{top:26px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#626262}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{margin-top:0;margin-bottom:0;padding-top:9px}.form-horizontal .checkbox,.form-horizontal .radio{min-height:30px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:9px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:22.3333328px;font-size:19px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:9px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:8px 12px;font-size:15px;line-height:1.4;border-radius:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;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:#e7e7e7;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#cecece;border-color:#8c8c8c}.btn-default:hover{color:#333;background-color:#cecece;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#cecece;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#bcbcbc;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#e7e7e7;border-color:#ccc}.btn-default .badge{color:#e7e7e7;background-color:#333}.btn-primary{color:#fff;background-color:#008cba;border-color:#0079a1}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#006687;border-color:#001921}.btn-primary:hover{color:#fff;background-color:#006687;border-color:#004b63}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#006687;border-color:#004b63}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#004b63;border-color:#001921}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#008cba;border-color:#0079a1}.btn-primary .badge{color:#008cba;background-color:#fff}.btn-success{color:#fff;background-color:#43ac6a;border-color:#3c9a5f}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#358753;border-color:#183e26}.btn-success:hover{color:#fff;background-color:#358753;border-color:#2b6e44}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#358753;border-color:#2b6e44}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#2b6e44;border-color:#183e26}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#43ac6a;border-color:#3c9a5f}.btn-success .badge{color:#43ac6a;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#e99002;border-color:#d08002}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#b67102;border-color:#513201}.btn-warning:hover{color:#fff;background-color:#b67102;border-color:#935b01}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#b67102;border-color:#935b01}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#935b01;border-color:#513201}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#e99002;border-color:#d08002}.btn-warning .badge{color:#e99002;background-color:#fff}.btn-danger{color:#fff;background-color:#f04124;border-color:#ea2f10}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#d32a0e;border-color:#731708}.btn-danger:hover{color:#fff;background-color:#d32a0e;border-color:#b1240c}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#d32a0e;border-color:#b1240c}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#b1240c;border-color:#731708}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#f04124;border-color:#ea2f10}.btn-danger .badge{color:#f04124;background-color:#fff}.btn-link{color:#008cba;font-weight:400;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#008cba;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#999;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:16px 20px;font-size:19px;line-height:1.3333333;border-radius:0}.btn-group-sm>.btn,.btn-sm{padding:8px 12px;font-size:12px;line-height:1.5;border-radius:0}.btn-group-xs>.btn,.btn-xs{padding:4px 6px;font-size:12px;line-height:1.5;border-radius:0}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-timing-function:ease;-o-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-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:15px;text-align:left;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:0;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);-webkit-background-clip:padding-box;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9.5px 0;overflow:hidden;background-color:rgba(0,0,0,.2)}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.4;color:#555;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{text-decoration:none;color:#262626;background-color:#eee}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;outline:0;background-color:#008cba}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#999}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;background-color:transparent;background-image:none;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.4;color:#999;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;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-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,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:0;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:60px;padding:16px 20px;font-size:19px;line-height:1.3333333;border-radius:0}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:60px;line-height:60px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:36px;padding:8px 12px;font-size:12px;line-height:1.5;border-radius:0}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:36px;line-height:36px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:8px 12px;font-size:15px;font-weight:400;line-height:1;color:#6f6f6f;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:0}.input-group-addon.input-sm{padding:8px 12px;font-size:12px;border-radius:0}.input-group-addon.input-lg{padding:16px 20px;font-size:19px;border-radius:0}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-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:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-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:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{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:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#999}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#008cba}.nav .nav-divider{height:1px;margin:9.5px 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.4;border:1px solid transparent;border-radius:0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#6f6f6f;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:0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:0}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#008cba}.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:0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:54px;margin-bottom:21px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:0}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px 15px;font-size:19px;line-height:21px;height:54px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:5.5px;margin-bottom:5.5px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:0}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:6px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:21px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:21px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:18px;padding-bottom:16px}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin-top:3px;margin-bottom:3px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;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:0;border-top-left-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:3px;margin-bottom:3px}.navbar-btn.btn-sm{margin-top:4.5px;margin-bottom:4.5px}.navbar-btn.btn-xs{margin-top:11.5px;margin-bottom:11.5px}.navbar-text{margin-top:12px;margin-bottom:12px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#333;border-color:#222}.navbar-default .navbar-brand{color:#fff}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-default .navbar-text{color:#fff}.navbar-default .navbar-nav>li>a{color:#fff}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#fff;background-color:#272727}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#fff;background-color:#272727}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:transparent}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:transparent}.navbar-default .navbar-toggle .icon-bar{background-color:#fff}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#222}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{background-color:#272727;color:#fff}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#fff}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:#272727}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#272727}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#fff}.navbar-default .navbar-link:hover{color:#fff}.navbar-default .btn-link{color:#fff}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#fff}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#008cba;border-color:#006687}.navbar-inverse .navbar-brand{color:#fff}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#fff}.navbar-inverse .navbar-nav>li>a{color:#fff}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:#006687}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#006687}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:transparent}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:transparent}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#007196}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{background-color:#006687;color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#006687}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#006687}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#fff}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:#006687}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#006687}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#fff}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#fff}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:21px;list-style:none;background-color:#f5f5f5;border-radius:0}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#999}.breadcrumb>.active{color:#333}.pagination{display:inline-block;padding-left:0;margin:21px 0;border-radius:0}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:8px 12px;line-height:1.4;text-decoration:none;color:#008cba;background-color:transparent;border:1px solid transparent;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:0;border-top-left-radius:0}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:0;border-top-right-radius:0}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:3;color:#008cba;background-color:#eee;border-color:transparent}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:2;color:#fff;background-color:#008cba;border-color:transparent;cursor:default}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#999;background-color:#fff;border-color:transparent;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:16px 20px;font-size:19px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:0;border-top-left-radius:0}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:0;border-top-right-radius:0}.pagination-sm>li>a,.pagination-sm>li>span{padding:8px 12px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:0;border-top-left-radius:0}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:0;border-top-right-radius:0}.pager{padding-left:0;margin:21px 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:transparent;border:1px solid transparent;border-radius:3px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#999;background-color:transparent;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#999}.label-default[href]:focus,.label-default[href]:hover{background-color:grey}.label-primary{background-color:#008cba}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#006687}.label-success{background-color:#43ac6a}.label-success[href]:focus,.label-success[href]:hover{background-color:#358753}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#e99002}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#b67102}.label-danger{background-color:#f04124}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#d32a0e}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;color:#fff;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#008cba;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#008cba;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:#fafafa}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:23px;font-weight:200}.jumbotron>hr{border-top-color:#e1e1e1}.container .jumbotron,.container-fluid .jumbotron{border-radius:0}.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:68px}}.thumbnail{display:block;padding:4px;margin-bottom:21px;line-height:1.4;background-color:#fff;border:1px solid #ddd;border-radius:0;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-left:auto;margin-right:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#008cba}.thumbnail .caption{padding:9px;color:#222}.alert{padding:15px;margin-bottom:21px;border:1px solid transparent;border-radius:0}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#43ac6a;border-color:#3c9a5f;color:#fff}.alert-success hr{border-top-color:#358753}.alert-success .alert-link{color:#e6e6e6}.alert-info{background-color:#5bc0de;border-color:#3db5d8;color:#fff}.alert-info hr{border-top-color:#2aabd2}.alert-info .alert-link{color:#e6e6e6}.alert-warning{background-color:#e99002;border-color:#d08002;color:#fff}.alert-warning hr{border-top-color:#b67102}.alert-warning .alert-link{color:#e6e6e6}.alert-danger{background-color:#f04124;border-color:#ea2f10;color:#fff}.alert-danger hr{border-top-color:#d32a0e}.alert-danger .alert-link{color:#e6e6e6}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:21px;margin-bottom:21px;background-color:#f5f5f5;border-radius:0;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:21px;color:#fff;text-align:center;background-color:#008cba;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#43ac6a}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#e99002}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#f04124}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{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-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{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:0;border-top-left-radius:0}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{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:focus,.list-group-item.disabled:hover{background-color:#eee;color:#999;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#999}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#008cba;border-color:#008cba}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#87e1ff}.list-group-item-success{color:#43ac6a;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#43ac6a}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#43ac6a;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#43ac6a;border-color:#43ac6a}.list-group-item-info{color:#5bc0de;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#5bc0de}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#5bc0de;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#5bc0de;border-color:#5bc0de}.list-group-item-warning{color:#e99002;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#e99002}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#e99002;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#e99002;border-color:#e99002}.list-group-item-danger{color:#f04124;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#f04124}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#f04124;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#f04124;border-color:#f04124}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:21px;background-color:#fff;border:1px solid transparent;border-radius:0;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:-1;border-top-left-radius:-1}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:17px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:-1;border-bottom-left-radius:-1}.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:-1;border-top-left-radius:-1}.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:-1;border-bottom-left-radius:-1}.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>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-left:15px;padding-right:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-right-radius:-1;border-top-left-radius:-1}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:-1;border-top-right-radius:-1}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:-1}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:-1}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:-1;border-bottom-left-radius:-1}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:-1;border-bottom-right-radius:-1}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:-1}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:-1}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:21px}.panel-group .panel{margin-bottom:0;border-radius:0}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#008cba}.panel-primary>.panel-heading{color:#fff;background-color:#008cba;border-color:#008cba}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#008cba}.panel-primary>.panel-heading .badge{color:#008cba;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#008cba}.panel-success{border-color:#3c9a5f}.panel-success>.panel-heading{color:#fff;background-color:#43ac6a;border-color:#3c9a5f}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#3c9a5f}.panel-success>.panel-heading .badge{color:#43ac6a;background-color:#fff}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#3c9a5f}.panel-info{border-color:#3db5d8}.panel-info>.panel-heading{color:#fff;background-color:#5bc0de;border-color:#3db5d8}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#3db5d8}.panel-info>.panel-heading .badge{color:#5bc0de;background-color:#fff}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#3db5d8}.panel-warning{border-color:#d08002}.panel-warning>.panel-heading{color:#fff;background-color:#e99002;border-color:#d08002}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d08002}.panel-warning>.panel-heading .badge{color:#e99002;background-color:#fff}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d08002}.panel-danger{border-color:#ea2f10}.panel-danger>.panel-heading{color:#fff;background-color:#f04124;border-color:#ea2f10}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ea2f10}.panel-danger>.panel-heading .badge{color:#f04124;background-color:#fff}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ea2f10}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;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:#fafafa;border:1px solid #e8e8e8;border-radius:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:0}.well-sm{padding:9px;border-radius:0}.close{float:right;font-size:22.5px;font-weight:700;line-height:1;color:#fff;text-shadow:0 1px 0 #fff;opacity:.2}.close:focus,.close:hover{color:#fff;text-decoration:none;cursor:pointer;opacity:.5}button.close{padding:0;cursor:pointer;background:0 0;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 .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-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,.2);border-radius:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);-webkit-background-clip:padding-box;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}.modal-backdrop.in{opacity:.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.4px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.4}.modal-body{position:relative;padding:20px}.modal-footer{padding:20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;letter-spacing:normal;line-break:auto;line-height:1.4;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}.tooltip.in{opacity:.9}.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:#333;border-radius:0}.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:#333}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#333}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#333}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#333}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#333}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#333}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#333}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#333}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;letter-spacing:normal;line-break:auto;line-height:1.4;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:15px;background-color:#333;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #333;border:1px solid transparent;border-radius:0;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(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:15px;background-color:#333;border-bottom:1px solid #262626;border-radius:-1 -1 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:#000;border-top-color:rgba(0,0,0,.05);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#333}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#000;border-right-color:rgba(0,0,0,.05)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#333}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#000;border-bottom-color:rgba(0,0,0,.05);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#333}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#000;border-left-color:rgba(0,0,0,.05)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#333;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);left:0}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);left:0}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{-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:.5;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-repeat:repeat-x}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{outline:0;color:#fff;text-decoration:none;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;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:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{content:" ";display:table}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row: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-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}}.navbar{border:none;font-size:13px;font-weight:300}.navbar .navbar-toggle:hover .icon-bar{background-color:#b3b3b3}.navbar-collapse{border-top-color:rgba(0,0,0,.2);-webkit-box-shadow:none;box-shadow:none}.navbar .btn{padding-top:6px;padding-bottom:6px}.navbar-form{margin-top:7px;margin-bottom:5px}.navbar-form .form-control{height:auto;padding:4px 6px}.navbar .dropdown-menu{border:none}.navbar .dropdown-menu>li>a,.navbar .dropdown-menu>li>a:focus{background-color:transparent;font-size:13px;font-weight:300}.navbar .dropdown-header{color:rgba(255,255,255,.5)}.navbar-default .dropdown-menu{background-color:#333}.navbar-default .dropdown-menu>li>a,.navbar-default .dropdown-menu>li>a:focus{color:#fff}.navbar-default .dropdown-menu>.active>a,.navbar-default .dropdown-menu>.active>a:hover,.navbar-default .dropdown-menu>li>a:hover{background-color:#272727}.navbar-inverse .dropdown-menu{background-color:#008cba}.navbar-inverse .dropdown-menu>li>a,.navbar-inverse .dropdown-menu>li>a:focus{color:#fff}.navbar-inverse .dropdown-menu>.active>a,.navbar-inverse .dropdown-menu>.active>a:hover,.navbar-inverse .dropdown-menu>li>a:hover{background-color:#006687}.btn{padding:8px 12px}.btn-lg{padding:16px 20px}.btn-sm{padding:8px 12px}.btn-xs{padding:4px 6px}.btn-group .btn~.dropdown-toggle{padding-left:16px;padding-right:16px}.btn-group .dropdown-menu{border-top-width:0}.btn-group.dropup .dropdown-menu{border-top-width:1px;border-bottom-width:0;margin-bottom:0}.btn-group .dropdown-toggle.btn-default~.dropdown-menu{background-color:#e7e7e7;border-color:#ccc}.btn-group .dropdown-toggle.btn-default~.dropdown-menu>li>a{color:#333}.btn-group .dropdown-toggle.btn-default~.dropdown-menu>li>a:hover{background-color:#d3d3d3}.btn-group .dropdown-toggle.btn-primary~.dropdown-menu{background-color:#008cba;border-color:#0079a1}.btn-group .dropdown-toggle.btn-primary~.dropdown-menu>li>a{color:#fff}.btn-group .dropdown-toggle.btn-primary~.dropdown-menu>li>a:hover{background-color:#006d91}.btn-group .dropdown-toggle.btn-success~.dropdown-menu{background-color:#43ac6a;border-color:#3c9a5f}.btn-group .dropdown-toggle.btn-success~.dropdown-menu>li>a{color:#fff}.btn-group .dropdown-toggle.btn-success~.dropdown-menu>li>a:hover{background-color:#388f58}.btn-group .dropdown-toggle.btn-info~.dropdown-menu{background-color:#5bc0de;border-color:#46b8da}.btn-group .dropdown-toggle.btn-info~.dropdown-menu>li>a{color:#fff}.btn-group .dropdown-toggle.btn-info~.dropdown-menu>li>a:hover{background-color:#39b3d7}.btn-group .dropdown-toggle.btn-warning~.dropdown-menu{background-color:#e99002;border-color:#d08002}.btn-group .dropdown-toggle.btn-warning~.dropdown-menu>li>a{color:#fff}.btn-group .dropdown-toggle.btn-warning~.dropdown-menu>li>a:hover{background-color:#c17702}.btn-group .dropdown-toggle.btn-danger~.dropdown-menu{background-color:#f04124;border-color:#ea2f10}.btn-group .dropdown-toggle.btn-danger~.dropdown-menu>li>a{color:#fff}.btn-group .dropdown-toggle.btn-danger~.dropdown-menu>li>a:hover{background-color:#dc2c0f}.lead{color:#6f6f6f}cite{font-style:italic}blockquote{border-left-width:1px;color:#6f6f6f}blockquote.pull-right{border-right-width:1px}blockquote small{font-size:12px;font-weight:300}table{font-size:12px}.checkbox,.control-label,.help-block,.radio,label{font-size:12px;font-weight:400}input[type=checkbox],input[type=radio]{margin-top:1px}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{border-color:transparent}.nav-tabs>li>a{background-color:#e7e7e7;color:#222}.nav-tabs .caret{border-top-color:#222;border-bottom-color:#222}.nav-pills{font-weight:300}.breadcrumb{border:1px solid #ddd;border-radius:3px;font-size:10px;font-weight:300;text-transform:uppercase}.pagination{font-size:12px;font-weight:300;color:#999}.pagination>li>a,.pagination>li>span{margin-left:4px;color:#999}.pagination>.active>a,.pagination>.active>span{color:#fff}.pagination>li:first-child>a,.pagination>li:first-child>span,.pagination>li:last-child>a,.pagination>li:last-child>span,.pagination>li>a,.pagination>li>span{border-radius:3px}.pagination-lg>li>a,.pagination-lg>li>span{padding-left:22px;padding-right:22px}.pagination-sm>li>a,.pagination-sm>li>span{padding:0 5px}.pager{font-size:12px;font-weight:300;color:#999}.list-group{font-size:12px;font-weight:300}.close{opacity:.4;text-decoration:none;text-shadow:none}.close:focus,.close:hover{opacity:1}.alert{font-size:12px;font-weight:300}.alert .alert-link{font-weight:400;color:#fff;text-decoration:underline}.label{padding-left:1em;padding-right:1em;border-radius:0;font-weight:300}.label-default{background-color:#e7e7e7;color:#333}.badge{font-weight:300}.progress{height:22px;padding:2px;background-color:#f6f6f6;border:1px solid #ccc;-webkit-box-shadow:none;box-shadow:none}.dropdown-menu{padding:0;margin-top:0;font-size:12px}.dropdown-menu>li>a{padding:12px 15px}.dropdown-header{padding-left:15px;padding-right:15px;font-size:9px;text-transform:uppercase}.popover{color:#fff;font-size:12px;font-weight:300}.panel-footer,.panel-heading{border-top-right-radius:0;border-top-left-radius:0}.panel-default .close{color:#222}.modal .close{color:#222} No newline at end of file
11 *//*! 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:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{background:0 0!important;color:#000!important;-webkit-box-shadow:none!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:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:transparent}body{font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;color:#222;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#008cba;text-decoration:none}a:focus,a:hover{color:#008cba;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:0}.img-thumbnail{padding:4px;line-height:1.4;background-color:#fff;border:1px solid #ddd;border-radius:0;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:21px;margin-bottom:21px;border:0;border-top:1px solid #ddd}.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:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:300;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#999}.h1,.h2,.h3,h1,h2,h3{margin-top:21px;margin-bottom:10.5px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10.5px;margin-bottom:10.5px}.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:39px}.h2,h2{font-size:32px}.h3,h3{font-size:26px}.h4,h4{font-size:19px}.h5,h5{font-size:15px}.h6,h6{font-size:13px}p{margin:0 0 10.5px}.lead{margin-bottom:21px;font-size:17px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:22.5px}}.small,small{font-size:80%}.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:#999}.text-primary{color:#008cba}a.text-primary:focus,a.text-primary:hover{color:#006687}.text-success{color:#43ac6a}a.text-success:focus,a.text-success:hover{color:#358753}.text-info{color:#5bc0de}a.text-info:focus,a.text-info:hover{color:#31b0d5}.text-warning{color:#e99002}a.text-warning:focus,a.text-warning:hover{color:#b67102}.text-danger{color:#f04124}a.text-danger:focus,a.text-danger:hover{color:#d32a0e}.bg-primary{color:#fff;background-color:#008cba}a.bg-primary:focus,a.bg-primary:hover{background-color:#006687}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9.5px;margin:42px 0 21px;border-bottom:1px solid #ddd}ol,ul{margin-top:0;margin-bottom:10.5px}ol ol,ol ul,ul ol,ul ul{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:21px}dd,dt{line-height:1.4}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #999}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10.5px 21px;margin:0 0 21px;font-size:18.75px;border-left:5px solid #ddd}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.4;color:#6f6f6f}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #ddd;border-left:0;text-align:right}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:21px;font-style:normal;line-height:1.4}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:0}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:0;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:10px;margin:0 0 10.5px;font-size:14px;line-height:1.4;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:0}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#999;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:21px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.4;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;float:none;display:table-column}table td[class*=col-],table th[class*=col-]{position:static;float:none;display:table-cell}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15.75px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:21px;font-size:22.5px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:9px;font-size:15px;line-height:1.4;color:#6f6f6f}.form-control{display:block;width:100%;height:39px;padding:8px 12px;font-size:15px;line-height:1.4;color:#6f6f6f;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{line-height:39px}.input-group-sm input[type=date],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],.input-group-sm input[type=time],input[type=date].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm,input[type=time].input-sm{line-height:36px}.input-group-lg input[type=date],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],.input-group-lg input[type=time],input[type=date].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg,input[type=time].input-lg{line-height:60px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:21px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{padding-top:9px;padding-bottom:9px;margin-bottom:0;min-height:36px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{height:36px;padding:8px 12px;font-size:12px;line-height:1.5;border-radius:0}select.input-sm{height:36px;line-height:36px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:36px;padding:8px 12px;font-size:12px;line-height:1.5;border-radius:0}.form-group-sm select.form-control{height:36px;line-height:36px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:36px;min-height:33px;padding:9px 12px;font-size:12px;line-height:1.5}.input-lg{height:60px;padding:16px 20px;font-size:19px;line-height:1.3333333;border-radius:0}select.input-lg{height:60px;line-height:60px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:60px;padding:16px 20px;font-size:19px;line-height:1.3333333;border-radius:0}.form-group-lg select.form-control{height:60px;line-height:60px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:60px;min-height:40px;padding:17px 20px;font-size:19px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:48.75px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:39px;height:39px;line-height:39px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:60px;height:60px;line-height:60px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:36px;height:36px;line-height:36px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#43ac6a}.has-success .form-control{border-color:#43ac6a;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#358753;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #85d0a1;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #85d0a1}.has-success .input-group-addon{color:#43ac6a;border-color:#43ac6a;background-color:#dff0d8}.has-success .form-control-feedback{color:#43ac6a}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#e99002}.has-warning .form-control{border-color:#e99002;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#b67102;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #febc53;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #febc53}.has-warning .input-group-addon{color:#e99002;border-color:#e99002;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#e99002}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#f04124}.has-error .form-control{border-color:#f04124;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#d32a0e;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #f79483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #f79483}.has-error .input-group-addon{color:#f04124;border-color:#f04124;background-color:#f2dede}.has-error .form-control-feedback{color:#f04124}.has-feedback label~.form-control-feedback{top:26px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#626262}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{margin-top:0;margin-bottom:0;padding-top:9px}.form-horizontal .checkbox,.form-horizontal .radio{min-height:30px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:9px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:22.3333328px;font-size:19px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:9px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:8px 12px;font-size:15px;line-height:1.4;border-radius:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;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:#e7e7e7;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#cecece;border-color:#8c8c8c}.btn-default:hover{color:#333;background-color:#cecece;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#cecece;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#bcbcbc;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#e7e7e7;border-color:#ccc}.btn-default .badge{color:#e7e7e7;background-color:#333}.btn-primary{color:#fff;background-color:#008cba;border-color:#0079a1}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#006687;border-color:#001921}.btn-primary:hover{color:#fff;background-color:#006687;border-color:#004b63}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#006687;border-color:#004b63}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#004b63;border-color:#001921}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#008cba;border-color:#0079a1}.btn-primary .badge{color:#008cba;background-color:#fff}.btn-success{color:#fff;background-color:#43ac6a;border-color:#3c9a5f}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#358753;border-color:#183e26}.btn-success:hover{color:#fff;background-color:#358753;border-color:#2b6e44}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#358753;border-color:#2b6e44}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#2b6e44;border-color:#183e26}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#43ac6a;border-color:#3c9a5f}.btn-success .badge{color:#43ac6a;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#e99002;border-color:#d08002}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#b67102;border-color:#513201}.btn-warning:hover{color:#fff;background-color:#b67102;border-color:#935b01}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#b67102;border-color:#935b01}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#935b01;border-color:#513201}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#e99002;border-color:#d08002}.btn-warning .badge{color:#e99002;background-color:#fff}.btn-danger{color:#fff;background-color:#f04124;border-color:#ea2f10}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#d32a0e;border-color:#731708}.btn-danger:hover{color:#fff;background-color:#d32a0e;border-color:#b1240c}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#d32a0e;border-color:#b1240c}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#b1240c;border-color:#731708}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#f04124;border-color:#ea2f10}.btn-danger .badge{color:#f04124;background-color:#fff}.btn-link{color:#008cba;font-weight:400;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#008cba;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#999;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:16px 20px;font-size:19px;line-height:1.3333333;border-radius:0}.btn-group-sm>.btn,.btn-sm{padding:8px 12px;font-size:12px;line-height:1.5;border-radius:0}.btn-group-xs>.btn,.btn-xs{padding:4px 6px;font-size:12px;line-height:1.5;border-radius:0}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-timing-function:ease;-o-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-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:15px;text-align:left;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:0;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);-webkit-background-clip:padding-box;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9.5px 0;overflow:hidden;background-color:rgba(0,0,0,.2)}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.4;color:#555;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{text-decoration:none;color:#262626;background-color:#eee}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;outline:0;background-color:#008cba}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#999}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;background-color:transparent;background-image:none;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.4;color:#999;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;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-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,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:0;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:60px;padding:16px 20px;font-size:19px;line-height:1.3333333;border-radius:0}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:60px;line-height:60px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:36px;padding:8px 12px;font-size:12px;line-height:1.5;border-radius:0}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:36px;line-height:36px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:8px 12px;font-size:15px;font-weight:400;line-height:1;color:#6f6f6f;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:0}.input-group-addon.input-sm{padding:8px 12px;font-size:12px;border-radius:0}.input-group-addon.input-lg{padding:16px 20px;font-size:19px;border-radius:0}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-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:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-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:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{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:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#999}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#008cba}.nav .nav-divider{height:1px;margin:9.5px 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.4;border:1px solid transparent;border-radius:0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#6f6f6f;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:0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:0}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#008cba}.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:0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:54px;margin-bottom:21px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:0}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px 15px;font-size:19px;line-height:21px;height:54px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:5.5px;margin-bottom:5.5px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:0}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:6px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:21px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:21px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:18px;padding-bottom:16px}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin-top:3px;margin-bottom:3px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;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:0;border-top-left-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:3px;margin-bottom:3px}.navbar-btn.btn-sm{margin-top:4.5px;margin-bottom:4.5px}.navbar-btn.btn-xs{margin-top:11.5px;margin-bottom:11.5px}.navbar-text{margin-top:12px;margin-bottom:12px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#333;border-color:#222}.navbar-default .navbar-brand{color:#fff}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-default .navbar-text{color:#fff}.navbar-default .navbar-nav>li>a{color:#fff}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#fff;background-color:#272727}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#fff;background-color:#272727}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:transparent}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:transparent}.navbar-default .navbar-toggle .icon-bar{background-color:#fff}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#222}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{background-color:#272727;color:#fff}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#fff}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:#272727}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#272727}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#fff}.navbar-default .navbar-link:hover{color:#fff}.navbar-default .btn-link{color:#fff}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#fff}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#008cba;border-color:#006687}.navbar-inverse .navbar-brand{color:#fff}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#fff}.navbar-inverse .navbar-nav>li>a{color:#fff}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:#006687}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#006687}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:transparent}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:transparent}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#007196}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{background-color:#006687;color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#006687}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#006687}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#fff}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:#006687}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#006687}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#fff}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#fff}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:21px;list-style:none;background-color:#f5f5f5;border-radius:0}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#999}.breadcrumb>.active{color:#333}.pagination{display:inline-block;padding-left:0;margin:21px 0;border-radius:0}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:8px 12px;line-height:1.4;text-decoration:none;color:#008cba;background-color:transparent;border:1px solid transparent;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:0;border-top-left-radius:0}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:0;border-top-right-radius:0}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:3;color:#008cba;background-color:#eee;border-color:transparent}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:2;color:#fff;background-color:#008cba;border-color:transparent;cursor:default}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#999;background-color:#fff;border-color:transparent;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:16px 20px;font-size:19px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:0;border-top-left-radius:0}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:0;border-top-right-radius:0}.pagination-sm>li>a,.pagination-sm>li>span{padding:8px 12px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:0;border-top-left-radius:0}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:0;border-top-right-radius:0}.pager{padding-left:0;margin:21px 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:transparent;border:1px solid transparent;border-radius:3px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#999;background-color:transparent;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#999}.label-default[href]:focus,.label-default[href]:hover{background-color:grey}.label-primary{background-color:#008cba}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#006687}.label-success{background-color:#43ac6a}.label-success[href]:focus,.label-success[href]:hover{background-color:#358753}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#e99002}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#b67102}.label-danger{background-color:#f04124}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#d32a0e}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;color:#fff;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#008cba;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#008cba;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:#fafafa}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:23px;font-weight:200}.jumbotron>hr{border-top-color:#e1e1e1}.container .jumbotron,.container-fluid .jumbotron{border-radius:0}.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:68px}}.thumbnail{display:block;padding:4px;margin-bottom:21px;line-height:1.4;background-color:#fff;border:1px solid #ddd;border-radius:0;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-left:auto;margin-right:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#008cba}.thumbnail .caption{padding:9px;color:#222}.alert{padding:15px;margin-bottom:21px;border:1px solid transparent;border-radius:0}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#43ac6a;border-color:#3c9a5f;color:#fff}.alert-success hr{border-top-color:#358753}.alert-success .alert-link{color:#e6e6e6}.alert-info{background-color:#5bc0de;border-color:#3db5d8;color:#fff}.alert-info hr{border-top-color:#2aabd2}.alert-info .alert-link{color:#e6e6e6}.alert-warning{background-color:#e99002;border-color:#d08002;color:#fff}.alert-warning hr{border-top-color:#b67102}.alert-warning .alert-link{color:#e6e6e6}.alert-danger{background-color:#f04124;border-color:#ea2f10;color:#fff}.alert-danger hr{border-top-color:#d32a0e}.alert-danger .alert-link{color:#e6e6e6}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:21px;margin-bottom:21px;background-color:#f5f5f5;border-radius:0;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:21px;color:#fff;text-align:center;background-color:#008cba;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#43ac6a}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#e99002}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#f04124}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{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-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{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:0;border-top-left-radius:0}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{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:focus,.list-group-item.disabled:hover{background-color:#eee;color:#999;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#999}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#008cba;border-color:#008cba}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#87e1ff}.list-group-item-success{color:#43ac6a;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#43ac6a}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#43ac6a;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#43ac6a;border-color:#43ac6a}.list-group-item-info{color:#5bc0de;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#5bc0de}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#5bc0de;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#5bc0de;border-color:#5bc0de}.list-group-item-warning{color:#e99002;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#e99002}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#e99002;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#e99002;border-color:#e99002}.list-group-item-danger{color:#f04124;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#f04124}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#f04124;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#f04124;border-color:#f04124}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:21px;background-color:#fff;border:1px solid transparent;border-radius:0;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:-1;border-top-left-radius:-1}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:17px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:-1;border-bottom-left-radius:-1}.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:-1;border-top-left-radius:-1}.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:-1;border-bottom-left-radius:-1}.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>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-left:15px;padding-right:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-right-radius:-1;border-top-left-radius:-1}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:-1;border-top-right-radius:-1}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:-1}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:-1}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:-1;border-bottom-left-radius:-1}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:-1;border-bottom-right-radius:-1}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:-1}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:-1}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:21px}.panel-group .panel{margin-bottom:0;border-radius:0}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#008cba}.panel-primary>.panel-heading{color:#fff;background-color:#008cba;border-color:#008cba}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#008cba}.panel-primary>.panel-heading .badge{color:#008cba;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#008cba}.panel-success{border-color:#3c9a5f}.panel-success>.panel-heading{color:#fff;background-color:#43ac6a;border-color:#3c9a5f}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#3c9a5f}.panel-success>.panel-heading .badge{color:#43ac6a;background-color:#fff}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#3c9a5f}.panel-info{border-color:#3db5d8}.panel-info>.panel-heading{color:#fff;background-color:#5bc0de;border-color:#3db5d8}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#3db5d8}.panel-info>.panel-heading .badge{color:#5bc0de;background-color:#fff}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#3db5d8}.panel-warning{border-color:#d08002}.panel-warning>.panel-heading{color:#fff;background-color:#e99002;border-color:#d08002}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d08002}.panel-warning>.panel-heading .badge{color:#e99002;background-color:#fff}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d08002}.panel-danger{border-color:#ea2f10}.panel-danger>.panel-heading{color:#fff;background-color:#f04124;border-color:#ea2f10}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ea2f10}.panel-danger>.panel-heading .badge{color:#f04124;background-color:#fff}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ea2f10}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;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:#fafafa;border:1px solid #e8e8e8;border-radius:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:0}.well-sm{padding:9px;border-radius:0}.close{float:right;font-size:22.5px;font-weight:700;line-height:1;color:#fff;text-shadow:0 1px 0 #fff;opacity:.2}.close:focus,.close:hover{color:#fff;text-decoration:none;cursor:pointer;opacity:.5}button.close{padding:0;cursor:pointer;background:0 0;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 .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-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,.2);border-radius:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);-webkit-background-clip:padding-box;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}.modal-backdrop.in{opacity:.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.4px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.4}.modal-body{position:relative;padding:20px}.modal-footer{padding:20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;letter-spacing:normal;line-break:auto;line-height:1.4;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}.tooltip.in{opacity:.9}.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:#333;border-radius:0}.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:#333}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#333}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#333}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#333}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#333}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#333}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#333}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#333}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;letter-spacing:normal;line-break:auto;line-height:1.4;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:15px;background-color:#333;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #333;border:1px solid transparent;border-radius:0;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(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:15px;background-color:#333;border-bottom:1px solid #262626;border-radius:-1 -1 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:#000;border-top-color:rgba(0,0,0,.05);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#333}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#000;border-right-color:rgba(0,0,0,.05)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#333}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#000;border-bottom-color:rgba(0,0,0,.05);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#333}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#000;border-left-color:rgba(0,0,0,.05)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#333;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);left:0}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);left:0}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{-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:.5;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-repeat:repeat-x}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{outline:0;color:#fff;text-decoration:none;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;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:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#fff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{content:" ";display:table}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row: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-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}}.navbar{border:none;font-size:13px;font-weight:300}.navbar .navbar-toggle:hover .icon-bar{background-color:#b3b3b3}.navbar-collapse{border-top-color:rgba(0,0,0,.2);-webkit-box-shadow:none;box-shadow:none}.navbar .btn{padding-top:6px;padding-bottom:6px}.navbar-form{margin-top:7px;margin-bottom:5px}.navbar-form .form-control{height:auto;padding:4px 6px}.navbar .dropdown-menu{border:none}.navbar .dropdown-menu>li>a,.navbar .dropdown-menu>li>a:focus{background-color:transparent;font-size:13px;font-weight:300}.navbar .dropdown-header{color:rgba(255,255,255,.5)}.navbar-default .dropdown-menu{background-color:#333}.navbar-default .dropdown-menu>li>a,.navbar-default .dropdown-menu>li>a:focus{color:#fff}.navbar-default .dropdown-menu>.active>a,.navbar-default .dropdown-menu>.active>a:hover,.navbar-default .dropdown-menu>li>a:hover{background-color:#272727}.navbar-inverse .dropdown-menu{background-color:#008cba}.navbar-inverse .dropdown-menu>li>a,.navbar-inverse .dropdown-menu>li>a:focus{color:#fff}.navbar-inverse .dropdown-menu>.active>a,.navbar-inverse .dropdown-menu>.active>a:hover,.navbar-inverse .dropdown-menu>li>a:hover{background-color:#006687}.btn{padding:8px 12px}.btn-lg{padding:16px 20px}.btn-sm{padding:8px 12px}.btn-xs{padding:4px 6px}.btn-group .btn~.dropdown-toggle{padding-left:16px;padding-right:16px}.btn-group .dropdown-menu{border-top-width:0}.btn-group.dropup .dropdown-menu{border-top-width:1px;border-bottom-width:0;margin-bottom:0}.btn-group .dropdown-toggle.btn-default~.dropdown-menu{background-color:#e7e7e7;border-color:#ccc}.btn-group .dropdown-toggle.btn-default~.dropdown-menu>li>a{color:#333}.btn-group .dropdown-toggle.btn-default~.dropdown-menu>li>a:hover{background-color:#d3d3d3}.btn-group .dropdown-toggle.btn-primary~.dropdown-menu{background-color:#008cba;border-color:#0079a1}.btn-group .dropdown-toggle.btn-primary~.dropdown-menu>li>a{color:#fff}.btn-group .dropdown-toggle.btn-primary~.dropdown-menu>li>a:hover{background-color:#006d91}.btn-group .dropdown-toggle.btn-success~.dropdown-menu{background-color:#43ac6a;border-color:#3c9a5f}.btn-group .dropdown-toggle.btn-success~.dropdown-menu>li>a{color:#fff}.btn-group .dropdown-toggle.btn-success~.dropdown-menu>li>a:hover{background-color:#388f58}.btn-group .dropdown-toggle.btn-info~.dropdown-menu{background-color:#5bc0de;border-color:#46b8da}.btn-group .dropdown-toggle.btn-info~.dropdown-menu>li>a{color:#fff}.btn-group .dropdown-toggle.btn-info~.dropdown-menu>li>a:hover{background-color:#39b3d7}.btn-group .dropdown-toggle.btn-warning~.dropdown-menu{background-color:#e99002;border-color:#d08002}.btn-group .dropdown-toggle.btn-warning~.dropdown-menu>li>a{color:#fff}.btn-group .dropdown-toggle.btn-warning~.dropdown-menu>li>a:hover{background-color:#c17702}.btn-group .dropdown-toggle.btn-danger~.dropdown-menu{background-color:#f04124;border-color:#ea2f10}.btn-group .dropdown-toggle.btn-danger~.dropdown-menu>li>a{color:#fff}.btn-group .dropdown-toggle.btn-danger~.dropdown-menu>li>a:hover{background-color:#dc2c0f}.lead{color:#6f6f6f}cite{font-style:italic}blockquote{border-left-width:1px;color:#6f6f6f}blockquote.pull-right{border-right-width:1px}blockquote small{font-size:12px;font-weight:300}table{font-size:12px}.checkbox,.control-label,.help-block,.radio,label{font-size:12px;font-weight:400}input[type=checkbox],input[type=radio]{margin-top:1px}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{border-color:transparent}.nav-tabs>li>a{background-color:#e7e7e7;color:#222}.nav-tabs .caret{border-top-color:#222;border-bottom-color:#222}.nav-pills{font-weight:300}.breadcrumb{border:1px solid #ddd;border-radius:3px;font-size:10px;font-weight:300;text-transform:uppercase}.pagination{font-size:12px;font-weight:300;color:#999}.pagination>li>a,.pagination>li>span{margin-left:4px;color:#999}.pagination>.active>a,.pagination>.active>span{color:#fff}.pagination>li:first-child>a,.pagination>li:first-child>span,.pagination>li:last-child>a,.pagination>li:last-child>span,.pagination>li>a,.pagination>li>span{border-radius:3px}.pagination-lg>li>a,.pagination-lg>li>span{padding-left:22px;padding-right:22px}.pagination-sm>li>a,.pagination-sm>li>span{padding:0 5px}.pager{font-size:12px;font-weight:300;color:#999}.list-group{font-size:12px;font-weight:300}.close{opacity:.4;text-decoration:none;text-shadow:none}.close:focus,.close:hover{opacity:1}.alert{font-size:12px;font-weight:300}.alert .alert-link{font-weight:400;color:#fff;text-decoration:underline}.label{padding-left:1em;padding-right:1em;border-radius:0;font-weight:300}.label-default{background-color:#e7e7e7;color:#333}.badge{font-weight:300}.progress{height:22px;padding:2px;background-color:#f6f6f6;border:1px solid #ccc;-webkit-box-shadow:none;box-shadow:none}.dropdown-menu{padding:0;margin-top:0;font-size:12px}.dropdown-menu>li>a{padding:12px 15px}.dropdown-header{padding-left:15px;padding-right:15px;font-size:9px;text-transform:uppercase}.popover{color:#fff;font-size:12px;font-weight:300}.panel-footer,.panel-heading{border-top-right-radius:0;border-top-left-radius:0}.panel-default .close{color:#222}.modal .close{color:#222}
@@ -1,186 +1,188
1 <!DOCTYPE html>
1 <!DOCTYPE html>
2 {% load static %}{% load bootstrap4 %}
2 {% load static %}{% load bootstrap4 %}
3 <html lang="en">
3 <html lang="en">
4 <head>
4 <head>
5 <meta charset="utf-8">
5 <meta charset="utf-8">
6 <title>{% block title %}Jicamarca Integrated Radar System:::::{% endblock %}</title>
6 <title>{% block title %}Jicamarca Integrated Radar System:::::{% endblock %}</title>
7 <meta name="description" content="">
7 <meta name="description" content="">
8 <meta name="author" content="">
8 <meta name="author" content="">
9 <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
9 <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
10 {# bootstrap_css #}
10 {# bootstrap_css #}
11
11
12 <link href="{% static 'css/fontawesome.css' %}" rel="stylesheet">
12 <link href="{% static 'css/fontawesome.css' %}" rel="stylesheet">
13 <link href="{% static 'css/bootstrap.min.css' %}" rel="stylesheet">
13 <link href="{% static 'css/bootstrap.min.css' %}" rel="stylesheet">
14 <link href="{% static 'css/style.css' %}" rel="stylesheet">
14 <link href="{% static 'css/style.css' %}" rel="stylesheet">
15 <link href="{% static 'css/header.css' %}" rel="stylesheet">
15 <link href="{% static 'css/header.css' %}" rel="stylesheet">
16 <link href="{% static 'css/footer.css' %}" rel="stylesheet">
16 <link href="{% static 'css/footer.css' %}" rel="stylesheet">
17 <link rel="shortcut icon" href="{% static 'images/favicon.ico' %}" />
17 <link rel="shortcut icon" href="{% static 'images/favicon.ico' %}" />
18
19
18 <!--link href="{% static '' %}css/bootstrap-{{theme}}.min.css" media="all" rel="stylesheet"-->
20 <!--link href="{% static '' %}css/bootstrap-{{theme}}.min.css" media="all" rel="stylesheet"-->
19 <!-- <link href="{% static 'css/bootcards-desktop.min.css' %}" media="all" rel="stylesheet"> -->
21 <!-- <link href="{% static 'css/bootcards-desktop.min.css' %}" media="all" rel="stylesheet"> -->
20 <link href="{% static 'css/font-awesome.min.css' %}" media="all" rel="stylesheet"-->
22 <link href="{% static 'css/font-awesome.min.css' %}" media="all" rel="stylesheet"-->
21 <!--link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet"-->
23 <!--link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet"-->
22
24
23 <!-- Bootcards CSS for iOS: >
25 <!-- Bootcards CSS for iOS: >
24 <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/bootcards/1.0.0/css/bootcards-ios.min.css">
26 <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/bootcards/1.0.0/css/bootcards-ios.min.css">
25
27
26 <!-- Bootcards CSS for Android: >
28 <!-- Bootcards CSS for Android: >
27 <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/bootcards/1.0.0/css/bootcards-android.min.css"-->
29 <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/bootcards/1.0.0/css/bootcards-android.min.css"-->
28
30
29 <!-- Bootcards CSS for desktop: >
31 <!-- Bootcards CSS for desktop: >
30 <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/bootcards/1.0.0/css/bootcards-desktop.min.css"-->
32 <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/bootcards/1.0.0/css/bootcards-desktop.min.css"-->
31
33
32 <style type="text/css">
34 <style type="text/css">
33 .logo {padding-top: 5px; height: 50px}
35 .logo {padding-top: 5px; height: 50px}
34 .clickable-row {cursor: pointer;}
36 .clickable-row {cursor: pointer;}
35 .col-no-padding { padding-left:0;}
37 .col-no-padding { padding-left:0;}
36 .gi-2x{font-size: 2em;}
38 .gi-2x{font-size: 2em;}
37 .gi-3x{font-size: 3em;}
39 .gi-3x{font-size: 3em;}
38 .gi-4x{font-size: 4em;}
40 .gi-4x{font-size: 4em;}
39 .gi-5x{font-size: 5em;}
41 .gi-5x{font-size: 5em;}
40 </style>
42 </style>
41 {% block extra-head %}{% endblock %}
43 {% block extra-head %}{% endblock %}
42 </head>
44 </head>
43 <body>
45 <body>
44
46
45
47
46
48
47 {% include "header_igp.html" %}
49 {% include "header_igp.html" %}
48
50
49
51
50 <nav class="navbar navbar-expand-lg navbar-light bg-light" >
52 <nav class="navbar navbar-expand-lg navbar-light bg-light" >
51
53
52 <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
54 <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
53 <span class="navbar-toggler-icon"></span>
55 <span class="navbar-toggler-icon"></span>
54 </button>
56 </button>
55 <a class="navbar-brand" href="{% url 'index' %}" style="padding-top:0"><img class="logo" alt="JRO" src="{% static "images/sir.png" %}"></a>
57 <a class="navbar-brand" href="{% url 'index' %}" style="padding-top:0"><img class="logo" alt="JRO" src="{% static "images/sir.png" %}"></a>
56
58
57 <div class="collapse navbar-collapse" id="navbarSupportedContent">
59 <div class="collapse navbar-collapse" id="navbarSupportedContent">
58 <ul class="navbar-nav mr-auto">
60 <ul class="navbar-nav mr-auto">
59 <li class="nav-item {{menu_operation}}">
61 <li class="nav-item {{menu_operation}}">
60 <a class="nav-link" href="{% url 'url_operation'%}">Operation</a>
62 <a class="nav-link" href="{% url 'url_operation'%}">Operation</a>
61 </li>
63 </li>
62 <li class="nav-item {{menu_campaigns}}">
64 <li class="nav-item {{menu_campaigns}}">
63 <a class="nav-link" href="{% url 'url_campaigns'%}">Campaigns</a>
65 <a class="nav-link" href="{% url 'url_campaigns'%}">Campaigns</a>
64 </li>
66 </li>
65 <li class="nav-item {{menu_experiments}}">
67 <li class="nav-item {{menu_experiments}}">
66 <a class="nav-link" href="{% url 'url_experiments'%}">Experiments</a>
68 <a class="nav-link" href="{% url 'url_experiments'%}">Experiments</a>
67 </li>
69 </li>
68 <li class="nav-item {{menu_configurations}}">
70 <li class="nav-item {{menu_configurations}}">
69 <a class="nav-link" href="{% url 'url_dev_confs'%}">Configurations</a>
71 <a class="nav-link" href="{% url 'url_dev_confs'%}">Configurations</a>
70 </li>
72 </li>
71 <li class="nav-item {{menu_devices}}">
73 <li class="nav-item {{menu_devices}}">
72 <a class="nav-link" href="{% url 'url_devices'%}">Devices</a>
74 <a class="nav-link" href="{% url 'url_devices'%}">Devices</a>
73 </li>
75 </li>
74 </ul>
76 </ul>
75 <ul class="nav navbar-nav navbar-right">
77 <ul class="nav navbar-nav navbar-right">
76 <li class="nav-divider"></li>
78 <li class="nav-divider"></li>
77 {% if user.is_authenticated %}
79 {% if user.is_authenticated %}
78 <li class="dropdown">
80 <li class="dropdown">
79 <a href="#" class="dropdown-toggle" data-toggle="dropdown">Theme<span class="caret"></span></a>
81 <a href="#" class="dropdown-toggle" data-toggle="dropdown">Theme<span class="caret"></span></a>
80 <ul class="dropdown-menu" role="menu">
82 <ul class="dropdown-menu" role="menu">
81 <li class="{{cosmo_active}}"><a href="{% url 'url_theme' 'cosmo' %}">Cosmo</a></li>
83 <li class="{{cosmo_active}}"><a href="{% url 'url_theme' 'cosmo' %}">Cosmo</a></li>
82 <li class="{{custom_active}}"><a href="{% url 'url_theme' 'custom' %}">Custom</a></li>
84 <li class="{{custom_active}}"><a href="{% url 'url_theme' 'custom' %}">Custom</a></li>
83 <li class="{{flatly_active}}"><a href="{% url 'url_theme' 'flatly' %}">Flatly</a></li>
85 <li class="{{flatly_active}}"><a href="{% url 'url_theme' 'flatly' %}">Flatly</a></li>
84 <li class="{{journal_active}}"><a href="{% url 'url_theme' 'journal' %}">Journal</a></li>
86 <li class="{{journal_active}}"><a href="{% url 'url_theme' 'journal' %}">Journal</a></li>
85 <li class="{{lumen_active}}"><a href="{% url 'url_theme' 'lumen' %}">Lumen</a></li>
87 <li class="{{lumen_active}}"><a href="{% url 'url_theme' 'lumen' %}">Lumen</a></li>
86 <li class="{{sandstone_active}}"><a href="{% url 'url_theme' 'sandstone' %}">Sandstone</a></li>
88 <li class="{{sandstone_active}}"><a href="{% url 'url_theme' 'sandstone' %}">Sandstone</a></li>
87 <li class="{{simplex_active}}"><a href="{% url 'url_theme' 'simplex' %}">Simplex</a></li>
89 <li class="{{simplex_active}}"><a href="{% url 'url_theme' 'simplex' %}">Simplex</a></li>
88 <li class="{{slate_active}}"><a href="{% url 'url_theme' 'slate' %}">Slate</a></li>
90 <li class="{{slate_active}}"><a href="{% url 'url_theme' 'slate' %}">Slate</a></li>
89 <li class="{{spacelab_active}}"><a href="{% url 'url_theme' 'spacelab' %}">SpaceLab</a></li>
91 <li class="{{spacelab_active}}"><a href="{% url 'url_theme' 'spacelab' %}">SpaceLab</a></li>
90 <li class="{{united_active}}"><a href="{% url 'url_theme' 'united' %}">United</a></li>
92 <li class="{{united_active}}"><a href="{% url 'url_theme' 'united' %}">United</a></li>
91 <li class="{{yeti_active}}"><a href="{% url 'url_theme' 'yeti' %}">Yeti</a></li>
93 <li class="{{yeti_active}}"><a href="{% url 'url_theme' 'yeti' %}">Yeti</a></li>
92 </ul>
94 </ul>
93 </li>
95 </li>
94 <li class="dropdown">
96 <li class="dropdown">
95 <a href="#" class="dropdown-toggle" data-toggle="dropdown">Hi, {{ user.first_name }}<span class="caret"></span></a>
97 <a href="#" class="dropdown-toggle" data-toggle="dropdown">Hi, {{ user.first_name }}<span class="caret"></span></a>
96 <ul class="dropdown-menu" role="menu">
98 <ul class="dropdown-menu" role="menu">
97 <li><a href="/admin" target="_blank">Control Panel</a></li>
99 <li><a href="/admin" target="_blank">Control Panel</a></li>
98 <li><a href="{% url 'url_logout' %}">Logout</a></li>
100 <li><a href="{% url 'url_logout' %}">Logout</a></li>
99 </ul>
101 </ul>
100 </li>
102 </li>
101 {% else %}
103 {% else %}
102 <li class="nav-item"><a class="nav-link" href="{% url 'url_login' %}?next={{request.get_full_path}}">Login</a></li>
104 <li class="nav-item"><a class="nav-link" href="{% url 'url_login' %}?next={{request.get_full_path}}">Login</a></li>
103 {% endif %}
105 {% endif %}
104 </ul>
106 </ul>
105 </div>
107 </div>
106
108
107 </nav>
109 </nav>
108 <div style="clear: both;"></div>
110 <div style="clear: both;"></div>
109
111
110
112
111 <div class="container">
113 <div class="container">
112 <div id="page" class="row" style="min-height:600px">
114 <div id="page" class="row" style="min-height:600px">
113
115
114 {% if no_sidebar %}
116 {% if no_sidebar %}
115 <div class="col-md-0 hidden-xs hidden-sm" role="complementary"></div>
117 <div class="col-md-0 hidden-xs hidden-sm" role="complementary"></div>
116
118
117 {% else %}
119 {% else %}
118 <div class="col-md-3 hidden-xs hidden-sm" role="complementary">
120 <div class="col-md-3 hidden-xs hidden-sm" role="complementary">
119 <br><br>
121 <br><br>
120 <div id="sidebar">
122 <div id="sidebar">
121 {% block sidebar%}
123 {% block sidebar%}
122 {% include "sidebar_devices.html" %}
124 {% include "sidebar_devices.html" %}
123 {% endblock %}
125 {% endblock %}
124 </div>
126 </div>
125 </div>
127 </div>
126 {% endif %}
128 {% endif %}
127
129
128
130
129 {% if no_sidebar %}
131 {% if no_sidebar %}
130 <div class="col-md-12 col-xs-12" role="main">
132 <div class="col-md-12 col-xs-12" role="main">
131 {% else %}
133 {% else %}
132 <div class="col-md-9 col-xs-12" role="main">
134 <div class="col-md-9 col-xs-12" role="main">
133 {% endif %}
135 {% endif %}
134 <div class="page-header">
136 <div class="page-header">
135 <h1>{% block content-title %}{% endblock %} <small>{% block content-suptitle %}{% endblock %}</small></h1>
137 <h1>{% block content-title %}{% endblock %} <small>{% block content-suptitle %}{% endblock %}</small></h1>
136 </div>
138 </div>
137 {% block messages %}
139 {% block messages %}
138 {% if messages %}
140 {% if messages %}
139 {% for message in messages %}
141 {% for message in messages %}
140 <div class="alert alert-{% if message.tags %}{% if 'error' in message.tags %}danger{% else %}{{ message.tags }}{% endif %}{% else %}info{% endif %} alert-dismissible" role="alert">
142 <div class="alert alert-{% if message.tags %}{% if 'error' in message.tags %}danger{% else %}{{ message.tags }}{% endif %}{% else %}info{% endif %} alert-dismissible" role="alert">
141 <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
143 <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
142 <strong>{{message.tags|title}}!</strong> {{ message }}
144 <strong>{{message.tags|title}}!</strong> {{ message }}
143 </div>
145 </div>
144 {% endfor %}
146 {% endfor %}
145 {% endif %}
147 {% endif %}
146 {% endblock %}
148 {% endblock %}
147
149
148 {% block content %}
150 {% block content %}
149 {% endblock %}
151 {% endblock %}
150
152
151 </div>
153 </div>
152
154
153
155
154 </div><!--/row-->
156 </div><!--/row-->
155 </div> <!-- container -->
157 </div> <!-- container -->
156
158
157 {% include "footer_igp.html" %}
159 {% include "footer_igp.html" %}
158
160
159
161
160
162
161 <!-- This part put block modal which is used to change parameters of my plot -->
163 <!-- This part put block modal which is used to change parameters of my plot -->
162 {% block modal %}{% endblock modal %}
164 {% block modal %}{% endblock modal %}
163 {% block debug %}<div class="row">{{debug}}</div>{% endblock debug %}
165 {% block debug %}<div class="row">{{debug}}</div>{% endblock debug %}
164 <!-- Optional JavaScript -->
166 <!-- Optional JavaScript -->
165 <!-- jQuery first, then Popper.js, then Bootstrap JS -->
167 <!-- jQuery first, then Popper.js, then Bootstrap JS -->
166 {# % bootstrap_javascript jquery='slim' % #}
168 {# % bootstrap_javascript jquery='slim' % #}
167 <script src="{% static 'js/jquery-3.3.1.slim.min.js' %}"></script>
169 <script src="{% static 'js/jquery-3.3.1.slim.min.js' %}"></script>
168 <script src="{% static 'js/popper.min.js' %}"></script>
170 <script src="{% static 'js/popper.min.js' %}"></script>
169 <script src="{% static 'js/moment.min.js' %}"></script>
171 <script src="{% static 'js/moment.min.js' %}"></script>
170 <script src="{% static 'js/bootstrap.min.js' %}"></script>
172 <script src="{% static 'js/bootstrap.min.js' %}"></script>
171 <script src="{% static 'js/plotly-latest.min.js' %}"></script>
173 <script src="{% static 'js/plotly-latest.min.js' %}"></script>
172
174
173 <!-- Here we put the script from the type of plot that we recibe -->
175 <!-- Here we put the script from the type of plot that we recibe -->
174 <script>
176 <script>
175 $("#menu-toggle").click(function (e) {
177 $("#menu-toggle").click(function (e) {
176 e.preventDefault();
178 e.preventDefault();
177 $("#wrapper").toggleClass("toggled");
179 $("#wrapper").toggleClass("toggled");
178 });
180 });
179 </script>
181 </script>
180 {% block extra-js %}
182 {% block extra-js %}
181 {% endblock%}
183 {% endblock%}
182
184
183
185
184
186
185 </body>
187 </body>
186 </html>
188 </html>
@@ -1,68 +1,68
1 {% load static %} {% load bootstrap4 %}
1 {% load static %} {% load bootstrap4 %}
2 <div class="row footer-igp">
2 <div class="row footer-igp">
3 <div class="col-lg-4 col-md-4 col-sm-12 col-xs-12">
3 <div class="col-lg-4 col-md-4 col-sm-12 col-xs-12">
4 <span class="siguenos">Siguenos en: </span>
4 <span class="siguenos">Siguenos en: </span>
5 <div class="div-links" style="text-align: left">
5 <div class="div-links" style="text-align: left">
6 <a target="_blank" href="http://www.facebook.com/igp.peru" style="background-color:#3b5998;"
6 <a target="_blank" href="http://www.facebook.com/igp.peru" style="background-color:#3b5998;"
7 class="icon2"><i class="fab fa-facebook-f" aria-hidden="true" style="margin-top: 9px;"></i></a>
7 class="icon2"><i class="fab fa-facebook-f" aria-hidden="true" style="margin-top: 9px;"></i></a>
8 <a target="_blank" href="http://twitter.com/#!/igp_peru" style="background-color: #2DAAE2;" class="icon2"><i
8 <a target="_blank" href="http://twitter.com/#!/igp_peru" style="background-color: #2DAAE2;" class="icon2"><i
9 class="fab fa-twitter" aria-hidden="true" style="margin-top: 9px;"></i></a>
9 class="fab fa-twitter" aria-hidden="true" style="margin-top: 9px;"></i></a>
10 <a target="_blank" href="https://www.youtube.com/igp_videos"
10 <a target="_blank" href="https://www.youtube.com/igp_videos"
11 style="background-color: #E30613;margin-right: 0px;" class="icon2"><i class="fab fa-youtube-square"
11 style="background-color: #E30613;margin-right: 0px;" class="icon2"><i class="fab fa-youtube"
12 aria-hidden="true" style="margin-top: 9px;"></i></a>
12 aria-hidden="true" style="margin-top: 9px;"></i></a>
13 <a title="Instagram IGP" href="https://www.instagram.com/igp.peru/" target="_blank" class="icon2 insta"><i
13 <a title="Instagram IGP" href="https://www.instagram.com/igp.peru/" target="_blank" class="icon2 insta"><i
14 class="fab fa-instagram" aria-hidden="true" style="margin-top: 9px;"></i></a>
14 class="fab fa-instagram" aria-hidden="true" style="margin-top: 9px;"></i></a>
15 <a title="LinkedIn IGP" href="https://www.linkedin.com/company/igpperu/" target="_blank"
15 <a title="LinkedIn IGP" href="https://www.linkedin.com/company/igpperu/" target="_blank"
16 style="background-color: #2797CF;" class="icon2"><i class="fab fa-linkedin-in" aria-hidden="true"
16 style="background-color: #2797CF;" class="icon2"><i class="fab fa-linkedin-in" aria-hidden="true"
17 style="margin-top: 9px;"></i></a>
17 style="margin-top: 9px;"></i></a>
18 <a title="Flickr IGP" href="https://www.flickr.com/people/156092703@N08/" target="_blank"
18 <a title="Flickr IGP" href="https://www.flickr.com/people/156092703@N08/" target="_blank"
19 style="background-color: #fd1a7d;" class="icon2"><i class="fab fa-flickr" aria-hidden="true"
19 style="background-color: #fd1a7d;" class="icon2"><i class="fab fa-flickr" aria-hidden="true"
20 style="margin-top: 9px;"></i></a>
20 style="margin-top: 9px;"></i></a>
21
21
22 <div class="footer-igp-row" style="border-top: 1px solid #DDD;padding-left: 0;">
22 <div class="footer-igp-row" style="border-top: 1px solid #DDD;padding-left: 0;">
23 <div class="content" style="border-left: 0px; ">
23 <div class="content" style="border-left: 0px; ">
24 <div class="text">
24 <div class="text">
25 2019<br>
25 2019<br>
26 Instituto GeofΓ­sico del PerΓΊ<br>
26 Instituto GeofΓ­sico del PerΓΊ<br>
27 Ciencia para protegernos, ciencia para avanzar.
27 Ciencia para protegernos, ciencia para avanzar.
28 </div>
28 </div>
29 </div>
29 </div>
30 </div>
30 </div>
31 </div>
31 </div>
32 </div>
32 </div>
33 <div class="col-lg-8 col-md-8 col-sm-8 col-xs-8 d-none d-md-block">
33 <div class="col-lg-8 col-md-8 col-sm-8 col-xs-8 d-none d-md-block">
34 <div class="footer-igp-row">
34 <div class="footer-igp-row">
35 <div class="footer-image"><img src="{% static 'images/ico_footer_horario.png' %}" alt=""></div>
35 <div class="footer-image"><img src="{% static 'images/ico_footer_horario.png' %}" alt=""></div>
36 <div class="content">
36 <div class="content">
37 <div class="title">AtenciΓ³n al ciudadano</div>
37 <div class="title">AtenciΓ³n al ciudadano</div>
38 <div class="text">De lunes a viernes</div>
38 <div class="text">De lunes a viernes</div>
39 <div class="text">Desde las 8:30 Hrs. hasta las 17:15 Hrs</div>
39 <div class="text">Desde las 8:30 Hrs. hasta las 17:15 Hrs</div>
40 <div class="link"><a href=""></a></div>
40 <div class="link"><a href=""></a></div>
41 </div>
41 </div>
42 <div class="footer-image"><img src="{% static 'images/ico_footer_direccion.png' %}" alt=""></div>
42 <div class="footer-image"><img src="{% static 'images/ico_footer_direccion.png' %}" alt=""></div>
43 <div class="content">
43 <div class="content">
44 <div class="title">SEDE PRINCIPAL</div>
44 <div class="title">SEDE PRINCIPAL</div>
45 <div class="text">Calle Badajoz NΒ° 169 Urb. Mayorazgo IV Etapa</div>
45 <div class="text">Calle Badajoz NΒ° 169 Urb. Mayorazgo IV Etapa</div>
46 <div class="text">Ate, Lima 15012 - PerΓΊ.</div>
46 <div class="text">Ate, Lima 15012 - PerΓΊ.</div>
47 <div class="text">(51) 13172300</div>
47 <div class="text">(51) 13172300</div>
48 <div class="link"><a href="https://portal.igp.gob.pe/nuestras-sedes" target="_blank">Ver otras Sedes</a>
48 <div class="link"><a href="https://portal.igp.gob.pe/nuestras-sedes" target="_blank">Ver otras Sedes</a>
49 </div>
49 </div>
50 </div>
50 </div>
51 </div>
51 </div>
52 <div class="footer-igp-row">
52 <div class="footer-igp-row">
53 <div class="footer-image"><img src="{% static 'images/ico_footer_tramites.png' %}" alt=""></div>
53 <div class="footer-image"><img src="{% static 'images/ico_footer_tramites.png' %}" alt=""></div>
54 <div class="content">
54 <div class="content">
55 <a href="http://intranet.igp.gob.pe/std/consultaexp/" target="_blank">
55 <a href="http://intranet.igp.gob.pe/std/consultaexp/" target="_blank">
56 <div class="title">TRÁMITES EN LÍNEA</div>
56 <div class="title">TRÁMITES EN LÍNEA</div>
57 <div class="text">Consulte aquΓ­ el estado de su expediente a travΓ©s de nuestro Sistema de TrΓ‘mite
57 <div class="text">Consulte aquΓ­ el estado de su expediente a travΓ©s de nuestro Sistema de TrΓ‘mite
58 Documentario STD</div>
58 Documentario STD</div>
59 </a>
59 </a>
60 </div>
60 </div>
61 <div class="footer-image"><img src="{% static 'images/ico_footer_consultas.png' %}" alt=""></div>
61 <div class="footer-image"><img src="{% static 'images/ico_footer_consultas.png' %}" alt=""></div>
62 <div class="content">
62 <div class="content">
63 <div class="title">BUZΓ“N DE SUGERENCIAS</div>
63 <div class="title">BUZΓ“N DE SUGERENCIAS</div>
64 <div class="text">comunicaciones@igp.gob.pe</div>
64 <div class="text">comunicaciones@igp.gob.pe</div>
65 </div>
65 </div>
66 </div>
66 </div>
67 </div>
67 </div>
68 </div> No newline at end of file
68 </div>
@@ -1,1926 +1,1926
1 import ast
1 import ast
2 import json
2 import json
3 import hashlib
3 import hashlib
4 from datetime import datetime, timedelta
4 from datetime import datetime, timedelta
5
5
6 from django.shortcuts import render, redirect, get_object_or_404, HttpResponse
6 from django.shortcuts import render, redirect, get_object_or_404, HttpResponse
7 from django.utils.safestring import mark_safe
7 from django.utils.safestring import mark_safe
8 from django.http import HttpResponseRedirect
8 from django.http import HttpResponseRedirect
9 from django.urls import reverse
9 from django.urls import reverse
10 from django.db.models import Q
10 from django.db.models import Q
11 from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
11 from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
12 from django.contrib import messages
12 from django.contrib import messages
13 from django.http.request import QueryDict
13 from django.http.request import QueryDict
14 from django.contrib.auth.decorators import login_required, user_passes_test
14 from django.contrib.auth.decorators import login_required, user_passes_test
15
15
16 try:
16 try:
17 from urllib.parse import urlencode
17 from urllib.parse import urlencode
18 except ImportError:
18 except ImportError:
19 from urllib import urlencode
19 from urllib import urlencode
20
20
21 from .forms import CampaignForm, ExperimentForm, DeviceForm, ConfigurationForm, LocationForm, UploadFileForm, DownloadFileForm, OperationForm, NewForm
21 from .forms import CampaignForm, ExperimentForm, DeviceForm, ConfigurationForm, LocationForm, UploadFileForm, DownloadFileForm, OperationForm, NewForm
22 from .forms import OperationSearchForm, FilterForm, ChangeIpForm
22 from .forms import OperationSearchForm, FilterForm, ChangeIpForm
23
23
24 from .tasks import task_start
24 from .tasks import task_start
25
25
26 from apps.rc.forms import RCConfigurationForm, RCLineCode, RCMixConfigurationForm
26 from apps.rc.forms import RCConfigurationForm, RCLineCode, RCMixConfigurationForm
27 from apps.dds.forms import DDSConfigurationForm
27 from apps.dds.forms import DDSConfigurationForm
28 from apps.jars.forms import JARSConfigurationForm
28 from apps.jars.forms import JARSConfigurationForm
29 from apps.cgs.forms import CGSConfigurationForm
29 from apps.cgs.forms import CGSConfigurationForm
30 from apps.abs.forms import ABSConfigurationForm
30 from apps.abs.forms import ABSConfigurationForm
31 from apps.usrp.forms import USRPConfigurationForm
31 from apps.usrp.forms import USRPConfigurationForm
32 from .utils import Params
32 from .utils import Params
33
33
34 from .models import Campaign, Experiment, Device, Configuration, Location, RunningExperiment, DEV_STATES
34 from .models import Campaign, Experiment, Device, Configuration, Location, RunningExperiment, DEV_STATES
35 from apps.cgs.models import CGSConfiguration
35 from apps.cgs.models import CGSConfiguration
36 from apps.jars.models import JARSConfiguration, EXPERIMENT_TYPE
36 from apps.jars.models import JARSConfiguration, EXPERIMENT_TYPE
37 from apps.usrp.models import USRPConfiguration
37 from apps.usrp.models import USRPConfiguration
38 from apps.abs.models import ABSConfiguration
38 from apps.abs.models import ABSConfiguration
39 from apps.rc.models import RCConfiguration, RCLine, RCLineType, RCClock
39 from apps.rc.models import RCConfiguration, RCLine, RCLineType, RCClock
40 from apps.dds.models import DDSConfiguration
40 from apps.dds.models import DDSConfiguration
41
41
42 from radarsys.celery import app
42 from radarsys.celery import app
43
43
44
44
45 CONF_FORMS = {
45 CONF_FORMS = {
46 'rc': RCConfigurationForm,
46 'rc': RCConfigurationForm,
47 'dds': DDSConfigurationForm,
47 'dds': DDSConfigurationForm,
48 'jars': JARSConfigurationForm,
48 'jars': JARSConfigurationForm,
49 'cgs': CGSConfigurationForm,
49 'cgs': CGSConfigurationForm,
50 'abs': ABSConfigurationForm,
50 'abs': ABSConfigurationForm,
51 'usrp': USRPConfigurationForm,
51 'usrp': USRPConfigurationForm,
52 }
52 }
53
53
54 CONF_MODELS = {
54 CONF_MODELS = {
55 'rc': RCConfiguration,
55 'rc': RCConfiguration,
56 'dds': DDSConfiguration,
56 'dds': DDSConfiguration,
57 'jars': JARSConfiguration,
57 'jars': JARSConfiguration,
58 'cgs': CGSConfiguration,
58 'cgs': CGSConfiguration,
59 'abs': ABSConfiguration,
59 'abs': ABSConfiguration,
60 'usrp': USRPConfiguration,
60 'usrp': USRPConfiguration,
61 }
61 }
62
62
63 MIX_MODES = {
63 MIX_MODES = {
64 '0': 'P',
64 '0': 'P',
65 '1': 'S',
65 '1': 'S',
66 }
66 }
67
67
68 MIX_OPERATIONS = {
68 MIX_OPERATIONS = {
69 '0': 'OR',
69 '0': 'OR',
70 '1': 'XOR',
70 '1': 'XOR',
71 '2': 'AND',
71 '2': 'AND',
72 '3': 'NAND',
72 '3': 'NAND',
73 }
73 }
74
74
75
75
76 def is_developer(user):
76 def is_developer(user):
77
77
78 groups = [str(g.name) for g in user.groups.all()]
78 groups = [str(g.name) for g in user.groups.all()]
79 return 'Developer' in groups or user.is_staff
79 return 'Developer' in groups or user.is_staff
80
80
81
81
82 def is_operator(user):
82 def is_operator(user):
83
83
84 groups = [str(g.name) for g in user.groups.all()]
84 groups = [str(g.name) for g in user.groups.all()]
85 return 'Operator' in groups or user.is_staff
85 return 'Operator' in groups or user.is_staff
86
86
87
87
88 def has_been_modified(model):
88 def has_been_modified(model):
89
89
90 prev_hash = model.hash
90 prev_hash = model.hash
91 new_hash = hashlib.sha256(str(model.parms_to_dict)).hexdigest()
91 new_hash = hashlib.sha256(str(model.parms_to_dict).encode()).hexdigest()
92 if prev_hash != new_hash:
92 if prev_hash != new_hash:
93 model.hash = new_hash
93 model.hash = new_hash
94 model.save()
94 model.save()
95 return True
95 return True
96 return False
96 return False
97
97
98
98
99 def index(request):
99 def index(request):
100 kwargs = {'no_sidebar': True}
100 kwargs = {'no_sidebar': True}
101
101
102 return render(request, 'index.html', kwargs)
102 return render(request, 'index.html', kwargs)
103
103
104
104
105 def locations(request):
105 def locations(request):
106
106
107 page = request.GET.get('page')
107 page = request.GET.get('page')
108 order = ('name',)
108 order = ('name',)
109
109
110 kwargs = get_paginator(Location, page, order)
110 kwargs = get_paginator(Location, page, order)
111
111
112 kwargs['keys'] = ['name', 'description']
112 kwargs['keys'] = ['name', 'description']
113 kwargs['title'] = 'Radar System'
113 kwargs['title'] = 'Radar System'
114 kwargs['suptitle'] = 'List'
114 kwargs['suptitle'] = 'List'
115 kwargs['no_sidebar'] = True
115 kwargs['no_sidebar'] = True
116
116
117 return render(request, 'base_list.html', kwargs)
117 return render(request, 'base_list.html', kwargs)
118
118
119
119
120 def location(request, id_loc):
120 def location(request, id_loc):
121
121
122 location = get_object_or_404(Location, pk=id_loc)
122 location = get_object_or_404(Location, pk=id_loc)
123
123
124 kwargs = {}
124 kwargs = {}
125 kwargs['location'] = location
125 kwargs['location'] = location
126 kwargs['location_keys'] = ['name', 'description']
126 kwargs['location_keys'] = ['name', 'description']
127
127
128 kwargs['title'] = 'Location'
128 kwargs['title'] = 'Location'
129 kwargs['suptitle'] = 'Details'
129 kwargs['suptitle'] = 'Details'
130
130
131 return render(request, 'location.html', kwargs)
131 return render(request, 'location.html', kwargs)
132
132
133
133
134 @login_required
134 @login_required
135 def location_new(request):
135 def location_new(request):
136
136
137 if request.method == 'GET':
137 if request.method == 'GET':
138 form = LocationForm()
138 form = LocationForm()
139
139
140 if request.method == 'POST':
140 if request.method == 'POST':
141 form = LocationForm(request.POST)
141 form = LocationForm(request.POST)
142
142
143 if form.is_valid():
143 if form.is_valid():
144 form.save()
144 form.save()
145 return redirect('url_locations')
145 return redirect('url_locations')
146
146
147 kwargs = {}
147 kwargs = {}
148 kwargs['form'] = form
148 kwargs['form'] = form
149 kwargs['title'] = 'Radar System'
149 kwargs['title'] = 'Radar System'
150 kwargs['suptitle'] = 'New'
150 kwargs['suptitle'] = 'New'
151 kwargs['button'] = 'Create'
151 kwargs['button'] = 'Create'
152
152
153 return render(request, 'base_edit.html', kwargs)
153 return render(request, 'base_edit.html', kwargs)
154
154
155
155
156 @login_required
156 @login_required
157 def location_edit(request, id_loc):
157 def location_edit(request, id_loc):
158
158
159 location = get_object_or_404(Location, pk=id_loc)
159 location = get_object_or_404(Location, pk=id_loc)
160
160
161 if request.method == 'GET':
161 if request.method == 'GET':
162 form = LocationForm(instance=location)
162 form = LocationForm(instance=location)
163
163
164 if request.method == 'POST':
164 if request.method == 'POST':
165 form = LocationForm(request.POST, instance=location)
165 form = LocationForm(request.POST, instance=location)
166
166
167 if form.is_valid():
167 if form.is_valid():
168 form.save()
168 form.save()
169 return redirect('url_locations')
169 return redirect('url_locations')
170
170
171 kwargs = {}
171 kwargs = {}
172 kwargs['form'] = form
172 kwargs['form'] = form
173 kwargs['title'] = 'Location'
173 kwargs['title'] = 'Location'
174 kwargs['suptitle'] = 'Edit'
174 kwargs['suptitle'] = 'Edit'
175 kwargs['button'] = 'Update'
175 kwargs['button'] = 'Update'
176
176
177 return render(request, 'base_edit.html', kwargs)
177 return render(request, 'base_edit.html', kwargs)
178
178
179
179
180 @login_required
180 @login_required
181 def location_delete(request, id_loc):
181 def location_delete(request, id_loc):
182
182
183 location = get_object_or_404(Location, pk=id_loc)
183 location = get_object_or_404(Location, pk=id_loc)
184
184
185 if request.method == 'POST':
185 if request.method == 'POST':
186
186
187 if is_developer(request.user):
187 if is_developer(request.user):
188 location.delete()
188 location.delete()
189 return redirect('url_locations')
189 return redirect('url_locations')
190
190
191 messages.error(request, 'Not enough permission to delete this object')
191 messages.error(request, 'Not enough permission to delete this object')
192 return redirect(location.get_absolute_url())
192 return redirect(location.get_absolute_url())
193
193
194 kwargs = {
194 kwargs = {
195 'title': 'Delete',
195 'title': 'Delete',
196 'suptitle': 'Location',
196 'suptitle': 'Location',
197 'object': location,
197 'object': location,
198 'delete': True
198 'delete': True
199 }
199 }
200
200
201 return render(request, 'confirm.html', kwargs)
201 return render(request, 'confirm.html', kwargs)
202
202
203
203
204 def devices(request):
204 def devices(request):
205
205
206 page = request.GET.get('page')
206 page = request.GET.get('page')
207 order = ('location', 'device_type')
207 order = ('location', 'device_type')
208
208
209 filters = request.GET.copy()
209 filters = request.GET.copy()
210 kwargs = get_paginator(Device, page, order, filters)
210 kwargs = get_paginator(Device, page, order, filters)
211 form = FilterForm(initial=request.GET, extra_fields=['tags'])
211 form = FilterForm(initial=request.GET, extra_fields=['tags'])
212
212
213 kwargs['keys'] = ['device_type', 'location',
213 kwargs['keys'] = ['device_type', 'location',
214 'ip_address', 'port_address', 'actions']
214 'ip_address', 'port_address', 'actions']
215 kwargs['title'] = 'Device'
215 kwargs['title'] = 'Device'
216 kwargs['suptitle'] = 'List'
216 kwargs['suptitle'] = 'List'
217 kwargs['no_sidebar'] = True
217 kwargs['no_sidebar'] = True
218 kwargs['form'] = form
218 kwargs['form'] = form
219 kwargs['add_url'] = reverse('url_add_device')
219 kwargs['add_url'] = reverse('url_add_device')
220 filters.pop('page', None)
220 filters.pop('page', None)
221 kwargs['q'] = urlencode(filters)
221 kwargs['q'] = urlencode(filters)
222 kwargs['menu_devices'] = 'active'
222 kwargs['menu_devices'] = 'active'
223 return render(request, 'base_list.html', kwargs)
223 return render(request, 'base_list.html', kwargs)
224
224
225
225
226 def device(request, id_dev):
226 def device(request, id_dev):
227
227
228 device = get_object_or_404(Device, pk=id_dev)
228 device = get_object_or_404(Device, pk=id_dev)
229
229
230 kwargs = {}
230 kwargs = {}
231 kwargs['device'] = device
231 kwargs['device'] = device
232 kwargs['device_keys'] = ['device_type',
232 kwargs['device_keys'] = ['device_type',
233 'ip_address', 'port_address', 'description']
233 'ip_address', 'port_address', 'description']
234
234
235 kwargs['title'] = 'Device'
235 kwargs['title'] = 'Device'
236 kwargs['suptitle'] = 'Details'
236 kwargs['suptitle'] = 'Details'
237 kwargs['menu_devices'] = 'active'
237 kwargs['menu_devices'] = 'active'
238
238
239 return render(request, 'device.html', kwargs)
239 return render(request, 'device.html', kwargs)
240
240
241
241
242 @login_required
242 @login_required
243 def device_new(request):
243 def device_new(request):
244
244
245 if request.method == 'GET':
245 if request.method == 'GET':
246 form = DeviceForm()
246 form = DeviceForm()
247
247
248 if request.method == 'POST':
248 if request.method == 'POST':
249 form = DeviceForm(request.POST)
249 form = DeviceForm(request.POST)
250
250
251 if form.is_valid():
251 if form.is_valid():
252 form.save()
252 form.save()
253 return redirect('url_devices')
253 return redirect('url_devices')
254
254
255 kwargs = {}
255 kwargs = {}
256 kwargs['form'] = form
256 kwargs['form'] = form
257 kwargs['title'] = 'Device'
257 kwargs['title'] = 'Device'
258 kwargs['suptitle'] = 'New'
258 kwargs['suptitle'] = 'New'
259 kwargs['button'] = 'Create'
259 kwargs['button'] = 'Create'
260 kwargs['menu_devices'] = 'active'
260 kwargs['menu_devices'] = 'active'
261
261
262 return render(request, 'base_edit.html', kwargs)
262 return render(request, 'base_edit.html', kwargs)
263
263
264
264
265 @login_required
265 @login_required
266 def device_edit(request, id_dev):
266 def device_edit(request, id_dev):
267
267
268 device = get_object_or_404(Device, pk=id_dev)
268 device = get_object_or_404(Device, pk=id_dev)
269
269
270 if request.method == 'GET':
270 if request.method == 'GET':
271 form = DeviceForm(instance=device)
271 form = DeviceForm(instance=device)
272
272
273 if request.method == 'POST':
273 if request.method == 'POST':
274 form = DeviceForm(request.POST, instance=device)
274 form = DeviceForm(request.POST, instance=device)
275
275
276 if form.is_valid():
276 if form.is_valid():
277 form.save()
277 form.save()
278 return redirect(device.get_absolute_url())
278 return redirect(device.get_absolute_url())
279
279
280 kwargs = {}
280 kwargs = {}
281 kwargs['form'] = form
281 kwargs['form'] = form
282 kwargs['title'] = 'Device'
282 kwargs['title'] = 'Device'
283 kwargs['suptitle'] = 'Edit'
283 kwargs['suptitle'] = 'Edit'
284 kwargs['button'] = 'Update'
284 kwargs['button'] = 'Update'
285 kwargs['menu_devices'] = 'active'
285 kwargs['menu_devices'] = 'active'
286
286
287 return render(request, 'base_edit.html', kwargs)
287 return render(request, 'base_edit.html', kwargs)
288
288
289
289
290 @login_required
290 @login_required
291 def device_delete(request, id_dev):
291 def device_delete(request, id_dev):
292
292
293 device = get_object_or_404(Device, pk=id_dev)
293 device = get_object_or_404(Device, pk=id_dev)
294
294
295 if request.method == 'POST':
295 if request.method == 'POST':
296
296
297 if is_developer(request.user):
297 if is_developer(request.user):
298 device.delete()
298 device.delete()
299 return redirect('url_devices')
299 return redirect('url_devices')
300
300
301 messages.error(request, 'Not enough permission to delete this object')
301 messages.error(request, 'Not enough permission to delete this object')
302 return redirect(device.get_absolute_url())
302 return redirect(device.get_absolute_url())
303
303
304 kwargs = {
304 kwargs = {
305 'title': 'Delete',
305 'title': 'Delete',
306 'suptitle': 'Device',
306 'suptitle': 'Device',
307 'object': device,
307 'object': device,
308 'delete': True
308 'delete': True
309 }
309 }
310 kwargs['menu_devices'] = 'active'
310 kwargs['menu_devices'] = 'active'
311
311
312 return render(request, 'confirm.html', kwargs)
312 return render(request, 'confirm.html', kwargs)
313
313
314
314
315 @login_required
315 @login_required
316 def device_change_ip(request, id_dev):
316 def device_change_ip(request, id_dev):
317
317
318 device = get_object_or_404(Device, pk=id_dev)
318 device = get_object_or_404(Device, pk=id_dev)
319
319
320 if request.method == 'POST':
320 if request.method == 'POST':
321
321
322 if is_developer(request.user):
322 if is_developer(request.user):
323 device.change_ip(**request.POST.dict())
323 device.change_ip(**request.POST.dict())
324 level, message = device.message.split('|')
324 level, message = device.message.split('|')
325 messages.add_message(request, level, message)
325 messages.add_message(request, level, message)
326 else:
326 else:
327 messages.error(
327 messages.error(
328 request, 'Not enough permission to delete this object')
328 request, 'Not enough permission to delete this object')
329 return redirect(device.get_absolute_url())
329 return redirect(device.get_absolute_url())
330
330
331 kwargs = {
331 kwargs = {
332 'title': 'Device',
332 'title': 'Device',
333 'suptitle': 'Change IP',
333 'suptitle': 'Change IP',
334 'object': device,
334 'object': device,
335 'previous': device.get_absolute_url(),
335 'previous': device.get_absolute_url(),
336 'form': ChangeIpForm(initial={'ip_address': device.ip_address}),
336 'form': ChangeIpForm(initial={'ip_address': device.ip_address}),
337 'message': ' ',
337 'message': ' ',
338 }
338 }
339 kwargs['menu_devices'] = 'active'
339 kwargs['menu_devices'] = 'active'
340
340
341 return render(request, 'confirm.html', kwargs)
341 return render(request, 'confirm.html', kwargs)
342
342
343
343
344 def campaigns(request):
344 def campaigns(request):
345
345
346 page = request.GET.get('page')
346 page = request.GET.get('page')
347 order = ('-start_date',)
347 order = ('-start_date',)
348 filters = request.GET.copy()
348 filters = request.GET.copy()
349
349
350 kwargs = get_paginator(Campaign, page, order, filters)
350 kwargs = get_paginator(Campaign, page, order, filters)
351
351
352 form = FilterForm(initial=request.GET, extra_fields=[
352 form = FilterForm(initial=request.GET, extra_fields=[
353 'range_date', 'tags', 'template'])
353 'range_date', 'tags', 'template'])
354 kwargs['keys'] = ['name', 'start_date', 'end_date', 'actions']
354 kwargs['keys'] = ['name', 'start_date', 'end_date', 'actions']
355 kwargs['title'] = 'Campaign'
355 kwargs['title'] = 'Campaign'
356 kwargs['suptitle'] = 'List'
356 kwargs['suptitle'] = 'List'
357 kwargs['no_sidebar'] = True
357 kwargs['no_sidebar'] = True
358 kwargs['form'] = form
358 kwargs['form'] = form
359 kwargs['add_url'] = reverse('url_add_campaign')
359 kwargs['add_url'] = reverse('url_add_campaign')
360 filters.pop('page', None)
360 filters.pop('page', None)
361 kwargs['q'] = urlencode(filters)
361 kwargs['q'] = urlencode(filters)
362 kwargs['menu_campaigns'] = 'active'
362 kwargs['menu_campaigns'] = 'active'
363
363
364 return render(request, 'base_list.html', kwargs)
364 return render(request, 'base_list.html', kwargs)
365
365
366
366
367 def campaign(request, id_camp):
367 def campaign(request, id_camp):
368
368
369 campaign = get_object_or_404(Campaign, pk=id_camp)
369 campaign = get_object_or_404(Campaign, pk=id_camp)
370 experiments = Experiment.objects.filter(campaign=campaign)
370 experiments = Experiment.objects.filter(campaign=campaign)
371
371
372 form = CampaignForm(instance=campaign)
372 form = CampaignForm(instance=campaign)
373
373
374 kwargs = {}
374 kwargs = {}
375 kwargs['campaign'] = campaign
375 kwargs['campaign'] = campaign
376 kwargs['campaign_keys'] = ['template', 'name',
376 kwargs['campaign_keys'] = ['template', 'name',
377 'start_date', 'end_date', 'tags', 'description']
377 'start_date', 'end_date', 'tags', 'description']
378
378
379 kwargs['experiments'] = experiments
379 kwargs['experiments'] = experiments
380 kwargs['experiment_keys'] = [
380 kwargs['experiment_keys'] = [
381 'name', 'radar_system', 'start_time', 'end_time']
381 'name', 'radar_system', 'start_time', 'end_time']
382
382
383 kwargs['title'] = 'Campaign'
383 kwargs['title'] = 'Campaign'
384 kwargs['suptitle'] = 'Details'
384 kwargs['suptitle'] = 'Details'
385
385
386 kwargs['form'] = form
386 kwargs['form'] = form
387 kwargs['button'] = 'Add Experiment'
387 kwargs['button'] = 'Add Experiment'
388 kwargs['menu_campaigns'] = 'active'
388 kwargs['menu_campaigns'] = 'active'
389
389
390 return render(request, 'campaign.html', kwargs)
390 return render(request, 'campaign.html', kwargs)
391
391
392
392
393 @login_required
393 @login_required
394 def campaign_new(request):
394 def campaign_new(request):
395
395
396 kwargs = {}
396 kwargs = {}
397
397
398 if request.method == 'GET':
398 if request.method == 'GET':
399
399
400 if 'template' in request.GET:
400 if 'template' in request.GET:
401 if request.GET['template'] == '0':
401 if request.GET['template'] == '0':
402 form = NewForm(initial={'create_from': 2},
402 form = NewForm(initial={'create_from': 2},
403 template_choices=Campaign.objects.filter(template=True).values_list('id', 'name'))
403 template_choices=Campaign.objects.filter(template=True).values_list('id', 'name'))
404 else:
404 else:
405 kwargs['button'] = 'Create'
405 kwargs['button'] = 'Create'
406 kwargs['experiments'] = Configuration.objects.filter(
406 kwargs['experiments'] = Configuration.objects.filter(
407 experiment=request.GET['template'])
407 experiment=request.GET['template'])
408 kwargs['experiment_keys'] = ['name', 'start_time', 'end_time']
408 kwargs['experiment_keys'] = ['name', 'start_time', 'end_time']
409 camp = Campaign.objects.get(pk=request.GET['template'])
409 camp = Campaign.objects.get(pk=request.GET['template'])
410 form = CampaignForm(instance=camp,
410 form = CampaignForm(instance=camp,
411 initial={'name': '{}_{:%Y%m%d}'.format(camp.name, datetime.now()),
411 initial={'name': '{}_{:%Y%m%d}'.format(camp.name, datetime.now()),
412 'template': False})
412 'template': False})
413 elif 'blank' in request.GET:
413 elif 'blank' in request.GET:
414 kwargs['button'] = 'Create'
414 kwargs['button'] = 'Create'
415 form = CampaignForm()
415 form = CampaignForm()
416 else:
416 else:
417 form = NewForm()
417 form = NewForm()
418
418
419 if request.method == 'POST':
419 if request.method == 'POST':
420 kwargs['button'] = 'Create'
420 kwargs['button'] = 'Create'
421 post = request.POST.copy()
421 post = request.POST.copy()
422 experiments = []
422 experiments = []
423
423
424 for id_exp in post.getlist('experiments'):
424 for id_exp in post.getlist('experiments'):
425 exp = Experiment.objects.get(pk=id_exp)
425 exp = Experiment.objects.get(pk=id_exp)
426 new_exp = exp.clone(template=False)
426 new_exp = exp.clone(template=False)
427 experiments.append(new_exp)
427 experiments.append(new_exp)
428
428
429 post.setlist('experiments', [])
429 post.setlist('experiments', [])
430
430
431 form = CampaignForm(post)
431 form = CampaignForm(post)
432
432
433 if form.is_valid():
433 if form.is_valid():
434 campaign = form.save(commit=False)
434 campaign = form.save(commit=False)
435 campaign.author = request.user
435 campaign.author = request.user
436 for exp in experiments:
436 for exp in experiments:
437 campaign.experiments.add(exp)
437 campaign.experiments.add(exp)
438 campaign.save()
438 campaign.save()
439 return redirect('url_campaign', id_camp=campaign.id)
439 return redirect('url_campaign', id_camp=campaign.id)
440
440
441 kwargs['form'] = form
441 kwargs['form'] = form
442 kwargs['title'] = 'Campaign'
442 kwargs['title'] = 'Campaign'
443 kwargs['suptitle'] = 'New'
443 kwargs['suptitle'] = 'New'
444 kwargs['menu_campaigns'] = 'active'
444 kwargs['menu_campaigns'] = 'active'
445
445
446 return render(request, 'campaign_edit.html', kwargs)
446 return render(request, 'campaign_edit.html', kwargs)
447
447
448
448
449 @login_required
449 @login_required
450 def campaign_edit(request, id_camp):
450 def campaign_edit(request, id_camp):
451
451
452 campaign = get_object_or_404(Campaign, pk=id_camp)
452 campaign = get_object_or_404(Campaign, pk=id_camp)
453
453
454 if request.method == 'GET':
454 if request.method == 'GET':
455 form = CampaignForm(instance=campaign)
455 form = CampaignForm(instance=campaign)
456
456
457 if request.method == 'POST':
457 if request.method == 'POST':
458 exps = campaign.experiments.all().values_list('pk', flat=True)
458 exps = campaign.experiments.all().values_list('pk', flat=True)
459 post = request.POST.copy()
459 post = request.POST.copy()
460 new_exps = post.getlist('experiments')
460 new_exps = post.getlist('experiments')
461 post.setlist('experiments', [])
461 post.setlist('experiments', [])
462 form = CampaignForm(post, instance=campaign)
462 form = CampaignForm(post, instance=campaign)
463
463
464 if form.is_valid():
464 if form.is_valid():
465 camp = form.save()
465 camp = form.save()
466 for id_exp in new_exps:
466 for id_exp in new_exps:
467 if int(id_exp) in exps:
467 if int(id_exp) in exps:
468 exps.pop(id_exp)
468 exps.pop(id_exp)
469 else:
469 else:
470 exp = Experiment.objects.get(pk=id_exp)
470 exp = Experiment.objects.get(pk=id_exp)
471 if exp.template:
471 if exp.template:
472 camp.experiments.add(exp.clone(template=False))
472 camp.experiments.add(exp.clone(template=False))
473 else:
473 else:
474 camp.experiments.add(exp)
474 camp.experiments.add(exp)
475
475
476 for id_exp in exps:
476 for id_exp in exps:
477 camp.experiments.remove(Experiment.objects.get(pk=id_exp))
477 camp.experiments.remove(Experiment.objects.get(pk=id_exp))
478
478
479 return redirect('url_campaign', id_camp=id_camp)
479 return redirect('url_campaign', id_camp=id_camp)
480
480
481 kwargs = {}
481 kwargs = {}
482 kwargs['form'] = form
482 kwargs['form'] = form
483 kwargs['title'] = 'Campaign'
483 kwargs['title'] = 'Campaign'
484 kwargs['suptitle'] = 'Edit'
484 kwargs['suptitle'] = 'Edit'
485 kwargs['button'] = 'Update'
485 kwargs['button'] = 'Update'
486 kwargs['menu_campaigns'] = 'active'
486 kwargs['menu_campaigns'] = 'active'
487
487
488 return render(request, 'campaign_edit.html', kwargs)
488 return render(request, 'campaign_edit.html', kwargs)
489
489
490
490
491 @login_required
491 @login_required
492 def campaign_delete(request, id_camp):
492 def campaign_delete(request, id_camp):
493
493
494 campaign = get_object_or_404(Campaign, pk=id_camp)
494 campaign = get_object_or_404(Campaign, pk=id_camp)
495
495
496 if request.method == 'POST':
496 if request.method == 'POST':
497 if is_developer(request.user):
497 if is_developer(request.user):
498
498
499 for exp in campaign.experiments.all():
499 for exp in campaign.experiments.all():
500 for conf in Configuration.objects.filter(experiment=exp):
500 for conf in Configuration.objects.filter(experiment=exp):
501 conf.delete()
501 conf.delete()
502 exp.delete()
502 exp.delete()
503 campaign.delete()
503 campaign.delete()
504
504
505 return redirect('url_campaigns')
505 return redirect('url_campaigns')
506
506
507 messages.error(request, 'Not enough permission to delete this object')
507 messages.error(request, 'Not enough permission to delete this object')
508 return redirect(campaign.get_absolute_url())
508 return redirect(campaign.get_absolute_url())
509
509
510 kwargs = {
510 kwargs = {
511 'title': 'Delete',
511 'title': 'Delete',
512 'suptitle': 'Campaign',
512 'suptitle': 'Campaign',
513 'object': campaign,
513 'object': campaign,
514 'delete': True
514 'delete': True
515 }
515 }
516 kwargs['menu_campaigns'] = 'active'
516 kwargs['menu_campaigns'] = 'active'
517
517
518 return render(request, 'confirm.html', kwargs)
518 return render(request, 'confirm.html', kwargs)
519
519
520
520
521 @login_required
521 @login_required
522 def campaign_export(request, id_camp):
522 def campaign_export(request, id_camp):
523
523
524 campaign = get_object_or_404(Campaign, pk=id_camp)
524 campaign = get_object_or_404(Campaign, pk=id_camp)
525 content = campaign.parms_to_dict()
525 content = campaign.parms_to_dict()
526 content_type = 'application/json'
526 content_type = 'application/json'
527 filename = '%s_%s.json' % (campaign.name, campaign.id)
527 filename = '%s_%s.json' % (campaign.name, campaign.id)
528
528
529 response = HttpResponse(content_type=content_type)
529 response = HttpResponse(content_type=content_type)
530 response['Content-Disposition'] = 'attachment; filename="%s"' % filename
530 response['Content-Disposition'] = 'attachment; filename="%s"' % filename
531 response.write(json.dumps(content, indent=2))
531 response.write(json.dumps(content, indent=2))
532
532
533 return response
533 return response
534
534
535
535
536 @login_required
536 @login_required
537 def campaign_import(request, id_camp):
537 def campaign_import(request, id_camp):
538
538
539 campaign = get_object_or_404(Campaign, pk=id_camp)
539 campaign = get_object_or_404(Campaign, pk=id_camp)
540
540
541 if request.method == 'GET':
541 if request.method == 'GET':
542 file_form = UploadFileForm()
542 file_form = UploadFileForm()
543
543
544 if request.method == 'POST':
544 if request.method == 'POST':
545 file_form = UploadFileForm(request.POST, request.FILES)
545 file_form = UploadFileForm(request.POST, request.FILES)
546
546
547 if file_form.is_valid():
547 if file_form.is_valid():
548 new_camp = campaign.dict_to_parms(
548 new_camp = campaign.dict_to_parms(
549 json.load(request.FILES['file']), CONF_MODELS)
549 json.load(request.FILES['file']), CONF_MODELS)
550 messages.success(
550 messages.success(
551 request, "Parameters imported from: '%s'." % request.FILES['file'].name)
551 request, "Parameters imported from: '%s'." % request.FILES['file'].name)
552 return redirect(new_camp.get_absolute_url_edit())
552 return redirect(new_camp.get_absolute_url_edit())
553
553
554 messages.error(request, "Could not import parameters from file")
554 messages.error(request, "Could not import parameters from file")
555
555
556 kwargs = {}
556 kwargs = {}
557 kwargs['title'] = 'Campaign'
557 kwargs['title'] = 'Campaign'
558 kwargs['form'] = file_form
558 kwargs['form'] = file_form
559 kwargs['suptitle'] = 'Importing file'
559 kwargs['suptitle'] = 'Importing file'
560 kwargs['button'] = 'Import'
560 kwargs['button'] = 'Import'
561 kwargs['menu_campaigns'] = 'active'
561 kwargs['menu_campaigns'] = 'active'
562
562
563 return render(request, 'campaign_import.html', kwargs)
563 return render(request, 'campaign_import.html', kwargs)
564
564
565
565
566 def experiments(request):
566 def experiments(request):
567
567
568 page = request.GET.get('page')
568 page = request.GET.get('page')
569 order = ('location',)
569 order = ('location',)
570 filters = request.GET.copy()
570 filters = request.GET.copy()
571
571
572 if 'my experiments' in filters:
572 if 'my experiments' in filters:
573 filters.pop('my experiments', None)
573 filters.pop('my experiments', None)
574 filters['mine'] = request.user.id
574 filters['mine'] = request.user.id
575
575
576 kwargs = get_paginator(Experiment, page, order, filters)
576 kwargs = get_paginator(Experiment, page, order, filters)
577
577
578 fields = ['tags', 'template']
578 fields = ['tags', 'template']
579 if request.user.is_authenticated:
579 if request.user.is_authenticated:
580 fields.append('my experiments')
580 fields.append('my experiments')
581
581
582 form = FilterForm(initial=request.GET, extra_fields=fields)
582 form = FilterForm(initial=request.GET, extra_fields=fields)
583
583
584 kwargs['keys'] = ['name', 'radar_system',
584 kwargs['keys'] = ['name', 'radar_system',
585 'start_time', 'end_time', 'actions']
585 'start_time', 'end_time', 'actions']
586 kwargs['title'] = 'Experiment'
586 kwargs['title'] = 'Experiment'
587 kwargs['suptitle'] = 'List'
587 kwargs['suptitle'] = 'List'
588 kwargs['no_sidebar'] = True
588 kwargs['no_sidebar'] = True
589 kwargs['form'] = form
589 kwargs['form'] = form
590 kwargs['add_url'] = reverse('url_add_experiment')
590 kwargs['add_url'] = reverse('url_add_experiment')
591 filters = request.GET.copy()
591 filters = request.GET.copy()
592 filters.pop('page', None)
592 filters.pop('page', None)
593 kwargs['q'] = urlencode(filters)
593 kwargs['q'] = urlencode(filters)
594 kwargs['menu_experiments'] = 'active'
594 kwargs['menu_experiments'] = 'active'
595
595
596 return render(request, 'base_list.html', kwargs)
596 return render(request, 'base_list.html', kwargs)
597
597
598
598
599 def experiment(request, id_exp):
599 def experiment(request, id_exp):
600
600
601 experiment = get_object_or_404(Experiment, pk=id_exp)
601 experiment = get_object_or_404(Experiment, pk=id_exp)
602
602
603 configurations = Configuration.objects.filter(
603 configurations = Configuration.objects.filter(
604 experiment=experiment, type=0)
604 experiment=experiment, type=0)
605
605
606 kwargs = {}
606 kwargs = {}
607
607
608 kwargs['experiment_keys'] = ['template', 'radar_system',
608 kwargs['experiment_keys'] = ['template', 'radar_system',
609 'name', 'freq', 'start_time', 'end_time']
609 'name', 'freq', 'start_time', 'end_time']
610 kwargs['experiment'] = experiment
610 kwargs['experiment'] = experiment
611 kwargs['configuration_keys'] = ['name', 'device__ip_address',
611 kwargs['configuration_keys'] = ['name', 'device__ip_address',
612 'device__port_address', 'device__status']
612 'device__port_address', 'device__status']
613 kwargs['configurations'] = configurations
613 kwargs['configurations'] = configurations
614 kwargs['title'] = 'Experiment'
614 kwargs['title'] = 'Experiment'
615 kwargs['suptitle'] = 'Details'
615 kwargs['suptitle'] = 'Details'
616 kwargs['button'] = 'Add Configuration'
616 kwargs['button'] = 'Add Configuration'
617 kwargs['menu_experiments'] = 'active'
617 kwargs['menu_experiments'] = 'active'
618
618
619 ###### SIDEBAR ######
619 ###### SIDEBAR ######
620 kwargs.update(sidebar(experiment=experiment))
620 kwargs.update(sidebar(experiment=experiment))
621
621
622 return render(request, 'experiment.html', kwargs)
622 return render(request, 'experiment.html', kwargs)
623
623
624
624
625 @login_required
625 @login_required
626 def experiment_new(request, id_camp=None):
626 def experiment_new(request, id_camp=None):
627
627
628 if not is_developer(request.user):
628 if not is_developer(request.user):
629 messages.error(
629 messages.error(
630 request, 'Developer required, to create new Experiments')
630 request, 'Developer required, to create new Experiments')
631 return redirect('index')
631 return redirect('index')
632 kwargs = {}
632 kwargs = {}
633
633
634 if request.method == 'GET':
634 if request.method == 'GET':
635 if 'template' in request.GET:
635 if 'template' in request.GET:
636 if request.GET['template'] == '0':
636 if request.GET['template'] == '0':
637 form = NewForm(initial={'create_from': 2},
637 form = NewForm(initial={'create_from': 2},
638 template_choices=Experiment.objects.filter(template=True).values_list('id', 'name'))
638 template_choices=Experiment.objects.filter(template=True).values_list('id', 'name'))
639 else:
639 else:
640 kwargs['button'] = 'Create'
640 kwargs['button'] = 'Create'
641 kwargs['configurations'] = Configuration.objects.filter(
641 kwargs['configurations'] = Configuration.objects.filter(
642 experiment=request.GET['template'])
642 experiment=request.GET['template'])
643 kwargs['configuration_keys'] = ['name', 'device__name',
643 kwargs['configuration_keys'] = ['name', 'device__name',
644 'device__ip_address', 'device__port_address']
644 'device__ip_address', 'device__port_address']
645 exp = Experiment.objects.get(pk=request.GET['template'])
645 exp = Experiment.objects.get(pk=request.GET['template'])
646 form = ExperimentForm(instance=exp,
646 form = ExperimentForm(instance=exp,
647 initial={'name': '{}_{:%y%m%d}'.format(exp.name, datetime.now()),
647 initial={'name': '{}_{:%y%m%d}'.format(exp.name, datetime.now()),
648 'template': False})
648 'template': False})
649 elif 'blank' in request.GET:
649 elif 'blank' in request.GET:
650 kwargs['button'] = 'Create'
650 kwargs['button'] = 'Create'
651 form = ExperimentForm()
651 form = ExperimentForm()
652 else:
652 else:
653 form = NewForm()
653 form = NewForm()
654
654
655 if request.method == 'POST':
655 if request.method == 'POST':
656 form = ExperimentForm(request.POST)
656 form = ExperimentForm(request.POST)
657 if form.is_valid():
657 if form.is_valid():
658 experiment = form.save(commit=False)
658 experiment = form.save(commit=False)
659 experiment.author = request.user
659 experiment.author = request.user
660 experiment.save()
660 experiment.save()
661
661
662 if 'template' in request.GET:
662 if 'template' in request.GET:
663 configurations = Configuration.objects.filter(
663 configurations = Configuration.objects.filter(
664 experiment=request.GET['template'], type=0)
664 experiment=request.GET['template'], type=0)
665 for conf in configurations:
665 for conf in configurations:
666 conf.clone(experiment=experiment, template=False)
666 conf.clone(experiment=experiment, template=False)
667
667
668 return redirect('url_experiment', id_exp=experiment.id)
668 return redirect('url_experiment', id_exp=experiment.id)
669
669
670 kwargs['form'] = form
670 kwargs['form'] = form
671 kwargs['title'] = 'Experiment'
671 kwargs['title'] = 'Experiment'
672 kwargs['suptitle'] = 'New'
672 kwargs['suptitle'] = 'New'
673 kwargs['menu_experiments'] = 'active'
673 kwargs['menu_experiments'] = 'active'
674
674
675 return render(request, 'experiment_edit.html', kwargs)
675 return render(request, 'experiment_edit.html', kwargs)
676
676
677
677
678 @login_required
678 @login_required
679 def experiment_edit(request, id_exp):
679 def experiment_edit(request, id_exp):
680
680
681 experiment = get_object_or_404(Experiment, pk=id_exp)
681 experiment = get_object_or_404(Experiment, pk=id_exp)
682
682
683 if request.method == 'GET':
683 if request.method == 'GET':
684 form = ExperimentForm(instance=experiment)
684 form = ExperimentForm(instance=experiment)
685
685
686 if request.method == 'POST':
686 if request.method == 'POST':
687 form = ExperimentForm(request.POST, instance=experiment)
687 form = ExperimentForm(request.POST, instance=experiment)
688
688
689 if form.is_valid():
689 if form.is_valid():
690 experiment = form.save()
690 experiment = form.save()
691 return redirect('url_experiment', id_exp=experiment.id)
691 return redirect('url_experiment', id_exp=experiment.id)
692
692
693 kwargs = {}
693 kwargs = {}
694 kwargs['form'] = form
694 kwargs['form'] = form
695 kwargs['title'] = 'Experiment'
695 kwargs['title'] = 'Experiment'
696 kwargs['suptitle'] = 'Edit'
696 kwargs['suptitle'] = 'Edit'
697 kwargs['button'] = 'Update'
697 kwargs['button'] = 'Update'
698 kwargs['menu_experiments'] = 'active'
698 kwargs['menu_experiments'] = 'active'
699
699
700 return render(request, 'experiment_edit.html', kwargs)
700 return render(request, 'experiment_edit.html', kwargs)
701
701
702
702
703 @login_required
703 @login_required
704 def experiment_delete(request, id_exp):
704 def experiment_delete(request, id_exp):
705
705
706 experiment = get_object_or_404(Experiment, pk=id_exp)
706 experiment = get_object_or_404(Experiment, pk=id_exp)
707
707
708 if request.method == 'POST':
708 if request.method == 'POST':
709 if is_developer(request.user):
709 if is_developer(request.user):
710 for conf in Configuration.objects.filter(experiment=experiment):
710 for conf in Configuration.objects.filter(experiment=experiment):
711 conf.delete()
711 conf.delete()
712 experiment.delete()
712 experiment.delete()
713 return redirect('url_experiments')
713 return redirect('url_experiments')
714
714
715 messages.error(request, 'Not enough permission to delete this object')
715 messages.error(request, 'Not enough permission to delete this object')
716 return redirect(experiment.get_absolute_url())
716 return redirect(experiment.get_absolute_url())
717
717
718 kwargs = {
718 kwargs = {
719 'title': 'Delete',
719 'title': 'Delete',
720 'suptitle': 'Experiment',
720 'suptitle': 'Experiment',
721 'object': experiment,
721 'object': experiment,
722 'delete': True
722 'delete': True
723 }
723 }
724
724
725 return render(request, 'confirm.html', kwargs)
725 return render(request, 'confirm.html', kwargs)
726
726
727
727
728 @login_required
728 @login_required
729 def experiment_export(request, id_exp):
729 def experiment_export(request, id_exp):
730
730
731 experiment = get_object_or_404(Experiment, pk=id_exp)
731 experiment = get_object_or_404(Experiment, pk=id_exp)
732 content = experiment.parms_to_dict()
732 content = experiment.parms_to_dict()
733 content_type = 'application/json'
733 content_type = 'application/json'
734 filename = '%s_%s.json' % (experiment.name, experiment.id)
734 filename = '%s_%s.json' % (experiment.name, experiment.id)
735
735
736 response = HttpResponse(content_type=content_type)
736 response = HttpResponse(content_type=content_type)
737 response['Content-Disposition'] = 'attachment; filename="%s"' % filename
737 response['Content-Disposition'] = 'attachment; filename="%s"' % filename
738 response.write(json.dumps(content, indent=2))
738 response.write(json.dumps(content, indent=2))
739
739
740 return response
740 return response
741
741
742
742
743 @login_required
743 @login_required
744 def experiment_import(request, id_exp):
744 def experiment_import(request, id_exp):
745
745
746 experiment = get_object_or_404(Experiment, pk=id_exp)
746 experiment = get_object_or_404(Experiment, pk=id_exp)
747 configurations = Configuration.objects.filter(experiment=experiment)
747 configurations = Configuration.objects.filter(experiment=experiment)
748
748
749 if request.method == 'GET':
749 if request.method == 'GET':
750 file_form = UploadFileForm()
750 file_form = UploadFileForm()
751
751
752 if request.method == 'POST':
752 if request.method == 'POST':
753 file_form = UploadFileForm(request.POST, request.FILES)
753 file_form = UploadFileForm(request.POST, request.FILES)
754
754
755 if file_form.is_valid():
755 if file_form.is_valid():
756 new_exp = experiment.dict_to_parms(
756 new_exp = experiment.dict_to_parms(
757 json.load(request.FILES['file']), CONF_MODELS)
757 json.load(request.FILES['file']), CONF_MODELS)
758 messages.success(
758 messages.success(
759 request, "Parameters imported from: '%s'." % request.FILES['file'].name)
759 request, "Parameters imported from: '%s'." % request.FILES['file'].name)
760 return redirect(new_exp.get_absolute_url_edit())
760 return redirect(new_exp.get_absolute_url_edit())
761
761
762 messages.error(request, "Could not import parameters from file")
762 messages.error(request, "Could not import parameters from file")
763
763
764 kwargs = {}
764 kwargs = {}
765 kwargs['title'] = 'Experiment'
765 kwargs['title'] = 'Experiment'
766 kwargs['form'] = file_form
766 kwargs['form'] = file_form
767 kwargs['suptitle'] = 'Importing file'
767 kwargs['suptitle'] = 'Importing file'
768 kwargs['button'] = 'Import'
768 kwargs['button'] = 'Import'
769 kwargs['menu_experiments'] = 'active'
769 kwargs['menu_experiments'] = 'active'
770
770
771 kwargs.update(sidebar(experiment=experiment))
771 kwargs.update(sidebar(experiment=experiment))
772
772
773 return render(request, 'experiment_import.html', kwargs)
773 return render(request, 'experiment_import.html', kwargs)
774
774
775
775
776 @login_required
776 @login_required
777 def experiment_start(request, id_exp):
777 def experiment_start(request, id_exp):
778
778
779 exp = get_object_or_404(Experiment, pk=id_exp)
779 exp = get_object_or_404(Experiment, pk=id_exp)
780
780
781 if exp.status == 2:
781 if exp.status == 2:
782 messages.warning(request, 'Experiment {} already runnnig'.format(exp))
782 messages.warning(request, 'Experiment {} already runnnig'.format(exp))
783 else:
783 else:
784 exp.status = exp.start()
784 exp.status = exp.start()
785 if exp.status == 0:
785 if exp.status == 0:
786 messages.error(request, 'Experiment {} not start'.format(exp))
786 messages.error(request, 'Experiment {} not start'.format(exp))
787 if exp.status == 2:
787 if exp.status == 2:
788 messages.success(request, 'Experiment {} started'.format(exp))
788 messages.success(request, 'Experiment {} started'.format(exp))
789
789
790 exp.save()
790 exp.save()
791
791
792 return redirect(exp.get_absolute_url())
792 return redirect(exp.get_absolute_url())
793
793
794
794
795 @login_required
795 @login_required
796 def experiment_stop(request, id_exp):
796 def experiment_stop(request, id_exp):
797
797
798 exp = get_object_or_404(Experiment, pk=id_exp)
798 exp = get_object_or_404(Experiment, pk=id_exp)
799
799
800 if exp.status == 2:
800 if exp.status == 2:
801 exp.status = exp.stop()
801 exp.status = exp.stop()
802 exp.save()
802 exp.save()
803 messages.success(request, 'Experiment {} stopped'.format(exp))
803 messages.success(request, 'Experiment {} stopped'.format(exp))
804 else:
804 else:
805 messages.error(request, 'Experiment {} not running'.format(exp))
805 messages.error(request, 'Experiment {} not running'.format(exp))
806
806
807 return redirect(exp.get_absolute_url())
807 return redirect(exp.get_absolute_url())
808
808
809
809
810 def experiment_status(request, id_exp):
810 def experiment_status(request, id_exp):
811
811
812 exp = get_object_or_404(Experiment, pk=id_exp)
812 exp = get_object_or_404(Experiment, pk=id_exp)
813
813
814 exp.get_status()
814 exp.get_status()
815
815
816 return redirect(exp.get_absolute_url())
816 return redirect(exp.get_absolute_url())
817
817
818
818
819 @login_required
819 @login_required
820 def experiment_mix(request, id_exp):
820 def experiment_mix(request, id_exp):
821
821
822 experiment = get_object_or_404(Experiment, pk=id_exp)
822 experiment = get_object_or_404(Experiment, pk=id_exp)
823 rc_confs = [conf for conf in RCConfiguration.objects.filter(
823 rc_confs = [conf for conf in RCConfiguration.objects.filter(
824 experiment=id_exp,
824 experiment=id_exp,
825 type=0,
825 type=0,
826 mix=False)]
826 mix=False)]
827
827
828 if len(rc_confs) < 2:
828 if len(rc_confs) < 2:
829 messages.warning(
829 messages.warning(
830 request, 'You need at least two RC Configurations to make a mix')
830 request, 'You need at least two RC Configurations to make a mix')
831 return redirect(experiment.get_absolute_url())
831 return redirect(experiment.get_absolute_url())
832
832
833 mix_confs = RCConfiguration.objects.filter(experiment=id_exp, mix=True, type=0)
833 mix_confs = RCConfiguration.objects.filter(experiment=id_exp, mix=True, type=0)
834
834
835 if mix_confs:
835 if mix_confs:
836 mix = mix_confs[0]
836 mix = mix_confs[0]
837 else:
837 else:
838 mix = RCConfiguration(experiment=experiment,
838 mix = RCConfiguration(experiment=experiment,
839 device=rc_confs[0].device,
839 device=rc_confs[0].device,
840 ipp=rc_confs[0].ipp,
840 ipp=rc_confs[0].ipp,
841 clock_in=rc_confs[0].clock_in,
841 clock_in=rc_confs[0].clock_in,
842 clock_divider=rc_confs[0].clock_divider,
842 clock_divider=rc_confs[0].clock_divider,
843 mix=True,
843 mix=True,
844 parameters='')
844 parameters='')
845 mix.save()
845 mix.save()
846
846
847 line_type = RCLineType.objects.get(name='mix')
847 line_type = RCLineType.objects.get(name='mix')
848 for i in range(len(rc_confs[0].get_lines())):
848 for i in range(len(rc_confs[0].get_lines())):
849 line = RCLine(rc_configuration=mix, line_type=line_type, channel=i)
849 line = RCLine(rc_configuration=mix, line_type=line_type, channel=i)
850 line.save()
850 line.save()
851
851
852 initial = {'name': mix.name,
852 initial = {'name': mix.name,
853 'result': parse_mix_result(mix.parameters),
853 'result': parse_mix_result(mix.parameters),
854 'delay': 0,
854 'delay': 0,
855 'mask': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
855 'mask': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
856 }
856 }
857
857
858 if request.method == 'GET':
858 if request.method == 'GET':
859 form = RCMixConfigurationForm(confs=rc_confs, initial=initial)
859 form = RCMixConfigurationForm(confs=rc_confs, initial=initial)
860
860
861 if request.method == 'POST':
861 if request.method == 'POST':
862 result = mix.parameters
862 result = mix.parameters
863
863
864 if '{}|'.format(request.POST['experiment']) in result:
864 if '{}|'.format(request.POST['experiment']) in result:
865 messages.error(request, 'Configuration already added')
865 messages.error(request, 'Configuration already added')
866 else:
866 else:
867 if 'operation' in request.POST:
867 if 'operation' in request.POST:
868 operation = MIX_OPERATIONS[request.POST['operation']]
868 operation = MIX_OPERATIONS[request.POST['operation']]
869 else:
869 else:
870 operation = ' '
870 operation = ' '
871
871
872 mode = MIX_MODES[request.POST['mode']]
872 mode = MIX_MODES[request.POST['mode']]
873
873
874 if result:
874 if result:
875 result = '{}-{}|{}|{}|{}|{}'.format(mix.parameters,
875 result = '{}-{}|{}|{}|{}|{}'.format(mix.parameters,
876 request.POST['experiment'],
876 request.POST['experiment'],
877 mode,
877 mode,
878 operation,
878 operation,
879 float(
879 float(
880 request.POST['delay']),
880 request.POST['delay']),
881 parse_mask(
881 parse_mask(
882 request.POST.getlist('mask'))
882 request.POST.getlist('mask'))
883 )
883 )
884 else:
884 else:
885 result = '{}|{}|{}|{}|{}'.format(request.POST['experiment'],
885 result = '{}|{}|{}|{}|{}'.format(request.POST['experiment'],
886 mode,
886 mode,
887 operation,
887 operation,
888 float(request.POST['delay']),
888 float(request.POST['delay']),
889 parse_mask(
889 parse_mask(
890 request.POST.getlist('mask'))
890 request.POST.getlist('mask'))
891 )
891 )
892
892
893 mix.parameters = result
893 mix.parameters = result
894 mix.save()
894 mix.save()
895 mix.update_pulses()
895 mix.update_pulses()
896
896
897 initial['result'] = parse_mix_result(result)
897 initial['result'] = parse_mix_result(result)
898 initial['name'] = mix.name
898 initial['name'] = mix.name
899
899
900 form = RCMixConfigurationForm(initial=initial, confs=rc_confs)
900 form = RCMixConfigurationForm(initial=initial, confs=rc_confs)
901
901
902 kwargs = {
902 kwargs = {
903 'title': 'Experiment',
903 'title': 'Experiment',
904 'suptitle': 'Mix Configurations',
904 'suptitle': 'Mix Configurations',
905 'form': form,
905 'form': form,
906 'extra_button': 'Delete',
906 'extra_button': 'Delete',
907 'button': 'Add',
907 'button': 'Add',
908 'cancel': 'Back',
908 'cancel': 'Back',
909 'previous': experiment.get_absolute_url(),
909 'previous': experiment.get_absolute_url(),
910 'id_exp': id_exp,
910 'id_exp': id_exp,
911
911
912 }
912 }
913 kwargs['menu_experiments'] = 'active'
913 kwargs['menu_experiments'] = 'active'
914
914
915 return render(request, 'experiment_mix.html', kwargs)
915 return render(request, 'experiment_mix.html', kwargs)
916
916
917
917
918 @login_required
918 @login_required
919 def experiment_mix_delete(request, id_exp):
919 def experiment_mix_delete(request, id_exp):
920
920
921 conf = RCConfiguration.objects.get(experiment=id_exp, mix=True, type=0)
921 conf = RCConfiguration.objects.get(experiment=id_exp, mix=True, type=0)
922 values = conf.parameters.split('-')
922 values = conf.parameters.split('-')
923 conf.parameters = '-'.join(values[:-1])
923 conf.parameters = '-'.join(values[:-1])
924 conf.save()
924 conf.save()
925
925
926 return redirect('url_mix_experiment', id_exp=id_exp)
926 return redirect('url_mix_experiment', id_exp=id_exp)
927
927
928
928
929 def experiment_summary(request, id_exp):
929 def experiment_summary(request, id_exp):
930
930
931 experiment = get_object_or_404(Experiment, pk=id_exp)
931 experiment = get_object_or_404(Experiment, pk=id_exp)
932 configurations = Configuration.objects.filter(
932 configurations = Configuration.objects.filter(
933 experiment=experiment, type=0)
933 experiment=experiment, type=0)
934
934
935 kwargs = {}
935 kwargs = {}
936 kwargs['experiment_keys'] = ['radar_system',
936 kwargs['experiment_keys'] = ['radar_system',
937 'name', 'freq', 'start_time', 'end_time']
937 'name', 'freq', 'start_time', 'end_time']
938 kwargs['experiment'] = experiment
938 kwargs['experiment'] = experiment
939 kwargs['configurations'] = []
939 kwargs['configurations'] = []
940 kwargs['title'] = 'Experiment Summary'
940 kwargs['title'] = 'Experiment Summary'
941 kwargs['suptitle'] = 'Details'
941 kwargs['suptitle'] = 'Details'
942 kwargs['button'] = 'Verify Parameters'
942 kwargs['button'] = 'Verify Parameters'
943
943
944 c_vel = 3.0*(10**8) # m/s
944 c_vel = 3.0*(10**8) # m/s
945 ope_freq = experiment.freq*(10**6) # 1/s
945 ope_freq = experiment.freq*(10**6) # 1/s
946 radar_lambda = c_vel/ope_freq # m
946 radar_lambda = c_vel/ope_freq # m
947 kwargs['radar_lambda'] = radar_lambda
947 kwargs['radar_lambda'] = radar_lambda
948
948
949 ipp = None
949 ipp = None
950 nsa = 1
950 nsa = 1
951 code_id = 0
951 code_id = 0
952 tx_line = {}
952 tx_line = {}
953
953
954 for configuration in configurations.filter(device__device_type__name = 'rc'):
954 for configuration in configurations.filter(device__device_type__name = 'rc'):
955
955
956 if configuration.mix:
956 if configuration.mix:
957 continue
957 continue
958 conf = {'conf': configuration}
958 conf = {'conf': configuration}
959 conf['keys'] = []
959 conf['keys'] = []
960 conf['NTxs'] = configuration.ntx
960 conf['NTxs'] = configuration.ntx
961 conf['keys'].append('NTxs')
961 conf['keys'].append('NTxs')
962 ipp = configuration.ipp
962 ipp = configuration.ipp
963 conf['IPP'] = ipp
963 conf['IPP'] = ipp
964 conf['keys'].append('IPP')
964 conf['keys'].append('IPP')
965 lines = configuration.get_lines(line_type__name='tx')
965 lines = configuration.get_lines(line_type__name='tx')
966
966
967 for tx_line in lines:
967 for tx_line in lines:
968 tx_params = json.loads(tx_line.params)
968 tx_params = json.loads(tx_line.params)
969 conf[tx_line.get_name()] = '{} Km'.format(tx_params['pulse_width'])
969 conf[tx_line.get_name()] = '{} Km'.format(tx_params['pulse_width'])
970 conf['keys'].append(tx_line.get_name())
970 conf['keys'].append(tx_line.get_name())
971 delays = tx_params['delays']
971 delays = tx_params['delays']
972 if delays not in ('', '0'):
972 if delays not in ('', '0'):
973 n = len(delays.split(','))
973 n = len(delays.split(','))
974 taus = '{} Taus: {}'.format(n, delays)
974 taus = '{} Taus: {}'.format(n, delays)
975 else:
975 else:
976 taus = '-'
976 taus = '-'
977 conf['Taus ({})'.format(tx_line.get_name())] = taus
977 conf['Taus ({})'.format(tx_line.get_name())] = taus
978 conf['keys'].append('Taus ({})'.format(tx_line.get_name()))
978 conf['keys'].append('Taus ({})'.format(tx_line.get_name()))
979 for code_line in configuration.get_lines(line_type__name='codes'):
979 for code_line in configuration.get_lines(line_type__name='codes'):
980 code_params = json.loads(code_line.params)
980 code_params = json.loads(code_line.params)
981 code_id = code_params['code']
981 code_id = code_params['code']
982 if tx_line.pk == int(code_params['TX_ref']):
982 if tx_line.pk == int(code_params['TX_ref']):
983 conf['Code ({})'.format(tx_line.get_name())] = '{}:{}'.format(RCLineCode.objects.get(pk=code_params['code']),
983 conf['Code ({})'.format(tx_line.get_name())] = '{}:{}'.format(RCLineCode.objects.get(pk=code_params['code']),
984 '-'.join(code_params['codes']))
984 '-'.join(code_params['codes']))
985 conf['keys'].append('Code ({})'.format(tx_line.get_name()))
985 conf['keys'].append('Code ({})'.format(tx_line.get_name()))
986
986
987 for windows_line in configuration.get_lines(line_type__name='windows'):
987 for windows_line in configuration.get_lines(line_type__name='windows'):
988 win_params = json.loads(windows_line.params)
988 win_params = json.loads(windows_line.params)
989 if tx_line.pk == int(win_params['TX_ref']):
989 if tx_line.pk == int(win_params['TX_ref']):
990 windows = ''
990 windows = ''
991 nsa = win_params['params'][0]['number_of_samples']
991 nsa = win_params['params'][0]['number_of_samples']
992 for i, params in enumerate(win_params['params']):
992 for i, params in enumerate(win_params['params']):
993 windows += 'W{}: Ho={first_height} km DH={resolution} km NSA={number_of_samples}<br>'.format(
993 windows += 'W{}: Ho={first_height} km DH={resolution} km NSA={number_of_samples}<br>'.format(
994 i, **params)
994 i, **params)
995 conf['Window'] = mark_safe(windows)
995 conf['Window'] = mark_safe(windows)
996 conf['keys'].append('Window')
996 conf['keys'].append('Window')
997
997
998 kwargs['configurations'].append(conf)
998 kwargs['configurations'].append(conf)
999
999
1000 for configuration in configurations.filter(device__device_type__name = 'jars'):
1000 for configuration in configurations.filter(device__device_type__name = 'jars'):
1001
1001
1002 conf = {'conf': configuration}
1002 conf = {'conf': configuration}
1003 conf['keys'] = []
1003 conf['keys'] = []
1004 conf['Type of Data'] = EXPERIMENT_TYPE[configuration.exp_type][1]
1004 conf['Type of Data'] = EXPERIMENT_TYPE[configuration.exp_type][1]
1005 conf['keys'].append('Type of Data')
1005 conf['keys'].append('Type of Data')
1006 channels_number = configuration.channels_number
1006 channels_number = configuration.channels_number
1007 exp_type = configuration.exp_type
1007 exp_type = configuration.exp_type
1008 fftpoints = configuration.fftpoints
1008 fftpoints = configuration.fftpoints
1009 filter_parms = json.loads(configuration.filter_parms)
1009 filter_parms = json.loads(configuration.filter_parms)
1010 spectral_number = configuration.spectral_number
1010 spectral_number = configuration.spectral_number
1011 acq_profiles = configuration.acq_profiles
1011 acq_profiles = configuration.acq_profiles
1012 cohe_integr = configuration.cohe_integr
1012 cohe_integr = configuration.cohe_integr
1013 profiles_block = configuration.profiles_block
1013 profiles_block = configuration.profiles_block
1014
1014
1015 conf['Num of Profiles'] = acq_profiles
1015 conf['Num of Profiles'] = acq_profiles
1016 conf['keys'].append('Num of Profiles')
1016 conf['keys'].append('Num of Profiles')
1017
1017
1018 conf['Prof per Block'] = profiles_block
1018 conf['Prof per Block'] = profiles_block
1019 conf['keys'].append('Prof per Block')
1019 conf['keys'].append('Prof per Block')
1020
1020
1021 conf['Blocks per File'] = configuration.raw_data_blocks
1021 conf['Blocks per File'] = configuration.raw_data_blocks
1022 conf['keys'].append('Blocks per File')
1022 conf['keys'].append('Blocks per File')
1023
1023
1024 if exp_type == 0: # Short
1024 if exp_type == 0: # Short
1025 bytes_ = 2
1025 bytes_ = 2
1026 b = nsa*2*bytes_*channels_number
1026 b = nsa*2*bytes_*channels_number
1027 else: # Float
1027 else: # Float
1028 bytes_ = 4
1028 bytes_ = 4
1029 channels = channels_number + spectral_number
1029 channels = channels_number + spectral_number
1030 b = nsa*2*bytes_*fftpoints*channels
1030 b = nsa*2*bytes_*fftpoints*channels
1031
1031
1032 codes_num = 7
1032 codes_num = 7
1033 if code_id == 2:
1033 if code_id == 2:
1034 codes_num = 7
1034 codes_num = 7
1035 elif code_id == 12:
1035 elif code_id == 12:
1036 codes_num = 15
1036 codes_num = 15
1037
1037
1038 #Jars filter values:
1038 #Jars filter values:
1039
1039
1040 clock = float(filter_parms['clock'])
1040 clock = float(filter_parms['clock'])
1041 filter_2 = int(filter_parms['cic_2'])
1041 filter_2 = int(filter_parms['cic_2'])
1042 filter_5 = int(filter_parms['cic_5'])
1042 filter_5 = int(filter_parms['cic_5'])
1043 filter_fir = int(filter_parms['fir'])
1043 filter_fir = int(filter_parms['fir'])
1044 Fs_MHz = clock/(filter_2*filter_5*filter_fir)
1044 Fs_MHz = clock/(filter_2*filter_5*filter_fir)
1045
1045
1046 #Jars values:
1046 #Jars values:
1047 if ipp is not None:
1047 if ipp is not None:
1048 IPP_units = ipp/0.15*Fs_MHz
1048 IPP_units = ipp/0.15*Fs_MHz
1049 IPP_us = IPP_units / Fs_MHz
1049 IPP_us = IPP_units / Fs_MHz
1050 IPP_s = IPP_units / (Fs_MHz * (10**6))
1050 IPP_s = IPP_units / (Fs_MHz * (10**6))
1051 Ts = 1/(Fs_MHz*(10**6))
1051 Ts = 1/(Fs_MHz*(10**6))
1052
1052
1053 Va = radar_lambda/(4*Ts*cohe_integr)
1053 Va = radar_lambda/(4*Ts*cohe_integr)
1054 rate_bh = ((nsa-codes_num)*channels_number*2 *
1054 rate_bh = ((nsa-codes_num)*channels_number*2 *
1055 bytes_/IPP_us)*(36*(10**8)/cohe_integr)
1055 bytes_/IPP_us)*(36*(10**8)/cohe_integr)
1056 rate_gh = rate_bh/(1024*1024*1024)
1056 rate_gh = rate_bh/(1024*1024*1024)
1057
1057
1058 conf['Time per Block'] = IPP_s * profiles_block * cohe_integr
1058 conf['Time per Block'] = IPP_s * profiles_block * cohe_integr
1059 conf['keys'].append('Time per Block')
1059 conf['keys'].append('Time per Block')
1060 conf['Acq time'] = IPP_s * acq_profiles
1060 conf['Acq time'] = IPP_s * acq_profiles
1061 conf['keys'].append('Acq time')
1061 conf['keys'].append('Acq time')
1062 conf['Data rate'] = str(rate_gh)+" (GB/h)"
1062 conf['Data rate'] = str(rate_gh)+" (GB/h)"
1063 conf['keys'].append('Data rate')
1063 conf['keys'].append('Data rate')
1064 conf['Va (m/s)'] = Va
1064 conf['Va (m/s)'] = Va
1065 conf['keys'].append('Va (m/s)')
1065 conf['keys'].append('Va (m/s)')
1066 conf['Vrange (m/s)'] = 3/(2*IPP_s*cohe_integr)
1066 conf['Vrange (m/s)'] = 3/(2*IPP_s*cohe_integr)
1067 conf['keys'].append('Vrange (m/s)')
1067 conf['keys'].append('Vrange (m/s)')
1068
1068
1069 kwargs['configurations'].append(conf)
1069 kwargs['configurations'].append(conf)
1070 kwargs['menu_experiments'] = 'active'
1070 kwargs['menu_experiments'] = 'active'
1071
1071
1072 ###### SIDEBAR ######
1072 ###### SIDEBAR ######
1073 kwargs.update(sidebar(experiment=experiment))
1073 kwargs.update(sidebar(experiment=experiment))
1074
1074
1075 return render(request, 'experiment_summary.html', kwargs)
1075 return render(request, 'experiment_summary.html', kwargs)
1076
1076
1077
1077
1078 @login_required
1078 @login_required
1079 def experiment_verify(request, id_exp):
1079 def experiment_verify(request, id_exp):
1080
1080
1081 experiment = get_object_or_404(Experiment, pk=id_exp)
1081 experiment = get_object_or_404(Experiment, pk=id_exp)
1082 experiment_data = experiment.parms_to_dict()
1082 experiment_data = experiment.parms_to_dict()
1083 configurations = Configuration.objects.filter(
1083 configurations = Configuration.objects.filter(
1084 experiment=experiment, type=0)
1084 experiment=experiment, type=0)
1085
1085
1086 kwargs = {}
1086 kwargs = {}
1087
1087
1088 kwargs['experiment_keys'] = ['template',
1088 kwargs['experiment_keys'] = ['template',
1089 'radar_system', 'name', 'start_time', 'end_time']
1089 'radar_system', 'name', 'start_time', 'end_time']
1090 kwargs['experiment'] = experiment
1090 kwargs['experiment'] = experiment
1091
1091
1092 kwargs['configuration_keys'] = ['name', 'device__ip_address',
1092 kwargs['configuration_keys'] = ['name', 'device__ip_address',
1093 'device__port_address', 'device__status']
1093 'device__port_address', 'device__status']
1094 kwargs['configurations'] = configurations
1094 kwargs['configurations'] = configurations
1095 kwargs['experiment_data'] = experiment_data
1095 kwargs['experiment_data'] = experiment_data
1096
1096
1097 kwargs['title'] = 'Verify Experiment'
1097 kwargs['title'] = 'Verify Experiment'
1098 kwargs['suptitle'] = 'Parameters'
1098 kwargs['suptitle'] = 'Parameters'
1099
1099
1100 kwargs['button'] = 'Update'
1100 kwargs['button'] = 'Update'
1101
1101
1102 jars_conf = False
1102 jars_conf = False
1103 rc_conf = False
1103 rc_conf = False
1104 dds_conf = False
1104 dds_conf = False
1105
1105
1106 for configuration in configurations:
1106 for configuration in configurations:
1107 #-------------------- JARS -----------------------:
1107 #-------------------- JARS -----------------------:
1108 if configuration.device.device_type.name == 'jars':
1108 if configuration.device.device_type.name == 'jars':
1109 jars_conf = True
1109 jars_conf = True
1110 jars = configuration
1110 jars = configuration
1111 kwargs['jars_conf'] = jars_conf
1111 kwargs['jars_conf'] = jars_conf
1112 filter_parms = json.loads(jars.filter_parms)
1112 filter_parms = json.loads(jars.filter_parms)
1113 kwargs['filter_parms'] = filter_parms
1113 kwargs['filter_parms'] = filter_parms
1114 #--Sampling Frequency
1114 #--Sampling Frequency
1115 clock = filter_parms['clock']
1115 clock = filter_parms['clock']
1116 filter_2 = filter_parms['cic_2']
1116 filter_2 = filter_parms['cic_2']
1117 filter_5 = filter_parms['cic_5']
1117 filter_5 = filter_parms['cic_5']
1118 filter_fir = filter_parms['fir']
1118 filter_fir = filter_parms['fir']
1119 samp_freq_jars = clock/filter_2/filter_5/filter_fir
1119 samp_freq_jars = clock/filter_2/filter_5/filter_fir
1120
1120
1121 kwargs['samp_freq_jars'] = samp_freq_jars
1121 kwargs['samp_freq_jars'] = samp_freq_jars
1122 kwargs['jars'] = configuration
1122 kwargs['jars'] = configuration
1123
1123
1124 #--------------------- RC ----------------------:
1124 #--------------------- RC ----------------------:
1125 if configuration.device.device_type.name == 'rc' and not configuration.mix:
1125 if configuration.device.device_type.name == 'rc' and not configuration.mix:
1126 rc_conf = True
1126 rc_conf = True
1127 rc = configuration
1127 rc = configuration
1128
1128
1129 rc_parms = configuration.parms_to_dict()
1129 rc_parms = configuration.parms_to_dict()
1130
1130
1131 win_lines = rc.get_lines(line_type__name='windows')
1131 win_lines = rc.get_lines(line_type__name='windows')
1132 if win_lines:
1132 if win_lines:
1133 dh = json.loads(win_lines[0].params)['params'][0]['resolution']
1133 dh = json.loads(win_lines[0].params)['params'][0]['resolution']
1134 #--Sampling Frequency
1134 #--Sampling Frequency
1135 samp_freq_rc = 0.15/dh
1135 samp_freq_rc = 0.15/dh
1136 kwargs['samp_freq_rc'] = samp_freq_rc
1136 kwargs['samp_freq_rc'] = samp_freq_rc
1137
1137
1138 kwargs['rc_conf'] = rc_conf
1138 kwargs['rc_conf'] = rc_conf
1139 kwargs['rc'] = configuration
1139 kwargs['rc'] = configuration
1140
1140
1141 #-------------------- DDS ----------------------:
1141 #-------------------- DDS ----------------------:
1142 if configuration.device.device_type.name == 'dds':
1142 if configuration.device.device_type.name == 'dds':
1143 dds_conf = True
1143 dds_conf = True
1144 dds = configuration
1144 dds = configuration
1145 dds_parms = configuration.parms_to_dict()
1145 dds_parms = configuration.parms_to_dict()
1146
1146
1147 kwargs['dds_conf'] = dds_conf
1147 kwargs['dds_conf'] = dds_conf
1148 kwargs['dds'] = configuration
1148 kwargs['dds'] = configuration
1149
1149
1150 #------------Validation------------:
1150 #------------Validation------------:
1151 #Clock
1151 #Clock
1152 if dds_conf and rc_conf and jars_conf:
1152 if dds_conf and rc_conf and jars_conf:
1153 if float(filter_parms['clock']) != float(rc_parms['configurations']['byId'][str(rc.pk)]['clock_in']) and float(rc_parms['configurations']['byId'][str(rc.pk)]['clock_in']) != float(dds_parms['configurations']['byId'][str(dds.pk)]['clock']):
1153 if float(filter_parms['clock']) != float(rc_parms['configurations']['byId'][str(rc.pk)]['clock_in']) and float(rc_parms['configurations']['byId'][str(rc.pk)]['clock_in']) != float(dds_parms['configurations']['byId'][str(dds.pk)]['clock']):
1154 messages.warning(request, "Devices don't have the same clock.")
1154 messages.warning(request, "Devices don't have the same clock.")
1155 elif rc_conf and jars_conf:
1155 elif rc_conf and jars_conf:
1156 if float(filter_parms['clock']) != float(rc_parms['configurations']['byId'][str(rc.pk)]['clock_in']):
1156 if float(filter_parms['clock']) != float(rc_parms['configurations']['byId'][str(rc.pk)]['clock_in']):
1157 messages.warning(request, "Devices don't have the same clock.")
1157 messages.warning(request, "Devices don't have the same clock.")
1158 elif rc_conf and dds_conf:
1158 elif rc_conf and dds_conf:
1159 if float(rc_parms['configurations']['byId'][str(rc.pk)]['clock_in']) != float(dds_parms['configurations']['byId'][str(dds.pk)]['clock']):
1159 if float(rc_parms['configurations']['byId'][str(rc.pk)]['clock_in']) != float(dds_parms['configurations']['byId'][str(dds.pk)]['clock']):
1160 messages.warning(request, "Devices don't have the same clock.")
1160 messages.warning(request, "Devices don't have the same clock.")
1161 if float(samp_freq_rc) != float(dds_parms['configurations']['byId'][str(dds.pk)]['frequencyA']):
1161 if float(samp_freq_rc) != float(dds_parms['configurations']['byId'][str(dds.pk)]['frequencyA']):
1162 messages.warning(
1162 messages.warning(
1163 request, "Devices don't have the same Frequency A.")
1163 request, "Devices don't have the same Frequency A.")
1164
1164
1165 #------------POST METHOD------------:
1165 #------------POST METHOD------------:
1166 if request.method == 'POST':
1166 if request.method == 'POST':
1167 if request.POST['suggest_clock']:
1167 if request.POST['suggest_clock']:
1168 try:
1168 try:
1169 suggest_clock = float(request.POST['suggest_clock'])
1169 suggest_clock = float(request.POST['suggest_clock'])
1170 except:
1170 except:
1171 messages.warning(request, "Invalid value in CLOCK IN.")
1171 messages.warning(request, "Invalid value in CLOCK IN.")
1172 return redirect('url_verify_experiment', id_exp=experiment.id)
1172 return redirect('url_verify_experiment', id_exp=experiment.id)
1173 else:
1173 else:
1174 suggest_clock = ""
1174 suggest_clock = ""
1175 if suggest_clock:
1175 if suggest_clock:
1176 if rc_conf:
1176 if rc_conf:
1177 rc.clock_in = suggest_clock
1177 rc.clock_in = suggest_clock
1178 rc.save()
1178 rc.save()
1179 if jars_conf:
1179 if jars_conf:
1180 filter_parms = jars.filter_parms
1180 filter_parms = jars.filter_parms
1181 filter_parms = ast.literal_eval(filter_parms)
1181 filter_parms = ast.literal_eval(filter_parms)
1182 filter_parms['clock'] = suggest_clock
1182 filter_parms['clock'] = suggest_clock
1183 jars.filter_parms = json.dumps(filter_parms)
1183 jars.filter_parms = json.dumps(filter_parms)
1184 jars.save()
1184 jars.save()
1185 kwargs['filter_parms'] = filter_parms
1185 kwargs['filter_parms'] = filter_parms
1186 if dds_conf:
1186 if dds_conf:
1187 dds.clock = suggest_clock
1187 dds.clock = suggest_clock
1188 dds.save()
1188 dds.save()
1189
1189
1190 if request.POST['suggest_frequencyA']:
1190 if request.POST['suggest_frequencyA']:
1191 try:
1191 try:
1192 suggest_frequencyA = float(request.POST['suggest_frequencyA'])
1192 suggest_frequencyA = float(request.POST['suggest_frequencyA'])
1193 except:
1193 except:
1194 messages.warning(request, "Invalid value in FREQUENCY A.")
1194 messages.warning(request, "Invalid value in FREQUENCY A.")
1195 return redirect('url_verify_experiment', id_exp=experiment.id)
1195 return redirect('url_verify_experiment', id_exp=experiment.id)
1196 else:
1196 else:
1197 suggest_frequencyA = ""
1197 suggest_frequencyA = ""
1198 if suggest_frequencyA:
1198 if suggest_frequencyA:
1199 if jars_conf:
1199 if jars_conf:
1200 filter_parms = jars.filter_parms
1200 filter_parms = jars.filter_parms
1201 filter_parms = ast.literal_eval(filter_parms)
1201 filter_parms = ast.literal_eval(filter_parms)
1202 filter_parms['fch'] = suggest_frequencyA
1202 filter_parms['fch'] = suggest_frequencyA
1203 jars.filter_parms = json.dumps(filter_parms)
1203 jars.filter_parms = json.dumps(filter_parms)
1204 jars.save()
1204 jars.save()
1205 kwargs['filter_parms'] = filter_parms
1205 kwargs['filter_parms'] = filter_parms
1206 if dds_conf:
1206 if dds_conf:
1207 dds.frequencyA_Mhz = request.POST['suggest_frequencyA']
1207 dds.frequencyA_Mhz = request.POST['suggest_frequencyA']
1208 dds.save()
1208 dds.save()
1209
1209
1210 kwargs['menu_experiments'] = 'active'
1210 kwargs['menu_experiments'] = 'active'
1211 kwargs.update(sidebar(experiment=experiment))
1211 kwargs.update(sidebar(experiment=experiment))
1212 return render(request, 'experiment_verify.html', kwargs)
1212 return render(request, 'experiment_verify.html', kwargs)
1213
1213
1214
1214
1215 def parse_mix_result(s):
1215 def parse_mix_result(s):
1216
1216
1217 values = s.split('-')
1217 values = s.split('-')
1218 html = 'EXP MOD OPE DELAY MASK\r\n'
1218 html = 'EXP MOD OPE DELAY MASK\r\n'
1219
1219
1220 if not values or values[0] in ('', ' '):
1220 if not values or values[0] in ('', ' '):
1221 return mark_safe(html)
1221 return mark_safe(html)
1222
1222
1223 for i, value in enumerate(values):
1223 for i, value in enumerate(values):
1224 if not value:
1224 if not value:
1225 continue
1225 continue
1226 pk, mode, operation, delay, mask = value.split('|')
1226 pk, mode, operation, delay, mask = value.split('|')
1227 conf = RCConfiguration.objects.get(pk=pk)
1227 conf = RCConfiguration.objects.get(pk=pk)
1228 if i == 0:
1228 if i == 0:
1229 html += '{:20.18}{:3}{:4}{:9}km{:>6}\r\n'.format(
1229 html += '{:20.18}{:3}{:4}{:9}km{:>6}\r\n'.format(
1230 conf.name,
1230 conf.name,
1231 mode,
1231 mode,
1232 ' ',
1232 ' ',
1233 delay,
1233 delay,
1234 mask)
1234 mask)
1235 else:
1235 else:
1236 html += '{:20.18}{:3}{:4}{:9}km{:>6}\r\n'.format(
1236 html += '{:20.18}{:3}{:4}{:9}km{:>6}\r\n'.format(
1237 conf.name,
1237 conf.name,
1238 mode,
1238 mode,
1239 operation,
1239 operation,
1240 delay,
1240 delay,
1241 mask)
1241 mask)
1242
1242
1243 return mark_safe(html)
1243 return mark_safe(html)
1244
1244
1245
1245
1246 def parse_mask(l):
1246 def parse_mask(l):
1247
1247
1248 values = []
1248 values = []
1249
1249
1250 for x in range(16):
1250 for x in range(16):
1251 if '{}'.format(x) in l:
1251 if '{}'.format(x) in l:
1252 values.append(1)
1252 values.append(1)
1253 else:
1253 else:
1254 values.append(0)
1254 values.append(0)
1255
1255
1256 values.reverse()
1256 values.reverse()
1257
1257
1258 return int(''.join([str(x) for x in values]), 2)
1258 return int(''.join([str(x) for x in values]), 2)
1259
1259
1260
1260
1261 def dev_confs(request):
1261 def dev_confs(request):
1262
1262
1263 page = request.GET.get('page')
1263 page = request.GET.get('page')
1264 order = ('-programmed_date', )
1264 order = ('-programmed_date', )
1265 filters = request.GET.copy()
1265 filters = request.GET.copy()
1266 if 'my configurations' in filters:
1266 if 'my configurations' in filters:
1267 filters.pop('my configurations', None)
1267 filters.pop('my configurations', None)
1268 filters['mine'] = request.user.id
1268 filters['mine'] = request.user.id
1269 kwargs = get_paginator(Configuration, page, order, filters)
1269 kwargs = get_paginator(Configuration, page, order, filters)
1270 fields = ['tags', 'template', 'historical']
1270 fields = ['tags', 'template', 'historical']
1271 if request.user.is_authenticated:
1271 if request.user.is_authenticated:
1272 fields.append('my configurations')
1272 fields.append('my configurations')
1273 form = FilterForm(initial=request.GET, extra_fields=fields)
1273 form = FilterForm(initial=request.GET, extra_fields=fields)
1274 kwargs['keys'] = ['name', 'experiment',
1274 kwargs['keys'] = ['name', 'experiment',
1275 'type', 'programmed_date', 'actions']
1275 'type', 'programmed_date', 'actions']
1276 kwargs['title'] = 'Configuration'
1276 kwargs['title'] = 'Configuration'
1277 kwargs['suptitle'] = 'List'
1277 kwargs['suptitle'] = 'List'
1278 kwargs['no_sidebar'] = True
1278 kwargs['no_sidebar'] = True
1279 kwargs['form'] = form
1279 kwargs['form'] = form
1280 kwargs['add_url'] = reverse('url_add_dev_conf', args=[0])
1280 kwargs['add_url'] = reverse('url_add_dev_conf', args=[0])
1281 filters = request.GET.copy()
1281 filters = request.GET.copy()
1282 filters.pop('page', None)
1282 filters.pop('page', None)
1283 kwargs['q'] = urlencode(filters)
1283 kwargs['q'] = urlencode(filters)
1284 kwargs['menu_configurations'] = 'active'
1284 kwargs['menu_configurations'] = 'active'
1285
1285
1286 return render(request, 'base_list.html', kwargs)
1286 return render(request, 'base_list.html', kwargs)
1287
1287
1288
1288
1289 def dev_conf(request, id_conf):
1289 def dev_conf(request, id_conf):
1290
1290
1291 conf = get_object_or_404(Configuration, pk=id_conf)
1291 conf = get_object_or_404(Configuration, pk=id_conf)
1292
1292
1293 return redirect(conf.get_absolute_url())
1293 return redirect(conf.get_absolute_url())
1294
1294
1295
1295
1296 @login_required
1296 @login_required
1297 def dev_conf_new(request, id_exp=0, id_dev=0):
1297 def dev_conf_new(request, id_exp=0, id_dev=0):
1298
1298
1299 if not is_developer(request.user):
1299 if not is_developer(request.user):
1300 messages.error(
1300 messages.error(
1301 request, 'Developer required, to create new configurations')
1301 request, 'Developer required, to create new configurations')
1302 return redirect('index')
1302 return redirect('index')
1303
1303
1304 initial = {}
1304 initial = {}
1305 kwargs = {}
1305 kwargs = {}
1306
1306
1307 if id_exp != 0:
1307 if id_exp != 0:
1308 initial['experiment'] = id_exp
1308 initial['experiment'] = id_exp
1309
1309
1310 if id_dev != 0:
1310 if id_dev != 0:
1311 initial['device'] = id_dev
1311 initial['device'] = id_dev
1312
1312
1313 if request.method == 'GET':
1313 if request.method == 'GET':
1314
1314
1315 if id_dev:
1315 if id_dev:
1316 kwargs['button'] = 'Create'
1316 kwargs['button'] = 'Create'
1317 device = Device.objects.get(pk=id_dev)
1317 device = Device.objects.get(pk=id_dev)
1318 DevConfForm = CONF_FORMS[device.device_type.name]
1318 DevConfForm = CONF_FORMS[device.device_type.name]
1319 initial['name'] = request.GET['name']
1319 initial['name'] = request.GET['name']
1320 form = DevConfForm(initial=initial)
1320 form = DevConfForm(initial=initial)
1321 else:
1321 else:
1322 if 'template' in request.GET:
1322 if 'template' in request.GET:
1323 if request.GET['template'] == '0':
1323 if request.GET['template'] == '0':
1324 choices = [(conf.pk, '{}'.format(conf))
1324 choices = [(conf.pk, '{}'.format(conf))
1325 for conf in Configuration.objects.filter(template=True)]
1325 for conf in Configuration.objects.filter(template=True)]
1326 form = NewForm(initial={'create_from': 2},
1326 form = NewForm(initial={'create_from': 2},
1327 template_choices=choices)
1327 template_choices=choices)
1328 else:
1328 else:
1329 kwargs['button'] = 'Create'
1329 kwargs['button'] = 'Create'
1330 conf = Configuration.objects.get(
1330 conf = Configuration.objects.get(
1331 pk=request.GET['template'])
1331 pk=request.GET['template'])
1332 id_dev = conf.device.pk
1332 id_dev = conf.device.pk
1333 DevConfForm = CONF_FORMS[conf.device.device_type.name]
1333 DevConfForm = CONF_FORMS[conf.device.device_type.name]
1334 form = DevConfForm(instance=conf,
1334 form = DevConfForm(instance=conf,
1335 initial={'name': '{}_{:%y%m%d}'.format(conf.name, datetime.now()),
1335 initial={'name': '{}_{:%y%m%d}'.format(conf.name, datetime.now()),
1336 'template': False,
1336 'template': False,
1337 'experiment': id_exp})
1337 'experiment': id_exp})
1338 elif 'blank' in request.GET:
1338 elif 'blank' in request.GET:
1339 kwargs['button'] = 'Create'
1339 kwargs['button'] = 'Create'
1340 form = ConfigurationForm(initial=initial)
1340 form = ConfigurationForm(initial=initial)
1341 else:
1341 else:
1342 form = NewForm()
1342 form = NewForm()
1343
1343
1344 if request.method == 'POST':
1344 if request.method == 'POST':
1345
1345
1346 device = Device.objects.get(pk=request.POST['device'])
1346 device = Device.objects.get(pk=request.POST['device'])
1347 DevConfForm = CONF_FORMS[device.device_type.name]
1347 DevConfForm = CONF_FORMS[device.device_type.name]
1348
1348
1349 form = DevConfForm(request.POST)
1349 form = DevConfForm(request.POST)
1350 kwargs['button'] = 'Create'
1350 kwargs['button'] = 'Create'
1351 if form.is_valid():
1351 if form.is_valid():
1352 conf = form.save(commit=False)
1352 conf = form.save(commit=False)
1353 conf.author = request.user
1353 conf.author = request.user
1354 conf.save()
1354 conf.save()
1355
1355
1356 if 'template' in request.GET and conf.device.device_type.name == 'rc':
1356 if 'template' in request.GET and conf.device.device_type.name == 'rc':
1357 lines = RCLine.objects.filter(
1357 lines = RCLine.objects.filter(
1358 rc_configuration=request.GET['template'])
1358 rc_configuration=request.GET['template'])
1359 for line in lines:
1359 for line in lines:
1360 line.clone(rc_configuration=conf)
1360 line.clone(rc_configuration=conf)
1361
1361
1362 new_lines = conf.get_lines()
1362 new_lines = conf.get_lines()
1363 for line in new_lines:
1363 for line in new_lines:
1364 line_params = json.loads(line.params)
1364 line_params = json.loads(line.params)
1365 if 'TX_ref' in line_params:
1365 if 'TX_ref' in line_params:
1366 ref_line = RCLine.objects.get(pk=line_params['TX_ref'])
1366 ref_line = RCLine.objects.get(pk=line_params['TX_ref'])
1367 line_params['TX_ref'] = ['{}'.format(
1367 line_params['TX_ref'] = ['{}'.format(
1368 l.pk) for l in new_lines if l.get_name() == ref_line.get_name()][0]
1368 l.pk) for l in new_lines if l.get_name() == ref_line.get_name()][0]
1369 line.params = json.dumps(line_params)
1369 line.params = json.dumps(line_params)
1370 line.save()
1370 line.save()
1371 elif conf.device.device_type.name == 'rc':
1371 elif conf.device.device_type.name == 'rc':
1372 clk = RCClock(rc_configuration=conf)
1372 clk = RCClock(rc_configuration=conf)
1373 clk.save()
1373 clk.save()
1374
1374
1375 return redirect('url_dev_conf', id_conf=conf.pk)
1375 return redirect('url_dev_conf', id_conf=conf.pk)
1376
1376
1377 kwargs['id_exp'] = id_exp
1377 kwargs['id_exp'] = id_exp
1378 kwargs['form'] = form
1378 kwargs['form'] = form
1379 kwargs['title'] = 'Configuration'
1379 kwargs['title'] = 'Configuration'
1380 kwargs['suptitle'] = 'New'
1380 kwargs['suptitle'] = 'New'
1381 kwargs['menu_configurations'] = 'active'
1381 kwargs['menu_configurations'] = 'active'
1382
1382
1383 if id_dev != 0:
1383 if id_dev != 0:
1384 device = Device.objects.get(pk=id_dev)
1384 device = Device.objects.get(pk=id_dev)
1385 kwargs['device'] = device.device_type.name
1385 kwargs['device'] = device.device_type.name
1386 print(id_exp)
1386 print(id_exp)
1387 return render(request, 'dev_conf_edit.html', kwargs)
1387 return render(request, 'dev_conf_edit.html', kwargs)
1388
1388
1389
1389
1390 @login_required
1390 @login_required
1391 def dev_conf_edit(request, id_conf):
1391 def dev_conf_edit(request, id_conf):
1392
1392
1393 conf = get_object_or_404(Configuration, pk=id_conf)
1393 conf = get_object_or_404(Configuration, pk=id_conf)
1394
1394
1395 DevConfForm = CONF_FORMS[conf.device.device_type.name]
1395 DevConfForm = CONF_FORMS[conf.device.device_type.name]
1396
1396
1397 if request.method == 'GET':
1397 if request.method == 'GET':
1398 form = DevConfForm(instance=conf)
1398 form = DevConfForm(instance=conf)
1399
1399
1400 if request.method == 'POST':
1400 if request.method == 'POST':
1401 form = DevConfForm(request.POST, instance=conf)
1401 form = DevConfForm(request.POST, instance=conf)
1402
1402
1403 if form.is_valid():
1403 if form.is_valid():
1404 form.save()
1404 form.save()
1405 return redirect('url_dev_conf', id_conf=id_conf)
1405 return redirect('url_dev_conf', id_conf=id_conf)
1406
1406
1407 kwargs = {}
1407 kwargs = {}
1408 kwargs['form'] = form
1408 kwargs['form'] = form
1409 kwargs['title'] = 'Device Configuration'
1409 kwargs['title'] = 'Device Configuration'
1410 kwargs['suptitle'] = 'Edit'
1410 kwargs['suptitle'] = 'Edit'
1411 kwargs['button'] = 'Update'
1411 kwargs['button'] = 'Update'
1412 kwargs['menu_configurations'] = 'active'
1412 kwargs['menu_configurations'] = 'active'
1413
1413
1414 ###### SIDEBAR ######
1414 ###### SIDEBAR ######
1415 kwargs.update(sidebar(conf=conf))
1415 kwargs.update(sidebar(conf=conf))
1416
1416
1417 return render(request, '%s_conf_edit.html' % conf.device.device_type.name, kwargs)
1417 return render(request, '%s_conf_edit.html' % conf.device.device_type.name, kwargs)
1418
1418
1419
1419
1420 @login_required
1420 @login_required
1421 def dev_conf_start(request, id_conf):
1421 def dev_conf_start(request, id_conf):
1422
1422
1423 conf = get_object_or_404(Configuration, pk=id_conf)
1423 conf = get_object_or_404(Configuration, pk=id_conf)
1424
1424
1425 if conf.start_device():
1425 if conf.start_device():
1426 messages.success(request, conf.message)
1426 messages.success(request, conf.message)
1427 else:
1427 else:
1428 messages.error(request, conf.message)
1428 messages.error(request, conf.message)
1429
1429
1430 #conf.status_device()
1430 #conf.status_device()
1431
1431
1432 return redirect(conf.get_absolute_url())
1432 return redirect(conf.get_absolute_url())
1433
1433
1434
1434
1435 @login_required
1435 @login_required
1436 def dev_conf_stop(request, id_conf):
1436 def dev_conf_stop(request, id_conf):
1437
1437
1438 conf = get_object_or_404(Configuration, pk=id_conf)
1438 conf = get_object_or_404(Configuration, pk=id_conf)
1439
1439
1440 if conf.stop_device():
1440 if conf.stop_device():
1441 messages.success(request, conf.message)
1441 messages.success(request, conf.message)
1442 else:
1442 else:
1443 messages.error(request, conf.message)
1443 messages.error(request, conf.message)
1444
1444
1445 #conf.status_device()
1445 #conf.status_device()
1446
1446
1447 return redirect(conf.get_absolute_url())
1447 return redirect(conf.get_absolute_url())
1448
1448
1449
1449
1450 @login_required
1450 @login_required
1451 def dev_conf_status(request, id_conf):
1451 def dev_conf_status(request, id_conf):
1452
1452
1453 conf = get_object_or_404(Configuration, pk=id_conf)
1453 conf = get_object_or_404(Configuration, pk=id_conf)
1454
1454
1455 conf_active = Configuration.objects.filter(pk=conf.device.conf_active).first()
1455 conf_active = Configuration.objects.filter(pk=conf.device.conf_active).first()
1456 if conf_active!=conf:
1456 if conf_active!=conf:
1457 url = '#' if conf_active is None else conf_active.get_absolute_url()
1457 url = '#' if conf_active is None else conf_active.get_absolute_url()
1458 label = 'None' if conf_active is None else conf_active.label
1458 label = 'None' if conf_active is None else conf_active.label
1459 messages.warning(
1459 messages.warning(
1460 request,
1460 request,
1461 mark_safe('The current configuration has not been written to device, the active configuration is <a href="{}">{}</a>'.format(
1461 mark_safe('The current configuration has not been written to device, the active configuration is <a href="{}">{}</a>'.format(
1462 url,
1462 url,
1463 label
1463 label
1464 ))
1464 ))
1465 )
1465 )
1466
1466
1467 return redirect(conf.get_absolute_url())
1467 return redirect(conf.get_absolute_url())
1468
1468
1469 if conf.status_device():
1469 if conf.status_device():
1470 messages.success(request, conf.message)
1470 messages.success(request, conf.message)
1471 else:
1471 else:
1472 messages.error(request, conf.message)
1472 messages.error(request, conf.message)
1473
1473
1474 return redirect(conf.get_absolute_url())
1474 return redirect(conf.get_absolute_url())
1475
1475
1476
1476
1477 @login_required
1477 @login_required
1478 def dev_conf_reset(request, id_conf):
1478 def dev_conf_reset(request, id_conf):
1479
1479
1480 conf = get_object_or_404(Configuration, pk=id_conf)
1480 conf = get_object_or_404(Configuration, pk=id_conf)
1481
1481
1482 if conf.reset_device():
1482 if conf.reset_device():
1483 messages.success(request, conf.message)
1483 messages.success(request, conf.message)
1484 else:
1484 else:
1485 messages.error(request, conf.message)
1485 messages.error(request, conf.message)
1486
1486
1487 return redirect(conf.get_absolute_url())
1487 return redirect(conf.get_absolute_url())
1488
1488
1489
1489
1490 @login_required
1490 @login_required
1491 def dev_conf_write(request, id_conf):
1491 def dev_conf_write(request, id_conf):
1492
1492
1493 conf = get_object_or_404(Configuration, pk=id_conf)
1493 conf = get_object_or_404(Configuration, pk=id_conf)
1494
1494
1495 if request.method == 'POST':
1495 if request.method == 'POST':
1496 if conf.write_device():
1496 if conf.write_device():
1497 conf.device.conf_active = conf.pk
1497 conf.device.conf_active = conf.pk
1498 conf.device.save()
1498 conf.device.save()
1499 messages.success(request, conf.message)
1499 messages.success(request, conf.message)
1500 if has_been_modified(conf):
1500 if has_been_modified(conf):
1501 conf.clone(type=1, template=False)
1501 conf.clone(type=1, template=False)
1502 else:
1502 else:
1503 messages.error(request, conf.message)
1503 messages.error(request, conf.message)
1504
1504
1505 return redirect(get_object_or_404(Configuration, pk=id_conf).get_absolute_url())
1505 return redirect(get_object_or_404(Configuration, pk=id_conf).get_absolute_url())
1506
1506
1507 kwargs = {
1507 kwargs = {
1508 'title': 'Write Configuration',
1508 'title': 'Write Configuration',
1509 'suptitle': conf.label,
1509 'suptitle': conf.label,
1510 'message': 'Are you sure yo want to write this {} configuration?'.format(conf.device),
1510 'message': 'Are you sure yo want to write this {} configuration?'.format(conf.device),
1511 'delete': False
1511 'delete': False
1512 }
1512 }
1513 kwargs['menu_configurations'] = 'active'
1513 kwargs['menu_configurations'] = 'active'
1514
1514
1515 return render(request, 'confirm.html', kwargs)
1515 return render(request, 'confirm.html', kwargs)
1516
1516
1517
1517
1518 @login_required
1518 @login_required
1519 def dev_conf_read(request, id_conf):
1519 def dev_conf_read(request, id_conf):
1520
1520
1521 conf = get_object_or_404(Configuration, pk=id_conf)
1521 conf = get_object_or_404(Configuration, pk=id_conf)
1522
1522
1523 DevConfForm = CONF_FORMS[conf.device.device_type.name]
1523 DevConfForm = CONF_FORMS[conf.device.device_type.name]
1524
1524
1525 if request.method == 'GET':
1525 if request.method == 'GET':
1526
1526
1527 parms = conf.read_device()
1527 parms = conf.read_device()
1528 #conf.status_device()
1528 #conf.status_device()
1529
1529
1530 if not parms:
1530 if not parms:
1531 messages.error(request, conf.message)
1531 messages.error(request, conf.message)
1532 return redirect(conf.get_absolute_url())
1532 return redirect(conf.get_absolute_url())
1533
1533
1534 form = DevConfForm(initial=parms, instance=conf)
1534 form = DevConfForm(initial=parms, instance=conf)
1535
1535
1536 if request.method == 'POST':
1536 if request.method == 'POST':
1537 form = DevConfForm(request.POST, instance=conf)
1537 form = DevConfForm(request.POST, instance=conf)
1538
1538
1539 if form.is_valid():
1539 if form.is_valid():
1540 form.save()
1540 form.save()
1541 return redirect(conf.get_absolute_url())
1541 return redirect(conf.get_absolute_url())
1542
1542
1543 messages.error(request, "Parameters could not be saved")
1543 messages.error(request, "Parameters could not be saved")
1544
1544
1545 kwargs = {}
1545 kwargs = {}
1546 kwargs['id_dev'] = conf.id
1546 kwargs['id_dev'] = conf.id
1547 kwargs['form'] = form
1547 kwargs['form'] = form
1548 kwargs['title'] = 'Device Configuration'
1548 kwargs['title'] = 'Device Configuration'
1549 kwargs['suptitle'] = 'Parameters read from device'
1549 kwargs['suptitle'] = 'Parameters read from device'
1550 kwargs['button'] = 'Save'
1550 kwargs['button'] = 'Save'
1551
1551
1552 ###### SIDEBAR ######
1552 ###### SIDEBAR ######
1553 kwargs.update(sidebar(conf=conf))
1553 kwargs.update(sidebar(conf=conf))
1554
1554
1555 return render(request, '%s_conf_edit.html' % conf.device.device_type.name, kwargs)
1555 return render(request, '%s_conf_edit.html' % conf.device.device_type.name, kwargs)
1556
1556
1557
1557
1558 @login_required
1558 @login_required
1559 def dev_conf_import(request, id_conf):
1559 def dev_conf_import(request, id_conf):
1560
1560
1561 conf = get_object_or_404(Configuration, pk=id_conf)
1561 conf = get_object_or_404(Configuration, pk=id_conf)
1562 DevConfForm = CONF_FORMS[conf.device.device_type.name]
1562 DevConfForm = CONF_FORMS[conf.device.device_type.name]
1563
1563
1564 if request.method == 'GET':
1564 if request.method == 'GET':
1565 file_form = UploadFileForm()
1565 file_form = UploadFileForm()
1566
1566
1567 if request.method == 'POST':
1567 if request.method == 'POST':
1568 file_form = UploadFileForm(request.POST, request.FILES)
1568 file_form = UploadFileForm(request.POST, request.FILES)
1569
1569
1570 if file_form.is_valid():
1570 if file_form.is_valid():
1571
1571
1572 data = conf.import_from_file(request.FILES['file'])
1572 data = conf.import_from_file(request.FILES['file'])
1573 parms = Params(data=data).get_conf(
1573 parms = Params(data=data).get_conf(
1574 dtype=conf.device.device_type.name)
1574 dtype=conf.device.device_type.name)
1575
1575
1576 if parms:
1576 if parms:
1577
1577
1578 form = DevConfForm(initial=parms, instance=conf)
1578 form = DevConfForm(initial=parms, instance=conf)
1579
1579
1580 kwargs = {}
1580 kwargs = {}
1581 kwargs['id_dev'] = conf.id
1581 kwargs['id_dev'] = conf.id
1582 kwargs['form'] = form
1582 kwargs['form'] = form
1583 kwargs['title'] = 'Device Configuration'
1583 kwargs['title'] = 'Device Configuration'
1584 kwargs['suptitle'] = 'Parameters imported'
1584 kwargs['suptitle'] = 'Parameters imported'
1585 kwargs['button'] = 'Save'
1585 kwargs['button'] = 'Save'
1586 kwargs['action'] = conf.get_absolute_url_edit()
1586 kwargs['action'] = conf.get_absolute_url_edit()
1587 kwargs['previous'] = conf.get_absolute_url()
1587 kwargs['previous'] = conf.get_absolute_url()
1588
1588
1589 ###### SIDEBAR ######
1589 ###### SIDEBAR ######
1590 kwargs.update(sidebar(conf=conf))
1590 kwargs.update(sidebar(conf=conf))
1591
1591
1592 messages.success(
1592 messages.success(
1593 request, "Parameters imported from: '%s'." % request.FILES['file'].name)
1593 request, "Parameters imported from: '%s'." % request.FILES['file'].name)
1594
1594
1595 return render(request, '%s_conf_edit.html' % conf.device.device_type.name, kwargs)
1595 return render(request, '%s_conf_edit.html' % conf.device.device_type.name, kwargs)
1596
1596
1597 messages.error(request, "Could not import parameters from file")
1597 messages.error(request, "Could not import parameters from file")
1598
1598
1599 kwargs = {}
1599 kwargs = {}
1600 kwargs['id_dev'] = conf.id
1600 kwargs['id_dev'] = conf.id
1601 kwargs['title'] = 'Device Configuration'
1601 kwargs['title'] = 'Device Configuration'
1602 kwargs['form'] = file_form
1602 kwargs['form'] = file_form
1603 kwargs['suptitle'] = 'Importing file'
1603 kwargs['suptitle'] = 'Importing file'
1604 kwargs['button'] = 'Import'
1604 kwargs['button'] = 'Import'
1605 kwargs['menu_configurations'] = 'active'
1605 kwargs['menu_configurations'] = 'active'
1606
1606
1607 kwargs.update(sidebar(conf=conf))
1607 kwargs.update(sidebar(conf=conf))
1608
1608
1609 return render(request, 'dev_conf_import.html', kwargs)
1609 return render(request, 'dev_conf_import.html', kwargs)
1610
1610
1611
1611
1612 @login_required
1612 @login_required
1613 def dev_conf_export(request, id_conf):
1613 def dev_conf_export(request, id_conf):
1614
1614
1615 conf = get_object_or_404(Configuration, pk=id_conf)
1615 conf = get_object_or_404(Configuration, pk=id_conf)
1616
1616
1617 if request.method == 'GET':
1617 if request.method == 'GET':
1618 file_form = DownloadFileForm(conf.device.device_type.name)
1618 file_form = DownloadFileForm(conf.device.device_type.name)
1619
1619
1620 if request.method == 'POST':
1620 if request.method == 'POST':
1621 file_form = DownloadFileForm(
1621 file_form = DownloadFileForm(
1622 conf.device.device_type.name, request.POST)
1622 conf.device.device_type.name, request.POST)
1623
1623
1624 if file_form.is_valid():
1624 if file_form.is_valid():
1625 fields = conf.export_to_file(
1625 fields = conf.export_to_file(
1626 format=file_form.cleaned_data['format'])
1626 format=file_form.cleaned_data['format'])
1627 if not fields['content']:
1627 if not fields['content']:
1628 messages.error(request, conf.message)
1628 messages.error(request, conf.message)
1629 return redirect(conf.get_absolute_url_export())
1629 return redirect(conf.get_absolute_url_export())
1630 response = HttpResponse(content_type=fields['content_type'])
1630 response = HttpResponse(content_type=fields['content_type'])
1631 response['Content-Disposition'] = 'attachment; filename="%s"' % fields['filename']
1631 response['Content-Disposition'] = 'attachment; filename="%s"' % fields['filename']
1632 response.write(fields['content'])
1632 response.write(fields['content'])
1633
1633
1634 return response
1634 return response
1635
1635
1636 messages.error(request, "Could not export parameters")
1636 messages.error(request, "Could not export parameters")
1637
1637
1638 kwargs = {}
1638 kwargs = {}
1639 kwargs['id_dev'] = conf.id
1639 kwargs['id_dev'] = conf.id
1640 kwargs['title'] = 'Device Configuration'
1640 kwargs['title'] = 'Device Configuration'
1641 kwargs['form'] = file_form
1641 kwargs['form'] = file_form
1642 kwargs['suptitle'] = 'Exporting file'
1642 kwargs['suptitle'] = 'Exporting file'
1643 kwargs['button'] = 'Export'
1643 kwargs['button'] = 'Export'
1644 kwargs['menu_configurations'] = 'active'
1644 kwargs['menu_configurations'] = 'active'
1645
1645
1646 return render(request, 'dev_conf_export.html', kwargs)
1646 return render(request, 'dev_conf_export.html', kwargs)
1647
1647
1648
1648
1649 @login_required
1649 @login_required
1650 def dev_conf_delete(request, id_conf):
1650 def dev_conf_delete(request, id_conf):
1651
1651
1652 conf = get_object_or_404(Configuration, pk=id_conf)
1652 conf = get_object_or_404(Configuration, pk=id_conf)
1653
1653
1654 if request.method == 'POST':
1654 if request.method == 'POST':
1655 if is_developer(request.user):
1655 if is_developer(request.user):
1656 conf.delete()
1656 conf.delete()
1657 return redirect('url_dev_confs')
1657 return redirect('url_dev_confs')
1658
1658
1659 messages.error(request, 'Not enough permission to delete this object')
1659 messages.error(request, 'Not enough permission to delete this object')
1660 return redirect(conf.get_absolute_url())
1660 return redirect(conf.get_absolute_url())
1661
1661
1662 kwargs = {
1662 kwargs = {
1663 'title': 'Delete',
1663 'title': 'Delete',
1664 'suptitle': 'Configuration',
1664 'suptitle': 'Configuration',
1665 'object': conf,
1665 'object': conf,
1666 'delete': True
1666 'delete': True
1667 }
1667 }
1668 kwargs['menu_configurations'] = 'active'
1668 kwargs['menu_configurations'] = 'active'
1669
1669
1670 return render(request, 'confirm.html', kwargs)
1670 return render(request, 'confirm.html', kwargs)
1671
1671
1672
1672
1673 def sidebar(**kwargs):
1673 def sidebar(**kwargs):
1674
1674
1675 side_data = {}
1675 side_data = {}
1676
1676
1677 conf = kwargs.get('conf', None)
1677 conf = kwargs.get('conf', None)
1678 experiment = kwargs.get('experiment', None)
1678 experiment = kwargs.get('experiment', None)
1679
1679
1680 if not experiment:
1680 if not experiment:
1681 experiment = conf.experiment
1681 experiment = conf.experiment
1682
1682
1683 if experiment:
1683 if experiment:
1684 side_data['experiment'] = experiment
1684 side_data['experiment'] = experiment
1685 campaign = experiment.campaign_set.all()
1685 campaign = experiment.campaign_set.all()
1686 if campaign:
1686 if campaign:
1687 side_data['campaign'] = campaign[0]
1687 side_data['campaign'] = campaign[0]
1688 experiments = campaign[0].experiments.all().order_by('name')
1688 experiments = campaign[0].experiments.all().order_by('name')
1689 else:
1689 else:
1690 experiments = [experiment]
1690 experiments = [experiment]
1691 configurations = experiment.configuration_set.filter(type=0)
1691 configurations = experiment.configuration_set.filter(type=0)
1692 side_data['side_experiments'] = experiments
1692 side_data['side_experiments'] = experiments
1693 side_data['side_configurations'] = configurations.order_by(
1693 side_data['side_configurations'] = configurations.order_by(
1694 'device__device_type__name')
1694 'device__device_type__name')
1695
1695
1696 return side_data
1696 return side_data
1697
1697
1698
1698
1699 def get_paginator(model, page, order, filters={}, n=8):
1699 def get_paginator(model, page, order, filters={}, n=8):
1700
1700
1701 kwargs = {}
1701 kwargs = {}
1702 query = Q()
1702 query = Q()
1703 if isinstance(filters, QueryDict):
1703 if isinstance(filters, QueryDict):
1704 filters = filters.dict()
1704 filters = filters.dict()
1705 [filters.pop(key) for key in filters.keys() if filters[key] in ('', ' ')]
1705 [filters.pop(key) for key in filters.keys() if filters[key] in ('', ' ')]
1706 filters.pop('page', None)
1706 filters.pop('page', None)
1707
1707
1708 fields = [f.name for f in model._meta.get_fields()]
1708 fields = [f.name for f in model._meta.get_fields()]
1709
1709
1710 if 'template' in filters:
1710 if 'template' in filters:
1711 filters['template'] = True
1711 filters['template'] = True
1712 if 'historical' in filters:
1712 if 'historical' in filters:
1713 filters.pop('historical')
1713 filters.pop('historical')
1714 filters['type'] = 1
1714 filters['type'] = 1
1715 elif 'type' in fields:
1715 elif 'type' in fields:
1716 filters['type'] = 0
1716 filters['type'] = 0
1717 if 'start_date' in filters:
1717 if 'start_date' in filters:
1718 filters['start_date__gte'] = filters.pop('start_date')
1718 filters['start_date__gte'] = filters.pop('start_date')
1719 if 'end_date' in filters:
1719 if 'end_date' in filters:
1720 filters['start_date__lte'] = filters.pop('end_date')
1720 filters['start_date__lte'] = filters.pop('end_date')
1721 if 'tags' in filters:
1721 if 'tags' in filters:
1722 tags = filters.pop('tags')
1722 tags = filters.pop('tags')
1723 if 'tags' in fields:
1723 if 'tags' in fields:
1724 query = query | Q(tags__icontains=tags)
1724 query = query | Q(tags__icontains=tags)
1725 if 'label' in fields:
1725 if 'label' in fields:
1726 query = query | Q(label__icontains=tags)
1726 query = query | Q(label__icontains=tags)
1727 if 'location' in fields:
1727 if 'location' in fields:
1728 query = query | Q(location__name__icontains=tags)
1728 query = query | Q(location__name__icontains=tags)
1729 if 'device' in fields:
1729 if 'device' in fields:
1730 query = query | Q(device__device_type__name__icontains=tags)
1730 query = query | Q(device__device_type__name__icontains=tags)
1731 query = query | Q(device__location__name__icontains=tags)
1731 query = query | Q(device__location__name__icontains=tags)
1732 if 'device_type' in fields:
1732 if 'device_type' in fields:
1733 query = query | Q(device_type__name__icontains=tags)
1733 query = query | Q(device_type__name__icontains=tags)
1734
1734
1735 if 'mine' in filters:
1735 if 'mine' in filters:
1736 filters['author_id'] = filters['mine']
1736 filters['author_id'] = filters['mine']
1737 filters.pop('mine')
1737 filters.pop('mine')
1738 object_list = model.objects.filter(query, **filters).order_by(*order)
1738 object_list = model.objects.filter(query, **filters).order_by(*order)
1739 paginator = Paginator(object_list, n)
1739 paginator = Paginator(object_list, n)
1740
1740
1741 try:
1741 try:
1742 objects = paginator.page(page)
1742 objects = paginator.page(page)
1743 except PageNotAnInteger:
1743 except PageNotAnInteger:
1744 objects = paginator.page(1)
1744 objects = paginator.page(1)
1745 except EmptyPage:
1745 except EmptyPage:
1746 objects = paginator.page(paginator.num_pages)
1746 objects = paginator.page(paginator.num_pages)
1747
1747
1748 kwargs['objects'] = objects
1748 kwargs['objects'] = objects
1749 kwargs['offset'] = (int(page)-1)*n if page else 0
1749 kwargs['offset'] = (int(page)-1)*n if page else 0
1750
1750
1751 return kwargs
1751 return kwargs
1752
1752
1753
1753
1754 def operation(request, id_camp=None):
1754 def operation(request, id_camp=None):
1755
1755
1756 kwargs = {}
1756 kwargs = {}
1757 kwargs['title'] = 'Radars Operation'
1757 kwargs['title'] = 'Radars Operation'
1758 kwargs['no_sidebar'] = True
1758 kwargs['no_sidebar'] = True
1759 kwargs['menu_operation'] = 'active'
1759 kwargs['menu_operation'] = 'active'
1760 campaigns = Campaign.objects.filter(start_date__lte=datetime.now(),
1760 campaigns = Campaign.objects.filter(start_date__lte=datetime.now(),
1761 end_date__gte=datetime.now()).order_by('-start_date')
1761 end_date__gte=datetime.now()).order_by('-start_date')
1762
1762
1763 if id_camp:
1763 if id_camp:
1764 campaign = get_object_or_404(Campaign, pk=id_camp)
1764 campaign = get_object_or_404(Campaign, pk=id_camp)
1765 form = OperationForm(
1765 form = OperationForm(
1766 initial={'campaign': campaign.id}, campaigns=campaigns)
1766 initial={'campaign': campaign.id}, campaigns=campaigns)
1767 kwargs['campaign'] = campaign
1767 kwargs['campaign'] = campaign
1768 else:
1768 else:
1769 # form = OperationForm(campaigns=campaigns)
1769 # form = OperationForm(campaigns=campaigns)
1770 kwargs['campaigns'] = campaigns
1770 kwargs['campaigns'] = campaigns
1771 return render(request, 'operation.html', kwargs)
1771 return render(request, 'operation.html', kwargs)
1772
1772
1773 #---Experiment
1773 #---Experiment
1774 keys = ['id', 'name', 'start_time', 'end_time', 'status']
1774 keys = ['id', 'name', 'start_time', 'end_time', 'status']
1775 kwargs['experiment_keys'] = keys[1:]
1775 kwargs['experiment_keys'] = keys[1:]
1776 kwargs['experiments'] = experiments
1776 kwargs['experiments'] = experiments
1777 #---Radar
1777 #---Radar
1778 kwargs['locations'] = campaign.get_experiments_by_radar()
1778 kwargs['locations'] = campaign.get_experiments_by_radar()
1779 kwargs['form'] = form
1779 kwargs['form'] = form
1780
1780
1781 return render(request, 'operation.html', kwargs)
1781 return render(request, 'operation.html', kwargs)
1782
1782
1783
1783
1784 @login_required
1784 @login_required
1785 def radar_start(request, id_camp, id_radar):
1785 def radar_start(request, id_camp, id_radar):
1786
1786
1787 campaign = get_object_or_404(Campaign, pk=id_camp)
1787 campaign = get_object_or_404(Campaign, pk=id_camp)
1788 experiments = campaign.get_experiments_by_radar(id_radar)[0]['experiments']
1788 experiments = campaign.get_experiments_by_radar(id_radar)[0]['experiments']
1789 now = datetime.now()
1789 now = datetime.now()
1790 for exp in experiments:
1790 for exp in experiments:
1791 start = datetime.combine(datetime.now().date(), exp.start_time)
1791 start = datetime.combine(datetime.now().date(), exp.start_time)
1792 end = datetime.combine(datetime.now().date(), exp.end_time)
1792 end = datetime.combine(datetime.now().date(), exp.end_time)
1793 if end < start:
1793 if end < start:
1794 end += timedelta(1)
1794 end += timedelta(1)
1795
1795
1796 if exp.status == 2:
1796 if exp.status == 2:
1797 messages.warning(
1797 messages.warning(
1798 request, 'Experiment {} already running'.format(exp))
1798 request, 'Experiment {} already running'.format(exp))
1799 continue
1799 continue
1800
1800
1801 if exp.status == 3:
1801 if exp.status == 3:
1802 messages.warning(
1802 messages.warning(
1803 request, 'Experiment {} already programmed'.format(exp))
1803 request, 'Experiment {} already programmed'.format(exp))
1804 continue
1804 continue
1805
1805
1806 if start > campaign.end_date or start < campaign.start_date:
1806 if start > campaign.end_date or start < campaign.start_date:
1807 messages.warning(request, 'Experiment {} out of date'.format(exp))
1807 messages.warning(request, 'Experiment {} out of date'.format(exp))
1808 continue
1808 continue
1809
1809
1810 app.control.revoke(exp.task)
1810 app.control.revoke(exp.task)
1811
1811
1812 if now > start and now <= end:
1812 if now > start and now <= end:
1813 task = task_start.delay(exp.id)
1813 task = task_start.delay(exp.id)
1814 exp.status = task.wait()
1814 exp.status = task.wait()
1815 if exp.status == 0:
1815 if exp.status == 0:
1816 messages.error(request, 'Experiment {} not start'.format(exp))
1816 messages.error(request, 'Experiment {} not start'.format(exp))
1817 if exp.status == 2:
1817 if exp.status == 2:
1818 messages.success(request, 'Experiment {} started'.format(exp))
1818 messages.success(request, 'Experiment {} started'.format(exp))
1819 else:
1819 else:
1820 task = task_start.apply_async(
1820 task = task_start.apply_async(
1821 (exp.pk, ), eta=start+timedelta(hours=5))
1821 (exp.pk, ), eta=start+timedelta(hours=5))
1822 exp.task = task.id
1822 exp.task = task.id
1823 exp.status = 3
1823 exp.status = 3
1824 messages.success(
1824 messages.success(
1825 request, 'Experiment {} programmed to start at {}'.format(exp, start))
1825 request, 'Experiment {} programmed to start at {}'.format(exp, start))
1826
1826
1827 exp.save()
1827 exp.save()
1828
1828
1829 return HttpResponseRedirect(reverse('url_operation', args=[id_camp]))
1829 return HttpResponseRedirect(reverse('url_operation', args=[id_camp]))
1830
1830
1831
1831
1832 @login_required
1832 @login_required
1833 def radar_stop(request, id_camp, id_radar):
1833 def radar_stop(request, id_camp, id_radar):
1834
1834
1835 campaign = get_object_or_404(Campaign, pk=id_camp)
1835 campaign = get_object_or_404(Campaign, pk=id_camp)
1836 experiments = campaign.get_experiments_by_radar(id_radar)[0]['experiments']
1836 experiments = campaign.get_experiments_by_radar(id_radar)[0]['experiments']
1837
1837
1838 for exp in experiments:
1838 for exp in experiments:
1839
1839
1840 if exp.task:
1840 if exp.task:
1841 app.control.revoke(exp.task)
1841 app.control.revoke(exp.task)
1842 if exp.status == 2:
1842 if exp.status == 2:
1843 exp.stop()
1843 exp.stop()
1844 messages.warning(request, 'Experiment {} stopped'.format(exp))
1844 messages.warning(request, 'Experiment {} stopped'.format(exp))
1845 exp.status = 1
1845 exp.status = 1
1846 exp.save()
1846 exp.save()
1847
1847
1848 return HttpResponseRedirect(reverse('url_operation', args=[id_camp]))
1848 return HttpResponseRedirect(reverse('url_operation', args=[id_camp]))
1849
1849
1850
1850
1851 @login_required
1851 @login_required
1852 def radar_refresh(request, id_camp, id_radar):
1852 def radar_refresh(request, id_camp, id_radar):
1853
1853
1854 campaign = get_object_or_404(Campaign, pk=id_camp)
1854 campaign = get_object_or_404(Campaign, pk=id_camp)
1855 experiments = campaign.get_experiments_by_radar(id_radar)[0]['experiments']
1855 experiments = campaign.get_experiments_by_radar(id_radar)[0]['experiments']
1856
1856
1857 i = app.control.inspect()
1857 i = app.control.inspect()
1858 scheduled = i.scheduled().values()[0]
1858 scheduled = i.scheduled().values()[0]
1859 revoked = i.revoked().values()[0]
1859 revoked = i.revoked().values()[0]
1860
1860
1861 for exp in experiments:
1861 for exp in experiments:
1862 if exp.task in revoked:
1862 if exp.task in revoked:
1863 exp.status = 1
1863 exp.status = 1
1864 elif exp.task in [t['request']['id'] for t in scheduled if 'task_stop' in t['request']['name']]:
1864 elif exp.task in [t['request']['id'] for t in scheduled if 'task_stop' in t['request']['name']]:
1865 exp.status = 2
1865 exp.status = 2
1866 elif exp.task in [t['request']['id'] for t in scheduled if 'task_start' in t['request']['name']]:
1866 elif exp.task in [t['request']['id'] for t in scheduled if 'task_start' in t['request']['name']]:
1867 exp.status = 3
1867 exp.status = 3
1868 else:
1868 else:
1869 exp.status = 4
1869 exp.status = 4
1870 exp.save()
1870 exp.save()
1871 return HttpResponseRedirect(reverse('url_operation', args=[id_camp]))
1871 return HttpResponseRedirect(reverse('url_operation', args=[id_camp]))
1872
1872
1873 @login_required
1873 @login_required
1874 def revoke_tasks(request, id_camp):
1874 def revoke_tasks(request, id_camp):
1875
1875
1876 i = app.control.inspect()
1876 i = app.control.inspect()
1877 scheduled = i.scheduled().values()[0]
1877 scheduled = i.scheduled().values()[0]
1878 revoked = i.revoked().values()[0]
1878 revoked = i.revoked().values()[0]
1879
1879
1880 for t in scheduled:
1880 for t in scheduled:
1881 if t['request']['id'] in revoked:
1881 if t['request']['id'] in revoked:
1882 continue
1882 continue
1883 app.control.revoke(t['request']['id'])
1883 app.control.revoke(t['request']['id'])
1884 exp = Experiment.objects.get(pk=eval(t['request']['args'])[0])
1884 exp = Experiment.objects.get(pk=eval(t['request']['args'])[0])
1885 eta = t['eta']
1885 eta = t['eta']
1886 task = t['request']['name'].split('.')[-1]
1886 task = t['request']['name'].split('.')[-1]
1887 messages.warning(request, 'Scheduled {} at {} for experiment {} revoked'.format(task, eta, exp.name))
1887 messages.warning(request, 'Scheduled {} at {} for experiment {} revoked'.format(task, eta, exp.name))
1888
1888
1889 return HttpResponseRedirect(reverse('url_operation', args=[id_camp]))
1889 return HttpResponseRedirect(reverse('url_operation', args=[id_camp]))
1890
1890
1891 @login_required
1891 @login_required
1892 def show_tasks(request, id_camp):
1892 def show_tasks(request, id_camp):
1893
1893
1894 i = app.control.inspect()
1894 i = app.control.inspect()
1895 scheduled = i.scheduled().values()[0]
1895 scheduled = i.scheduled().values()[0]
1896 revoked = i.revoked().values()[0]
1896 revoked = i.revoked().values()[0]
1897
1897
1898 for t in scheduled:
1898 for t in scheduled:
1899 if t['request']['id'] in revoked:
1899 if t['request']['id'] in revoked:
1900 continue
1900 continue
1901 exp = Experiment.objects.get(pk=eval(t['request']['args'])[0])
1901 exp = Experiment.objects.get(pk=eval(t['request']['args'])[0])
1902 eta = t['eta']
1902 eta = t['eta']
1903 task = t['request']['name'].split('.')[-1]
1903 task = t['request']['name'].split('.')[-1]
1904 messages.success(request, 'Task {} scheduled at {} for experiment {}'.format(task, eta, exp.name))
1904 messages.success(request, 'Task {} scheduled at {} for experiment {}'.format(task, eta, exp.name))
1905
1905
1906 return HttpResponseRedirect(reverse('url_operation', args=[id_camp]))
1906 return HttpResponseRedirect(reverse('url_operation', args=[id_camp]))
1907
1907
1908 def real_time(request):
1908 def real_time(request):
1909
1909
1910 graphic_path = "/home/fiorella/Pictures/catwbeanie.jpg"
1910 graphic_path = "/home/fiorella/Pictures/catwbeanie.jpg"
1911
1911
1912 kwargs = {}
1912 kwargs = {}
1913 kwargs['title'] = 'CLAIRE'
1913 kwargs['title'] = 'CLAIRE'
1914 kwargs['suptitle'] = 'Real Time'
1914 kwargs['suptitle'] = 'Real Time'
1915 kwargs['no_sidebar'] = True
1915 kwargs['no_sidebar'] = True
1916 kwargs['graphic_path'] = graphic_path
1916 kwargs['graphic_path'] = graphic_path
1917 kwargs['graphic1_path'] = 'http://www.bluemaize.net/im/girls-accessories/shark-beanie-11.jpg'
1917 kwargs['graphic1_path'] = 'http://www.bluemaize.net/im/girls-accessories/shark-beanie-11.jpg'
1918
1918
1919 return render(request, 'real_time.html', kwargs)
1919 return render(request, 'real_time.html', kwargs)
1920
1920
1921 def theme(request, theme):
1921 def theme(request, theme):
1922
1922
1923 user = request.user
1923 user = request.user
1924 user.profile.theme = theme
1924 user.profile.theme = theme
1925 user.save()
1925 user.save()
1926 return redirect('index')
1926 return redirect('index')
General Comments 0
You need to be logged in to leave comments. Login now