diff --git a/.eslintignore b/.eslintignore index 5afc2441..19f61244 100644 --- a/.eslintignore +++ b/.eslintignore @@ -27,4 +27,6 @@ test/files /public/src/modules/ace-editor.js /public/src/client/account/header.js /public/src/client/test.js -themes/ \ No newline at end of file +themes/ + +report/ diff --git a/.github/workflows/plato.yaml b/.github/workflows/plato.yaml new file mode 100644 index 00000000..33a9b547 --- /dev/null +++ b/.github/workflows/plato.yaml @@ -0,0 +1,83 @@ +name: Plato + +on: + pull_request: + branches: + - main + +defaults: + run: + shell: bash + +permissions: + contents: read + +jobs: + plato1: + permissions: + checks: write + contents: read + name: Plato + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest] + node: [16] + runs-on: ${{ matrix.os }} + env: + TEST_ENV: ${{ matrix.test_env || 'production' }} + + services: + mongo: + image: "mongo:3.7" + ports: + # Maps port 27017 on service container to the host + - 27017:27017 + + steps: + - uses: actions/checkout@v3 + + - run: cp install/package.json package.json + + - name: Install Node + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node }} + + - name: NPM Install + uses: bahmutov/npm-install@v1 + with: + useLockFile: false + + - name: Setup on MongoDB + env: + SETUP: >- + { + "url": "http://127.0.0.1:4567", + "secret": "abcdef", + "admin:username": "admin", + "admin:email": "test@example.org", + "admin:password": "hAN3Eg8W", + "admin:password:confirm": "hAN3Eg8W", + + "database": "mongo", + "mongo:host": "127.0.0.1", + "mongo:port": 27017, + "mongo:username": "", + "mongo:password": "", + "mongo:database": "nodebb" + } + CI: >- + { + "host": "127.0.0.1", + "port": 27017, + "database": "ci_test" + } + run: | + node app --setup="${SETUP}" --ci="${CI}" + + - name: Install Plato + run: npm install -g plato + + - name: Run Plato Tool + run: plato -r -d report public/src/client/topic/postTools.js diff --git a/create_config.sh b/create_config.sh old mode 100755 new mode 100644 index bd9e520f..259acf67 --- a/create_config.sh +++ b/create_config.sh @@ -38,4 +38,3 @@ json_data=$(jq --arg password "$REDIS_PASSWORD" '.redis.password = $password' << echo "$json_data" > "/usr/src/app/config.json" cat /usr/src/app/config.json - diff --git a/report/assets/css/morris.css b/report/assets/css/morris.css new file mode 100644 index 00000000..bc687242 --- /dev/null +++ b/report/assets/css/morris.css @@ -0,0 +1,2 @@ +.morris-hover{position:absolute;z-index:1000;}.morris-hover.morris-default-style{border-radius:10px;padding:6px;color:#666;background:rgba(255, 255, 255, 0.8);border:solid 2px rgba(230, 230, 230, 0.8);font-family:sans-serif;font-size:12px;text-align:center;}.morris-hover.morris-default-style .morris-hover-row-label{font-weight:bold;margin:0.25em 0;} +.morris-hover.morris-default-style .morris-hover-point{white-space:nowrap;margin:0.1em 0;} diff --git a/report/assets/css/plato-display.css b/report/assets/css/plato-display.css new file mode 100644 index 00000000..92f9cb5c --- /dev/null +++ b/report/assets/css/plato-display.css @@ -0,0 +1,88 @@ + +body { + background: #222222; + margin: 20px; +} + +.reportBlock { + background: #34495e; + color: #ecf0f1; + height: 300px; + position: relative; +} + +.chart { + width: 100%; + height: 300px; + position: absolute; + top: 0; left: 0; + z-index: 0; +} + +.reportContent { + z-index: 10; + position: absolute; + top: 0; left: 0; + width: 100%; +} + +h2.reportTitle { + position: absolute; + top: 0; + left: 0; + color: #7F8181; + font-size: 14px; + font-weight: 200; + padding: 10px; + margin: 0; + text-transform: uppercase; + letter-spacing: 1px; +} + +.reportBlock.lineCount { background-color: #272727; } +.reportBlock.maintainability { background-color: #272727; } +.reportBlock.maintainabilityList, +.reportBlock.locList, +.reportBlock.lintList { + background-color: #2A2A2A; + margin-top: 15px; + padding: 20px 5px; +} + +.reportBlock .chart-label { + display: block; + padding-top: 100px; + text-align: center; + color: #7F8181; + font-size: 14px; + font-weight: 200; + text-transform: uppercase; + letter-spacing: 1px; +} + +.reportBlock strong { + display: block; + font-size: 90%; +} + +.reportBlock li { + border-bottom: 1px solid #323232; +} + +.reportBlock h1 { + margin: 0; + font-size: 60px; + text-align: center; +} + +.reportBlock ul { + margin: 15px !important; +} +.reportBlock h3 { + margin: 5px 15px 0; +} + +.reportBlock li { + line-height: 22px; + font-size: 16px; +} diff --git a/report/assets/css/plato-file.css b/report/assets/css/plato-file.css new file mode 100644 index 00000000..2deb00fa --- /dev/null +++ b/report/assets/css/plato-file.css @@ -0,0 +1,88 @@ +.historical .chart { + height: 200px; +} + +.CodeMirror { + height: auto; +} + +.CodeMirror-scroll { + overflow-x: hidden; + overflow-y: hidden; +} +.CodeMirror-lines { + cursor:default; +} + +.plato-mark { + background-color:rgb(212, 250, 236); + border: 1px dashed red; + border-width:1px 0 1px 0; + cursor:pointer; +} + +.plato-mark.focus { + background-color: rgb(235, 250, 166); +} +.plato-mark.active { + background-color: rgb(158, 180, 255); +} + +.plato-mark-start { + border-left-width:1px; + padding-left:1px; +} +.plato-mark-end { + border-right-width:1px; + padding-right:1px; +} +.plato-gutter { +} + +.plato-gutter-icon { + font-size:16px; + cursor:pointer; + color: #800000; + text-align:center; +} + +.plato-gutter-jshint, .plato-gutter-complexity { + width:14px; +} + +.charts { + margin-top:1em; +} + +.charts .header { + font-weight:normal; + text-align:center; +} + +.chart-header { + font-weight:normal; + text-align:center; +} + +.CodeMirror pre { + z-index:4; +} + +.CodeMirror-linewidget { + background-color: hsl(240, 20%, 96%); + font-size:12px; + box-shadow:inset 10px 10px 10px -12px hsl(240, 20%, 17%); + margin-top:10px; + padding-top:5px; + padding-left:5px; + padding-bottom:2px; +} + +.CodeMirror-linewidget ~ .CodeMirror-linewidget{ + box-shadow:inset 10px 0px 10px -12px hsl(240, 20%, 17%); + margin-top:0px; + padding-top:0px; +} + +.plato-line-widget { +} \ No newline at end of file diff --git a/report/assets/css/plato-overview.css b/report/assets/css/plato-overview.css new file mode 100644 index 00000000..c21277e8 --- /dev/null +++ b/report/assets/css/plato-overview.css @@ -0,0 +1,117 @@ +.chart { + margin: 0 auto; + height: 200px; +} + +.overview .chart { + height: 250px; +} + +.historical .chart { + height:200px; +} + +.chart rect { + cursor:pointer; +} + +.file-list li { + border-bottom:1px solid #ccc; + padding-bottom:10px; + padding-top:10px; +} + +.file-list li:nth-child(odd) { + background-color: hsl(0, 0%, 98%); +} + +.fade-left { + background: -moz-linear-gradient(left, rgba(255,255,255,1) 0%, rgba(255,255,255,0) 100%); /* FF3.6+ */ + background: -webkit-gradient(linear, left top, right top, color-stop(0%,rgba(255,255,255,1)), color-stop(100%,rgba(255,255,255,0))); /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(left, rgba(255,255,255,1) 0%,rgba(255,255,255,0) 100%); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(left, rgba(255,255,255,1) 0%,rgba(255,255,255,0) 100%); /* Opera 11.10+ */ + background: -ms-linear-gradient(left, rgba(255,255,255,1) 0%,rgba(255,255,255,0) 100%); /* IE10+ */ + background: linear-gradient(to right, rgba(255,255,255,1) 0%,rgba(255,255,255,0) 100%); /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#00ffffff',GradientType=1 ); /* IE6-9 */ +} + +.file-list li:nth-child(odd) .fade-left { + background: -moz-linear-gradient(left, rgba(249,249,249,1) 0%, rgba(255,255,255,0) 100%); /* FF3.6+ */ + background: -webkit-gradient(linear, left top, right top, color-stop(0%,rgba(249,249,249,1)), color-stop(100%,rgba(255,255,255,0))); /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(left, rgba(249,249,249,1) 0%,rgba(255,255,255,0) 100%); /* Chrome10+,Safari5.1+ */ + background: -o-linear-gradient(left, rgba(249,249,249,1) 0%,rgba(255,255,255,0) 100%); /* Opera 11.10+ */ + background: -ms-linear-gradient(left, rgba(249,249,249,1) 0%,rgba(255,255,255,0) 100%); /* IE10+ */ + background: linear-gradient(to right, rgba(249,249,249,1) 0%,rgba(255,255,255,0) 100%); /* W3C */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f9f9f9', endColorstr='#00ffffff',GradientType=1 ); /* IE6-9 */ +} + +.fadeout { + position: absolute; + height: 50px; + z-index: 10; + float: left; + width:70px +} + +.file { + white-space: nowrap; +} + + +.file-link { + text-align: right; + direction: rtl; + overflow: hidden; + height:40px; + font-size:20px; + color: #334B6D; + display:block; + padding:12px 12px 12px 0; + text-decoration: underline; +} + +.file-link:hover { + color: #3B71B1; +} + +.file-chart label { + width: 75px; + text-align: right; + margin-right: 10px; +} + +.file-chart .chart-value { + margin-left: 3px; + font-size:11px; +} + +.horizontal-bar { + display:inline-block; + height:8px; + border-radius: 0 4px 4px 0; +} + +.threshold-0 .horizontal-bar { + background-color: #01939A; +} +.threshold-1 .horizontal-bar { + background-color: #FFAB00; +} +.threshold-2 .horizontal-bar { + background-color: #FF0700; +} + + +@media (max-width: 767px) { + .file-link { + text-align: center; + } +} + +.complexity, .sloc, .bugs, .lint { + font-weight: normal; +} + +.on { /* marking 'sorting buttons' active */ + font-weight: bold; +} diff --git a/report/assets/css/plato.css b/report/assets/css/plato.css new file mode 100644 index 00000000..625aebc9 --- /dev/null +++ b/report/assets/css/plato.css @@ -0,0 +1,69 @@ + +body { +} + +.navbar { + margin-bottom:0; + padding: 0 20px; + background-color: #f2f2f2; + background-image: none; + border: 1px solid #d4d4d4; + border-radius: 4px; + -webkit-box-shadow: none; + box-shadow: none; + line-height:10px; +} + +.navbar-nav > .active > a { + background-color: rgb(233, 233, 233); +} + +a:visited { + fill:inherit; +} + +.jumbotron { + color:#333; +} + +li { + line-height: 10px; +} + +/* Landscape phone to portrait tablet */ +@media (max-width: 767px) { + .jumbotron h1 { + font-size: 40px; + } +} + +.aggregate-stats { + +} + +.group-header { + text-align:center; +} + + +.aggregate-stats .header { + text-align: center; + color: #5a5a5a; + font-weight:lighter; +} + +.aggregate-stats .stat { + text-align: center; + color: #5a5a5a; + font-size:55px; + line-height:70px; +} + +i.icon[rel=popover] { + font-size:23px; + color: #0088cc; +} + +.popover { + z-index:100000; +} \ No newline at end of file diff --git a/report/assets/css/vendor/bootstrap.css b/report/assets/css/vendor/bootstrap.css new file mode 100755 index 00000000..97fb4747 --- /dev/null +++ b/report/assets/css/vendor/bootstrap.css @@ -0,0 +1,6805 @@ +/*! + * Bootstrap v3.0.0 + * + * Copyright 2013 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world by @mdo and @fat. + */ + +/*! normalize.css v2.1.0 | MIT License | git.io/normalize */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +nav, +section, +summary { + display: block; +} + +audio, +canvas, +video { + display: inline-block; +} + +audio:not([controls]) { + display: none; + height: 0; +} + +[hidden] { + display: none; +} + +html { + font-family: sans-serif; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} + +body { + margin: 0; +} + +a:focus { + outline: thin dotted; +} + +a:active, +a:hover { + outline: 0; +} + +h1 { + margin: 0.67em 0; + font-size: 2em; +} + +abbr[title] { + border-bottom: 1px dotted; +} + +b, +strong { + font-weight: bold; +} + +dfn { + font-style: italic; +} + +hr { + height: 0; + -moz-box-sizing: content-box; + box-sizing: content-box; +} + +mark { + color: #000; + background: #ff0; +} + +code, +kbd, +pre, +samp { + font-family: monospace, serif; + font-size: 1em; +} + +pre { + white-space: pre-wrap; +} + +q { + quotes: "\201C" "\201D" "\2018" "\2019"; +} + +small { + font-size: 80%; +} + +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +img { + border: 0; +} + +svg:not(:root) { + overflow: hidden; +} + +figure { + margin: 0; +} + +fieldset { + padding: 0.35em 0.625em 0.75em; + margin: 0 2px; + border: 1px solid #c0c0c0; +} + +legend { + padding: 0; + border: 0; +} + +button, +input, +select, +textarea { + margin: 0; + font-family: inherit; + font-size: 100%; +} + +button, +input { + line-height: normal; +} + +button, +select { + text-transform: none; +} + +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + cursor: pointer; + -webkit-appearance: button; +} + +button[disabled], +html input[disabled] { + cursor: default; +} + +input[type="checkbox"], +input[type="radio"] { + padding: 0; + box-sizing: border-box; +} + +input[type="search"] { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + -webkit-appearance: textfield; +} + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +button::-moz-focus-inner, +input::-moz-focus-inner { + padding: 0; + border: 0; +} + +textarea { + overflow: auto; + vertical-align: top; +} + +table { + border-collapse: collapse; + border-spacing: 0; +} + +@media print { + * { + color: #000 !important; + text-shadow: none !important; + background: transparent !important; + box-shadow: none !important; + } + a, + a:visited { + text-decoration: underline; + } + a[href]:after { + content: " (" attr(href) ")"; + } + abbr[title]:after { + content: " (" attr(title) ")"; + } + .ir a:after, + a[href^="javascript:"]:after, + a[href^="#"]:after { + content: ""; + } + pre, + blockquote { + border: 1px solid #999; + page-break-inside: avoid; + } + thead { + display: table-header-group; + } + tr, + img { + page-break-inside: avoid; + } + img { + max-width: 100% !important; + } + @page { + margin: 2cm .5cm; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } + .navbar { + display: none; + } + .table td, + .table th { + background-color: #fff !important; + } + .btn > .caret, + .dropup > .btn > .caret { + border-top-color: #000 !important; + } + .label { + border: 1px solid #000; + } + .table { + border-collapse: collapse !important; + } + .table-bordered th, + .table-bordered td { + border: 1px solid #ddd !important; + } +} + +*, +*:before, +*:after { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +html { + font-size: 62.5%; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +body { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 1.428571429; + color: #333333; + background-color: #ffffff; +} + +input, +button, +select, +textarea { + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +button, +input, +select[multiple], +textarea { + background-image: none; +} + +a { + color: #428bca; + text-decoration: none; +} + +a:hover, +a:focus { + color: #2a6496; + text-decoration: underline; +} + +a:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +img { + vertical-align: middle; +} + +.img-responsive { + display: block; + height: auto; + max-width: 100%; +} + +.img-rounded { + border-radius: 6px; +} + +.img-thumbnail { + display: inline-block; + height: auto; + max-width: 100%; + padding: 4px; + line-height: 1.428571429; + background-color: #ffffff; + border: 1px solid #dddddd; + border-radius: 4px; + -webkit-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; +} + +.img-circle { + border-radius: 50%; +} + +hr { + margin-top: 20px; + margin-bottom: 20px; + border: 0; + border-top: 1px solid #eeeeee; +} + +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0 0 0 0); + border: 0; +} + +p { + margin: 0 0 10px; +} + +.lead { + margin-bottom: 20px; + font-size: 16.099999999999998px; + font-weight: 200; + line-height: 1.4; +} + +@media (min-width: 768px) { + .lead { + font-size: 21px; + } +} + +small { + font-size: 85%; +} + +cite { + font-style: normal; +} + +.text-muted { + color: #999999; +} + +.text-primary { + color: #428bca; +} + +.text-warning { + color: #c09853; +} + +.text-danger { + color: #b94a48; +} + +.text-success { + color: #468847; +} + +.text-info { + color: #3a87ad; +} + +.text-left { + text-align: left; +} + +.text-right { + text-align: right; +} + +.text-center { + text-align: center; +} + +h1, +h2, +h3, +h4, +h5, +h6, +.h1, +.h2, +.h3, +.h4, +.h5, +.h6 { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-weight: 500; + line-height: 1.1; +} + +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small, +.h1 small, +.h2 small, +.h3 small, +.h4 small, +.h5 small, +.h6 small { + font-weight: normal; + line-height: 1; + color: #999999; +} + +h1, +h2, +h3 { + margin-top: 20px; + margin-bottom: 10px; +} + +h4, +h5, +h6 { + margin-top: 10px; + margin-bottom: 10px; +} + +h1, +.h1 { + font-size: 36px; +} + +h2, +.h2 { + font-size: 30px; +} + +h3, +.h3 { + font-size: 24px; +} + +h4, +.h4 { + font-size: 18px; +} + +h5, +.h5 { + font-size: 14px; +} + +h6, +.h6 { + font-size: 12px; +} + +h1 small, +.h1 small { + font-size: 24px; +} + +h2 small, +.h2 small { + font-size: 18px; +} + +h3 small, +.h3 small, +h4 small, +.h4 small { + font-size: 14px; +} + +.page-header { + padding-bottom: 9px; + margin: 40px 0 20px; + border-bottom: 1px solid #eeeeee; +} + +ul, +ol { + margin-top: 0; + margin-bottom: 10px; +} + +ul ul, +ol ul, +ul ol, +ol ol { + margin-bottom: 0; +} + +.list-unstyled { + padding-left: 0; + list-style: none; +} + +.list-inline { + padding-left: 0; + list-style: none; +} + +.list-inline > li { + display: inline-block; + padding-right: 5px; + padding-left: 5px; +} + +dl { + margin-bottom: 20px; +} + +dt, +dd { + line-height: 1.428571429; +} + +dt { + font-weight: bold; +} + +dd { + margin-left: 0; +} + +@media (min-width: 768px) { + .dl-horizontal dt { + float: left; + width: 160px; + overflow: hidden; + clear: left; + text-align: right; + text-overflow: ellipsis; + white-space: nowrap; + } + .dl-horizontal dd { + margin-left: 180px; + } + .dl-horizontal dd:before, + .dl-horizontal dd:after { + display: table; + content: " "; + } + .dl-horizontal dd:after { + clear: both; + } + .dl-horizontal dd:before, + .dl-horizontal dd:after { + display: table; + content: " "; + } + .dl-horizontal dd:after { + clear: both; + } +} + +abbr[title], +abbr[data-original-title] { + cursor: help; + border-bottom: 1px dotted #999999; +} + +abbr.initialism { + font-size: 90%; + text-transform: uppercase; +} + +blockquote { + padding: 10px 20px; + margin: 0 0 20px; + border-left: 5px solid #eeeeee; +} + +blockquote p { + font-size: 17.5px; + font-weight: 300; + line-height: 1.25; +} + +blockquote p:last-child { + margin-bottom: 0; +} + +blockquote small { + display: block; + line-height: 1.428571429; + color: #999999; +} + +blockquote small:before { + content: '\2014 \00A0'; +} + +blockquote.pull-right { + padding-right: 15px; + padding-left: 0; + border-right: 5px solid #eeeeee; + border-left: 0; +} + +blockquote.pull-right p, +blockquote.pull-right small { + text-align: right; +} + +blockquote.pull-right small:before { + content: ''; +} + +blockquote.pull-right small:after { + content: '\00A0 \2014'; +} + +q:before, +q:after, +blockquote:before, +blockquote:after { + content: ""; +} + +address { + display: block; + margin-bottom: 20px; + font-style: normal; + line-height: 1.428571429; +} + +code, +pre { + font-family: Monaco, Menlo, Consolas, "Courier New", monospace; +} + +code { + padding: 2px 4px; + font-size: 90%; + color: #c7254e; + white-space: nowrap; + background-color: #f9f2f4; + border-radius: 4px; +} + +pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 1.428571429; + color: #333333; + word-break: break-all; + word-wrap: break-word; + background-color: #f5f5f5; + border: 1px solid #cccccc; + border-radius: 4px; +} + +pre.prettyprint { + margin-bottom: 20px; +} + +pre code { + padding: 0; + font-size: inherit; + color: inherit; + white-space: pre-wrap; + background-color: transparent; + border: 0; +} + +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} + +.container { + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} + +.container:before, +.container:after { + display: table; + content: " "; +} + +.container:after { + clear: both; +} + +.container:before, +.container:after { + display: table; + content: " "; +} + +.container:after { + clear: both; +} + +.row { + margin-right: -15px; + margin-left: -15px; +} + +.row:before, +.row:after { + display: table; + content: " "; +} + +.row:after { + clear: both; +} + +.row:before, +.row:after { + display: table; + content: " "; +} + +.row:after { + clear: both; +} + +.col-xs-1, +.col-xs-2, +.col-xs-3, +.col-xs-4, +.col-xs-5, +.col-xs-6, +.col-xs-7, +.col-xs-8, +.col-xs-9, +.col-xs-10, +.col-xs-11, +.col-xs-12, +.col-sm-1, +.col-sm-2, +.col-sm-3, +.col-sm-4, +.col-sm-5, +.col-sm-6, +.col-sm-7, +.col-sm-8, +.col-sm-9, +.col-sm-10, +.col-sm-11, +.col-sm-12, +.col-md-1, +.col-md-2, +.col-md-3, +.col-md-4, +.col-md-5, +.col-md-6, +.col-md-7, +.col-md-8, +.col-md-9, +.col-md-10, +.col-md-11, +.col-md-12, +.col-lg-1, +.col-lg-2, +.col-lg-3, +.col-lg-4, +.col-lg-5, +.col-lg-6, +.col-lg-7, +.col-lg-8, +.col-lg-9, +.col-lg-10, +.col-lg-11, +.col-lg-12 { + position: relative; + min-height: 1px; + padding-right: 15px; + padding-left: 15px; +} + +.col-xs-1, +.col-xs-2, +.col-xs-3, +.col-xs-4, +.col-xs-5, +.col-xs-6, +.col-xs-7, +.col-xs-8, +.col-xs-9, +.col-xs-10, +.col-xs-11 { + float: left; +} + +.col-xs-1 { + width: 8.333333333333332%; +} + +.col-xs-2 { + width: 16.666666666666664%; +} + +.col-xs-3 { + width: 25%; +} + +.col-xs-4 { + width: 33.33333333333333%; +} + +.col-xs-5 { + width: 41.66666666666667%; +} + +.col-xs-6 { + width: 50%; +} + +.col-xs-7 { + width: 58.333333333333336%; +} + +.col-xs-8 { + width: 66.66666666666666%; +} + +.col-xs-9 { + width: 75%; +} + +.col-xs-10 { + width: 83.33333333333334%; +} + +.col-xs-11 { + width: 91.66666666666666%; +} + +.col-xs-12 { + width: 100%; +} + +@media (min-width: 768px) { + .container { + max-width: 750px; + } + .col-sm-1, + .col-sm-2, + .col-sm-3, + .col-sm-4, + .col-sm-5, + .col-sm-6, + .col-sm-7, + .col-sm-8, + .col-sm-9, + .col-sm-10, + .col-sm-11 { + float: left; + } + .col-sm-1 { + width: 8.333333333333332%; + } + .col-sm-2 { + width: 16.666666666666664%; + } + .col-sm-3 { + width: 25%; + } + .col-sm-4 { + width: 33.33333333333333%; + } + .col-sm-5 { + width: 41.66666666666667%; + } + .col-sm-6 { + width: 50%; + } + .col-sm-7 { + width: 58.333333333333336%; + } + .col-sm-8 { + width: 66.66666666666666%; + } + .col-sm-9 { + width: 75%; + } + .col-sm-10 { + width: 83.33333333333334%; + } + .col-sm-11 { + width: 91.66666666666666%; + } + .col-sm-12 { + width: 100%; + } + .col-sm-push-1 { + left: 8.333333333333332%; + } + .col-sm-push-2 { + left: 16.666666666666664%; + } + .col-sm-push-3 { + left: 25%; + } + .col-sm-push-4 { + left: 33.33333333333333%; + } + .col-sm-push-5 { + left: 41.66666666666667%; + } + .col-sm-push-6 { + left: 50%; + } + .col-sm-push-7 { + left: 58.333333333333336%; + } + .col-sm-push-8 { + left: 66.66666666666666%; + } + .col-sm-push-9 { + left: 75%; + } + .col-sm-push-10 { + left: 83.33333333333334%; + } + .col-sm-push-11 { + left: 91.66666666666666%; + } + .col-sm-pull-1 { + right: 8.333333333333332%; + } + .col-sm-pull-2 { + right: 16.666666666666664%; + } + .col-sm-pull-3 { + right: 25%; + } + .col-sm-pull-4 { + right: 33.33333333333333%; + } + .col-sm-pull-5 { + right: 41.66666666666667%; + } + .col-sm-pull-6 { + right: 50%; + } + .col-sm-pull-7 { + right: 58.333333333333336%; + } + .col-sm-pull-8 { + right: 66.66666666666666%; + } + .col-sm-pull-9 { + right: 75%; + } + .col-sm-pull-10 { + right: 83.33333333333334%; + } + .col-sm-pull-11 { + right: 91.66666666666666%; + } + .col-sm-offset-1 { + margin-left: 8.333333333333332%; + } + .col-sm-offset-2 { + margin-left: 16.666666666666664%; + } + .col-sm-offset-3 { + margin-left: 25%; + } + .col-sm-offset-4 { + margin-left: 33.33333333333333%; + } + .col-sm-offset-5 { + margin-left: 41.66666666666667%; + } + .col-sm-offset-6 { + margin-left: 50%; + } + .col-sm-offset-7 { + margin-left: 58.333333333333336%; + } + .col-sm-offset-8 { + margin-left: 66.66666666666666%; + } + .col-sm-offset-9 { + margin-left: 75%; + } + .col-sm-offset-10 { + margin-left: 83.33333333333334%; + } + .col-sm-offset-11 { + margin-left: 91.66666666666666%; + } +} + +@media (min-width: 992px) { + .container { + max-width: 970px; + } + .col-md-1, + .col-md-2, + .col-md-3, + .col-md-4, + .col-md-5, + .col-md-6, + .col-md-7, + .col-md-8, + .col-md-9, + .col-md-10, + .col-md-11 { + float: left; + } + .col-md-1 { + width: 8.333333333333332%; + } + .col-md-2 { + width: 16.666666666666664%; + } + .col-md-3 { + width: 25%; + } + .col-md-4 { + width: 33.33333333333333%; + } + .col-md-5 { + width: 41.66666666666667%; + } + .col-md-6 { + width: 50%; + } + .col-md-7 { + width: 58.333333333333336%; + } + .col-md-8 { + width: 66.66666666666666%; + } + .col-md-9 { + width: 75%; + } + .col-md-10 { + width: 83.33333333333334%; + } + .col-md-11 { + width: 91.66666666666666%; + } + .col-md-12 { + width: 100%; + } + .col-md-push-0 { + left: auto; + } + .col-md-push-1 { + left: 8.333333333333332%; + } + .col-md-push-2 { + left: 16.666666666666664%; + } + .col-md-push-3 { + left: 25%; + } + .col-md-push-4 { + left: 33.33333333333333%; + } + .col-md-push-5 { + left: 41.66666666666667%; + } + .col-md-push-6 { + left: 50%; + } + .col-md-push-7 { + left: 58.333333333333336%; + } + .col-md-push-8 { + left: 66.66666666666666%; + } + .col-md-push-9 { + left: 75%; + } + .col-md-push-10 { + left: 83.33333333333334%; + } + .col-md-push-11 { + left: 91.66666666666666%; + } + .col-md-pull-0 { + right: auto; + } + .col-md-pull-1 { + right: 8.333333333333332%; + } + .col-md-pull-2 { + right: 16.666666666666664%; + } + .col-md-pull-3 { + right: 25%; + } + .col-md-pull-4 { + right: 33.33333333333333%; + } + .col-md-pull-5 { + right: 41.66666666666667%; + } + .col-md-pull-6 { + right: 50%; + } + .col-md-pull-7 { + right: 58.333333333333336%; + } + .col-md-pull-8 { + right: 66.66666666666666%; + } + .col-md-pull-9 { + right: 75%; + } + .col-md-pull-10 { + right: 83.33333333333334%; + } + .col-md-pull-11 { + right: 91.66666666666666%; + } + .col-md-offset-0 { + margin-left: 0; + } + .col-md-offset-1 { + margin-left: 8.333333333333332%; + } + .col-md-offset-2 { + margin-left: 16.666666666666664%; + } + .col-md-offset-3 { + margin-left: 25%; + } + .col-md-offset-4 { + margin-left: 33.33333333333333%; + } + .col-md-offset-5 { + margin-left: 41.66666666666667%; + } + .col-md-offset-6 { + margin-left: 50%; + } + .col-md-offset-7 { + margin-left: 58.333333333333336%; + } + .col-md-offset-8 { + margin-left: 66.66666666666666%; + } + .col-md-offset-9 { + margin-left: 75%; + } + .col-md-offset-10 { + margin-left: 83.33333333333334%; + } + .col-md-offset-11 { + margin-left: 91.66666666666666%; + } +} + +@media (min-width: 1200px) { + .container { + max-width: 1170px; + } + .col-lg-1, + .col-lg-2, + .col-lg-3, + .col-lg-4, + .col-lg-5, + .col-lg-6, + .col-lg-7, + .col-lg-8, + .col-lg-9, + .col-lg-10, + .col-lg-11 { + float: left; + } + .col-lg-1 { + width: 8.333333333333332%; + } + .col-lg-2 { + width: 16.666666666666664%; + } + .col-lg-3 { + width: 25%; + } + .col-lg-4 { + width: 33.33333333333333%; + } + .col-lg-5 { + width: 41.66666666666667%; + } + .col-lg-6 { + width: 50%; + } + .col-lg-7 { + width: 58.333333333333336%; + } + .col-lg-8 { + width: 66.66666666666666%; + } + .col-lg-9 { + width: 75%; + } + .col-lg-10 { + width: 83.33333333333334%; + } + .col-lg-11 { + width: 91.66666666666666%; + } + .col-lg-12 { + width: 100%; + } + .col-lg-push-0 { + left: auto; + } + .col-lg-push-1 { + left: 8.333333333333332%; + } + .col-lg-push-2 { + left: 16.666666666666664%; + } + .col-lg-push-3 { + left: 25%; + } + .col-lg-push-4 { + left: 33.33333333333333%; + } + .col-lg-push-5 { + left: 41.66666666666667%; + } + .col-lg-push-6 { + left: 50%; + } + .col-lg-push-7 { + left: 58.333333333333336%; + } + .col-lg-push-8 { + left: 66.66666666666666%; + } + .col-lg-push-9 { + left: 75%; + } + .col-lg-push-10 { + left: 83.33333333333334%; + } + .col-lg-push-11 { + left: 91.66666666666666%; + } + .col-lg-pull-0 { + right: auto; + } + .col-lg-pull-1 { + right: 8.333333333333332%; + } + .col-lg-pull-2 { + right: 16.666666666666664%; + } + .col-lg-pull-3 { + right: 25%; + } + .col-lg-pull-4 { + right: 33.33333333333333%; + } + .col-lg-pull-5 { + right: 41.66666666666667%; + } + .col-lg-pull-6 { + right: 50%; + } + .col-lg-pull-7 { + right: 58.333333333333336%; + } + .col-lg-pull-8 { + right: 66.66666666666666%; + } + .col-lg-pull-9 { + right: 75%; + } + .col-lg-pull-10 { + right: 83.33333333333334%; + } + .col-lg-pull-11 { + right: 91.66666666666666%; + } + .col-lg-offset-0 { + margin-left: 0; + } + .col-lg-offset-1 { + margin-left: 8.333333333333332%; + } + .col-lg-offset-2 { + margin-left: 16.666666666666664%; + } + .col-lg-offset-3 { + margin-left: 25%; + } + .col-lg-offset-4 { + margin-left: 33.33333333333333%; + } + .col-lg-offset-5 { + margin-left: 41.66666666666667%; + } + .col-lg-offset-6 { + margin-left: 50%; + } + .col-lg-offset-7 { + margin-left: 58.333333333333336%; + } + .col-lg-offset-8 { + margin-left: 66.66666666666666%; + } + .col-lg-offset-9 { + margin-left: 75%; + } + .col-lg-offset-10 { + margin-left: 83.33333333333334%; + } + .col-lg-offset-11 { + margin-left: 91.66666666666666%; + } +} + +table { + max-width: 100%; + background-color: transparent; +} + +th { + text-align: left; +} + +.table { + width: 100%; + margin-bottom: 20px; +} + +.table thead > tr > th, +.table tbody > tr > th, +.table tfoot > tr > th, +.table thead > tr > td, +.table tbody > tr > td, +.table tfoot > tr > td { + padding: 8px; + line-height: 1.428571429; + vertical-align: top; + border-top: 1px solid #dddddd; +} + +.table thead > tr > th { + vertical-align: bottom; + border-bottom: 2px solid #dddddd; +} + +.table caption + thead tr:first-child th, +.table colgroup + thead tr:first-child th, +.table thead:first-child tr:first-child th, +.table caption + thead tr:first-child td, +.table colgroup + thead tr:first-child td, +.table thead:first-child tr:first-child td { + border-top: 0; +} + +.table tbody + tbody { + border-top: 2px solid #dddddd; +} + +.table .table { + background-color: #ffffff; +} + +.table-condensed thead > tr > th, +.table-condensed tbody > tr > th, +.table-condensed tfoot > tr > th, +.table-condensed thead > tr > td, +.table-condensed tbody > tr > td, +.table-condensed tfoot > tr > td { + padding: 5px; +} + +.table-bordered { + border: 1px solid #dddddd; +} + +.table-bordered > thead > tr > th, +.table-bordered > tbody > tr > th, +.table-bordered > tfoot > tr > th, +.table-bordered > thead > tr > td, +.table-bordered > tbody > tr > td, +.table-bordered > tfoot > tr > td { + border: 1px solid #dddddd; +} + +.table-bordered > thead > tr > th, +.table-bordered > thead > tr > td { + border-bottom-width: 2px; +} + +.table-striped > tbody > tr:nth-child(odd) > td, +.table-striped > tbody > tr:nth-child(odd) > th { + background-color: #f9f9f9; +} + +.table-hover > tbody > tr:hover > td, +.table-hover > tbody > tr:hover > th { + background-color: #f5f5f5; +} + +table col[class*="col-"] { + display: table-column; + float: none; +} + +table td[class*="col-"], +table th[class*="col-"] { + display: table-cell; + float: none; +} + +.table > thead > tr > td.active, +.table > tbody > tr > td.active, +.table > tfoot > tr > td.active, +.table > thead > tr > th.active, +.table > tbody > tr > th.active, +.table > tfoot > tr > th.active, +.table > thead > tr.active > td, +.table > tbody > tr.active > td, +.table > tfoot > tr.active > td, +.table > thead > tr.active > th, +.table > tbody > tr.active > th, +.table > tfoot > tr.active > th { + background-color: #f5f5f5; +} + +.table > thead > tr > td.success, +.table > tbody > tr > td.success, +.table > tfoot > tr > td.success, +.table > thead > tr > th.success, +.table > tbody > tr > th.success, +.table > tfoot > tr > th.success, +.table > thead > tr.success > td, +.table > tbody > tr.success > td, +.table > tfoot > tr.success > td, +.table > thead > tr.success > th, +.table > tbody > tr.success > th, +.table > tfoot > tr.success > th { + background-color: #dff0d8; + border-color: #d6e9c6; +} + +.table-hover > tbody > tr > td.success:hover, +.table-hover > tbody > tr > th.success:hover, +.table-hover > tbody > tr.success:hover > td { + background-color: #d0e9c6; + border-color: #c9e2b3; +} + +.table > thead > tr > td.danger, +.table > tbody > tr > td.danger, +.table > tfoot > tr > td.danger, +.table > thead > tr > th.danger, +.table > tbody > tr > th.danger, +.table > tfoot > tr > th.danger, +.table > thead > tr.danger > td, +.table > tbody > tr.danger > td, +.table > tfoot > tr.danger > td, +.table > thead > tr.danger > th, +.table > tbody > tr.danger > th, +.table > tfoot > tr.danger > th { + background-color: #f2dede; + border-color: #eed3d7; +} + +.table-hover > tbody > tr > td.danger:hover, +.table-hover > tbody > tr > th.danger:hover, +.table-hover > tbody > tr.danger:hover > td { + background-color: #ebcccc; + border-color: #e6c1c7; +} + +.table > thead > tr > td.warning, +.table > tbody > tr > td.warning, +.table > tfoot > tr > td.warning, +.table > thead > tr > th.warning, +.table > tbody > tr > th.warning, +.table > tfoot > tr > th.warning, +.table > thead > tr.warning > td, +.table > tbody > tr.warning > td, +.table > tfoot > tr.warning > td, +.table > thead > tr.warning > th, +.table > tbody > tr.warning > th, +.table > tfoot > tr.warning > th { + background-color: #fcf8e3; + border-color: #fbeed5; +} + +.table-hover > tbody > tr > td.warning:hover, +.table-hover > tbody > tr > th.warning:hover, +.table-hover > tbody > tr.warning:hover > td { + background-color: #faf2cc; + border-color: #f8e5be; +} + +@media (max-width: 768px) { + .table-responsive { + width: 100%; + margin-bottom: 15px; + overflow-x: scroll; + overflow-y: hidden; + border: 1px solid #dddddd; + } + .table-responsive > .table { + margin-bottom: 0; + background-color: #fff; + } + .table-responsive > .table > thead > tr > th, + .table-responsive > .table > tbody > tr > th, + .table-responsive > .table > tfoot > tr > th, + .table-responsive > .table > thead > tr > td, + .table-responsive > .table > tbody > tr > td, + .table-responsive > .table > tfoot > tr > td { + white-space: nowrap; + } + .table-responsive > .table-bordered { + border: 0; + } + .table-responsive > .table-bordered > thead > tr > th:first-child, + .table-responsive > .table-bordered > tbody > tr > th:first-child, + .table-responsive > .table-bordered > tfoot > tr > th:first-child, + .table-responsive > .table-bordered > thead > tr > td:first-child, + .table-responsive > .table-bordered > tbody > tr > td:first-child, + .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-left: 0; + } + .table-responsive > .table-bordered > thead > tr > th:last-child, + .table-responsive > .table-bordered > tbody > tr > th:last-child, + .table-responsive > .table-bordered > tfoot > tr > th:last-child, + .table-responsive > .table-bordered > thead > tr > td:last-child, + .table-responsive > .table-bordered > tbody > tr > td:last-child, + .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-right: 0; + } + .table-responsive > .table-bordered > thead > tr:last-child > th, + .table-responsive > .table-bordered > tbody > tr:last-child > th, + .table-responsive > .table-bordered > tfoot > tr:last-child > th, + .table-responsive > .table-bordered > thead > tr:last-child > td, + .table-responsive > .table-bordered > tbody > tr:last-child > td, + .table-responsive > .table-bordered > tfoot > tr:last-child > td { + border-bottom: 0; + } +} + +fieldset { + padding: 0; + margin: 0; + border: 0; +} + +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 20px; + font-size: 21px; + line-height: inherit; + color: #333333; + border: 0; + border-bottom: 1px solid #e5e5e5; +} + +label { + display: inline-block; + margin-bottom: 5px; + font-weight: bold; +} + +input[type="search"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +input[type="radio"], +input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; + /* IE8-9 */ + + line-height: normal; +} + +input[type="file"] { + display: block; +} + +select[multiple], +select[size] { + height: auto; +} + +select optgroup { + font-family: inherit; + font-size: inherit; + font-style: inherit; +} + +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +input[type="number"]::-webkit-outer-spin-button, +input[type="number"]::-webkit-inner-spin-button { + height: auto; +} + +.form-control:-moz-placeholder { + color: #999999; +} + +.form-control::-moz-placeholder { + color: #999999; +} + +.form-control:-ms-input-placeholder { + color: #999999; +} + +.form-control::-webkit-input-placeholder { + color: #999999; +} + +.form-control { + display: block; + width: 100%; + height: 34px; + padding: 6px 12px; + font-size: 14px; + line-height: 1.428571429; + color: #555555; + vertical-align: middle; + background-color: #ffffff; + border: 1px solid #cccccc; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; + transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; +} + +.form-control:focus { + border-color: #66afe9; + outline: 0; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); +} + +.form-control[disabled], +.form-control[readonly], +fieldset[disabled] .form-control { + cursor: not-allowed; + background-color: #eeeeee; +} + +textarea.form-control { + height: auto; +} + +.form-group { + margin-bottom: 15px; +} + +.radio, +.checkbox { + display: block; + min-height: 20px; + padding-left: 20px; + margin-top: 10px; + margin-bottom: 10px; + vertical-align: middle; +} + +.radio label, +.checkbox label { + display: inline; + margin-bottom: 0; + font-weight: normal; + cursor: pointer; +} + +.radio input[type="radio"], +.radio-inline input[type="radio"], +.checkbox input[type="checkbox"], +.checkbox-inline input[type="checkbox"] { + float: left; + margin-left: -20px; +} + +.radio + .radio, +.checkbox + .checkbox { + margin-top: -5px; +} + +.radio-inline, +.checkbox-inline { + display: inline-block; + padding-left: 20px; + margin-bottom: 0; + font-weight: normal; + vertical-align: middle; + cursor: pointer; +} + +.radio-inline + .radio-inline, +.checkbox-inline + .checkbox-inline { + margin-top: 0; + margin-left: 10px; +} + +input[type="radio"][disabled], +input[type="checkbox"][disabled], +.radio[disabled], +.radio-inline[disabled], +.checkbox[disabled], +.checkbox-inline[disabled], +fieldset[disabled] input[type="radio"], +fieldset[disabled] input[type="checkbox"], +fieldset[disabled] .radio, +fieldset[disabled] .radio-inline, +fieldset[disabled] .checkbox, +fieldset[disabled] .checkbox-inline { + cursor: not-allowed; +} + +.input-sm { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} + +select.input-sm { + height: 30px; + line-height: 30px; +} + +textarea.input-sm { + height: auto; +} + +.input-lg { + height: 45px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; +} + +select.input-lg { + height: 45px; + line-height: 45px; +} + +textarea.input-lg { + height: auto; +} + +.has-warning .help-block, +.has-warning .control-label { + color: #c09853; +} + +.has-warning .form-control { + border-color: #c09853; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.has-warning .form-control:focus { + border-color: #a47e3c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; +} + +.has-warning .input-group-addon { + color: #c09853; + background-color: #fcf8e3; + border-color: #c09853; +} + +.has-error .help-block, +.has-error .control-label { + color: #b94a48; +} + +.has-error .form-control { + border-color: #b94a48; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.has-error .form-control:focus { + border-color: #953b39; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; +} + +.has-error .input-group-addon { + color: #b94a48; + background-color: #f2dede; + border-color: #b94a48; +} + +.has-success .help-block, +.has-success .control-label { + color: #468847; +} + +.has-success .form-control { + border-color: #468847; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.has-success .form-control:focus { + border-color: #356635; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; +} + +.has-success .input-group-addon { + color: #468847; + background-color: #dff0d8; + border-color: #468847; +} + +.form-control-static { + padding-top: 7px; + margin-bottom: 0; +} + +.help-block { + display: block; + margin-top: 5px; + margin-bottom: 10px; + color: #737373; +} + +@media (min-width: 768px) { + .form-inline .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .form-control { + display: inline-block; + } + .form-inline .radio, + .form-inline .checkbox { + display: inline-block; + padding-left: 0; + margin-top: 0; + margin-bottom: 0; + } + .form-inline .radio input[type="radio"], + .form-inline .checkbox input[type="checkbox"] { + float: none; + margin-left: 0; + } +} + +.form-horizontal .control-label, +.form-horizontal .radio, +.form-horizontal .checkbox, +.form-horizontal .radio-inline, +.form-horizontal .checkbox-inline { + padding-top: 7px; + margin-top: 0; + margin-bottom: 0; +} + +.form-horizontal .form-group { + margin-right: -15px; + margin-left: -15px; +} + +.form-horizontal .form-group:before, +.form-horizontal .form-group:after { + display: table; + content: " "; +} + +.form-horizontal .form-group:after { + clear: both; +} + +.form-horizontal .form-group:before, +.form-horizontal .form-group:after { + display: table; + content: " "; +} + +.form-horizontal .form-group:after { + clear: both; +} + +@media (min-width: 768px) { + .form-horizontal .control-label { + text-align: right; + } +} + +.btn { + display: inline-block; + padding: 6px 12px; + margin-bottom: 0; + font-size: 14px; + font-weight: normal; + line-height: 1.428571429; + text-align: center; + white-space: nowrap; + vertical-align: middle; + cursor: pointer; + border: 1px solid transparent; + border-radius: 4px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + -o-user-select: none; + user-select: none; +} + +.btn:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +.btn:hover, +.btn:focus { + color: #333333; + text-decoration: none; +} + +.btn:active, +.btn.active { + background-image: none; + outline: 0; + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} + +.btn.disabled, +.btn[disabled], +fieldset[disabled] .btn { + pointer-events: none; + cursor: not-allowed; + opacity: 0.65; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + box-shadow: none; +} + +.btn-default { + color: #333333; + background-color: #ffffff; + border-color: #cccccc; +} + +.btn-default:hover, +.btn-default:focus, +.btn-default:active, +.btn-default.active, +.open .dropdown-toggle.btn-default { + color: #333333; + background-color: #ebebeb; + border-color: #adadad; +} + +.btn-default:active, +.btn-default.active, +.open .dropdown-toggle.btn-default { + background-image: none; +} + +.btn-default.disabled, +.btn-default[disabled], +fieldset[disabled] .btn-default, +.btn-default.disabled:hover, +.btn-default[disabled]:hover, +fieldset[disabled] .btn-default:hover, +.btn-default.disabled:focus, +.btn-default[disabled]:focus, +fieldset[disabled] .btn-default:focus, +.btn-default.disabled:active, +.btn-default[disabled]:active, +fieldset[disabled] .btn-default:active, +.btn-default.disabled.active, +.btn-default[disabled].active, +fieldset[disabled] .btn-default.active { + background-color: #ffffff; + border-color: #cccccc; +} + +.btn-primary { + color: #ffffff; + background-color: #428bca; + border-color: #357ebd; +} + +.btn-primary:hover, +.btn-primary:focus, +.btn-primary:active, +.btn-primary.active, +.open .dropdown-toggle.btn-primary { + color: #ffffff; + background-color: #3276b1; + border-color: #285e8e; +} + +.btn-primary:active, +.btn-primary.active, +.open .dropdown-toggle.btn-primary { + background-image: none; +} + +.btn-primary.disabled, +.btn-primary[disabled], +fieldset[disabled] .btn-primary, +.btn-primary.disabled:hover, +.btn-primary[disabled]:hover, +fieldset[disabled] .btn-primary:hover, +.btn-primary.disabled:focus, +.btn-primary[disabled]:focus, +fieldset[disabled] .btn-primary:focus, +.btn-primary.disabled:active, +.btn-primary[disabled]:active, +fieldset[disabled] .btn-primary:active, +.btn-primary.disabled.active, +.btn-primary[disabled].active, +fieldset[disabled] .btn-primary.active { + background-color: #428bca; + border-color: #357ebd; +} + +.btn-warning { + color: #ffffff; + background-color: #f0ad4e; + border-color: #eea236; +} + +.btn-warning:hover, +.btn-warning:focus, +.btn-warning:active, +.btn-warning.active, +.open .dropdown-toggle.btn-warning { + color: #ffffff; + background-color: #ed9c28; + border-color: #d58512; +} + +.btn-warning:active, +.btn-warning.active, +.open .dropdown-toggle.btn-warning { + background-image: none; +} + +.btn-warning.disabled, +.btn-warning[disabled], +fieldset[disabled] .btn-warning, +.btn-warning.disabled:hover, +.btn-warning[disabled]:hover, +fieldset[disabled] .btn-warning:hover, +.btn-warning.disabled:focus, +.btn-warning[disabled]:focus, +fieldset[disabled] .btn-warning:focus, +.btn-warning.disabled:active, +.btn-warning[disabled]:active, +fieldset[disabled] .btn-warning:active, +.btn-warning.disabled.active, +.btn-warning[disabled].active, +fieldset[disabled] .btn-warning.active { + background-color: #f0ad4e; + border-color: #eea236; +} + +.btn-danger { + color: #ffffff; + background-color: #d9534f; + border-color: #d43f3a; +} + +.btn-danger:hover, +.btn-danger:focus, +.btn-danger:active, +.btn-danger.active, +.open .dropdown-toggle.btn-danger { + color: #ffffff; + background-color: #d2322d; + border-color: #ac2925; +} + +.btn-danger:active, +.btn-danger.active, +.open .dropdown-toggle.btn-danger { + background-image: none; +} + +.btn-danger.disabled, +.btn-danger[disabled], +fieldset[disabled] .btn-danger, +.btn-danger.disabled:hover, +.btn-danger[disabled]:hover, +fieldset[disabled] .btn-danger:hover, +.btn-danger.disabled:focus, +.btn-danger[disabled]:focus, +fieldset[disabled] .btn-danger:focus, +.btn-danger.disabled:active, +.btn-danger[disabled]:active, +fieldset[disabled] .btn-danger:active, +.btn-danger.disabled.active, +.btn-danger[disabled].active, +fieldset[disabled] .btn-danger.active { + background-color: #d9534f; + border-color: #d43f3a; +} + +.btn-success { + color: #ffffff; + background-color: #5cb85c; + border-color: #4cae4c; +} + +.btn-success:hover, +.btn-success:focus, +.btn-success:active, +.btn-success.active, +.open .dropdown-toggle.btn-success { + color: #ffffff; + background-color: #47a447; + border-color: #398439; +} + +.btn-success:active, +.btn-success.active, +.open .dropdown-toggle.btn-success { + background-image: none; +} + +.btn-success.disabled, +.btn-success[disabled], +fieldset[disabled] .btn-success, +.btn-success.disabled:hover, +.btn-success[disabled]:hover, +fieldset[disabled] .btn-success:hover, +.btn-success.disabled:focus, +.btn-success[disabled]:focus, +fieldset[disabled] .btn-success:focus, +.btn-success.disabled:active, +.btn-success[disabled]:active, +fieldset[disabled] .btn-success:active, +.btn-success.disabled.active, +.btn-success[disabled].active, +fieldset[disabled] .btn-success.active { + background-color: #5cb85c; + border-color: #4cae4c; +} + +.btn-info { + color: #ffffff; + background-color: #5bc0de; + border-color: #46b8da; +} + +.btn-info:hover, +.btn-info:focus, +.btn-info:active, +.btn-info.active, +.open .dropdown-toggle.btn-info { + color: #ffffff; + background-color: #39b3d7; + border-color: #269abc; +} + +.btn-info:active, +.btn-info.active, +.open .dropdown-toggle.btn-info { + background-image: none; +} + +.btn-info.disabled, +.btn-info[disabled], +fieldset[disabled] .btn-info, +.btn-info.disabled:hover, +.btn-info[disabled]:hover, +fieldset[disabled] .btn-info:hover, +.btn-info.disabled:focus, +.btn-info[disabled]:focus, +fieldset[disabled] .btn-info:focus, +.btn-info.disabled:active, +.btn-info[disabled]:active, +fieldset[disabled] .btn-info:active, +.btn-info.disabled.active, +.btn-info[disabled].active, +fieldset[disabled] .btn-info.active { + background-color: #5bc0de; + border-color: #46b8da; +} + +.btn-link { + font-weight: normal; + color: #428bca; + cursor: pointer; + border-radius: 0; +} + +.btn-link, +.btn-link:active, +.btn-link[disabled], +fieldset[disabled] .btn-link { + background-color: transparent; + -webkit-box-shadow: none; + box-shadow: none; +} + +.btn-link, +.btn-link:hover, +.btn-link:focus, +.btn-link:active { + border-color: transparent; +} + +.btn-link:hover, +.btn-link:focus { + color: #2a6496; + text-decoration: underline; + background-color: transparent; +} + +.btn-link[disabled]:hover, +fieldset[disabled] .btn-link:hover, +.btn-link[disabled]:focus, +fieldset[disabled] .btn-link:focus { + color: #999999; + text-decoration: none; +} + +.btn-lg { + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; +} + +.btn-sm, +.btn-xs { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} + +.btn-xs { + padding: 1px 5px; +} + +.btn-block { + display: block; + width: 100%; + padding-right: 0; + padding-left: 0; +} + +.btn-block + .btn-block { + margin-top: 5px; +} + +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} + +.fade { + opacity: 0; + -webkit-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; +} + +.fade.in { + opacity: 1; +} + +.collapse { + display: none; +} + +.collapse.in { + display: block; +} + +.collapsing { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition: height 0.35s ease; + transition: height 0.35s ease; +} + +@font-face { + font-family: 'Glyphicons Halflings'; + src: url('../../../../../../../Downloads/bootstrap-3.0.0/dist/fonts/glyphicons-halflings-regular.eot'); + src: url('../../../../../../../Downloads/bootstrap-3.0.0/dist/fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../../../../../../../Downloads/bootstrap-3.0.0/dist/fonts/glyphicons-halflings-regular.woff') format('woff'), url('../../../../../../../Downloads/bootstrap-3.0.0/dist/fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../../../../../../../Downloads/bootstrap-3.0.0/dist/fonts/glyphicons-halflings-regular.svg#glyphicons-halflingsregular') format('svg'); +} + +.glyphicon { + position: relative; + top: 1px; + display: inline-block; + font-family: 'Glyphicons Halflings'; + -webkit-font-smoothing: antialiased; + font-style: normal; + font-weight: normal; + line-height: 1; +} + +.glyphicon-asterisk:before { + content: "\2a"; +} + +.glyphicon-plus:before { + content: "\2b"; +} + +.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-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-print:before { + content: "\e045"; +} + +.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-eye-open:before { + content: "\e105"; +} + +.glyphicon-eye-close:before { + content: "\e106"; +} + +.glyphicon-warning-sign:before { + content: "\e107"; +} + +.glyphicon-plane:before { + content: "\e108"; +} + +.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-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-tasks:before { + content: "\e137"; +} + +.glyphicon-filter:before { + content: "\e138"; +} + +.glyphicon-fullscreen:before { + content: "\e140"; +} + +.glyphicon-dashboard:before { + content: "\e141"; +} + +.glyphicon-heart-empty:before { + content: "\e143"; +} + +.glyphicon-link:before { + content: "\e144"; +} + +.glyphicon-phone:before { + content: "\e145"; +} + +.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-briefcase:before { + content: "\1f4bc"; +} + +.glyphicon-calendar:before { + content: "\1f4c5"; +} + +.glyphicon-pushpin:before { + content: "\1f4cc"; +} + +.glyphicon-paperclip:before { + content: "\1f4ce"; +} + +.glyphicon-camera:before { + content: "\1f4f7"; +} + +.glyphicon-lock:before { + content: "\1f512"; +} + +.glyphicon-bell:before { + content: "\1f514"; +} + +.glyphicon-bookmark:before { + content: "\1f516"; +} + +.glyphicon-fire:before { + content: "\1f525"; +} + +.glyphicon-wrench:before { + content: "\1f527"; +} + +.caret { + display: inline-block; + width: 0; + height: 0; + margin-left: 2px; + vertical-align: middle; + border-top: 4px solid #000000; + border-right: 4px solid transparent; + border-bottom: 0 dotted; + border-left: 4px solid transparent; + content: ""; +} + +.dropdown { + position: relative; +} + +.dropdown-toggle:focus { + outline: 0; +} + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + font-size: 14px; + list-style: none; + background-color: #ffffff; + border: 1px solid #cccccc; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 4px; + -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); + background-clip: padding-box; +} + +.dropdown-menu.pull-right { + right: 0; + left: auto; +} + +.dropdown-menu .divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5; +} + +.dropdown-menu > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: 1.428571429; + color: #333333; + white-space: nowrap; +} + +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus { + color: #ffffff; + text-decoration: none; + background-color: #428bca; +} + +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + color: #ffffff; + text-decoration: none; + background-color: #428bca; + outline: 0; +} + +.dropdown-menu > .disabled > a, +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + color: #999999; +} + +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + text-decoration: none; + cursor: not-allowed; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.open > .dropdown-menu { + display: block; +} + +.open > a { + outline: 0; +} + +.dropdown-header { + display: block; + padding: 3px 20px; + font-size: 12px; + line-height: 1.428571429; + color: #999999; +} + +.dropdown-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 990; +} + +.pull-right > .dropdown-menu { + right: 0; + left: auto; +} + +.dropup .caret, +.navbar-fixed-bottom .dropdown .caret { + border-top: 0 dotted; + border-bottom: 4px solid #000000; + content: ""; +} + +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 1px; +} + +@media (min-width: 768px) { + .navbar-right .dropdown-menu { + right: 0; + left: auto; + } +} + +.btn-default .caret { + border-top-color: #333333; +} + +.btn-primary .caret, +.btn-success .caret, +.btn-warning .caret, +.btn-danger .caret, +.btn-info .caret { + border-top-color: #fff; +} + +.dropup .btn-default .caret { + border-bottom-color: #333333; +} + +.dropup .btn-primary .caret, +.dropup .btn-success .caret, +.dropup .btn-warning .caret, +.dropup .btn-danger .caret, +.dropup .btn-info .caret { + border-bottom-color: #fff; +} + +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-block; + vertical-align: middle; +} + +.btn-group > .btn, +.btn-group-vertical > .btn { + position: relative; + float: left; +} + +.btn-group > .btn:hover, +.btn-group-vertical > .btn:hover, +.btn-group > .btn:focus, +.btn-group-vertical > .btn:focus, +.btn-group > .btn:active, +.btn-group-vertical > .btn:active, +.btn-group > .btn.active, +.btn-group-vertical > .btn.active { + z-index: 2; +} + +.btn-group > .btn:focus, +.btn-group-vertical > .btn:focus { + outline: none; +} + +.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:before, +.btn-toolbar:after { + display: table; + content: " "; +} + +.btn-toolbar:after { + clear: both; +} + +.btn-toolbar:before, +.btn-toolbar:after { + display: table; + content: " "; +} + +.btn-toolbar:after { + clear: both; +} + +.btn-toolbar .btn-group { + float: left; +} + +.btn-toolbar > .btn + .btn, +.btn-toolbar > .btn-group + .btn, +.btn-toolbar > .btn + .btn-group, +.btn-toolbar > .btn-group + .btn-group { + margin-left: 5px; +} + +.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { + border-radius: 0; +} + +.btn-group > .btn:first-child { + margin-left: 0; +} + +.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.btn-group > .btn:last-child:not(:first-child), +.btn-group > .dropdown-toggle:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} + +.btn-group > .btn-group { + float: left; +} + +.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} + +.btn-group > .btn-group:first-child > .btn:last-child, +.btn-group > .btn-group:first-child > .dropdown-toggle { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.btn-group > .btn-group:last-child > .btn:first-child { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} + +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} + +.btn-group-xs > .btn { + padding: 5px 10px; + padding: 1px 5px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} + +.btn-group-sm > .btn { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} + +.btn-group-lg > .btn { + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; +} + +.btn-group > .btn + .dropdown-toggle { + padding-right: 8px; + padding-left: 8px; +} + +.btn-group > .btn-lg + .dropdown-toggle { + padding-right: 12px; + padding-left: 12px; +} + +.btn-group.open .dropdown-toggle { + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} + +.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 { + display: block; + float: none; + width: 100%; + max-width: 100%; +} + +.btn-group-vertical > .btn-group:before, +.btn-group-vertical > .btn-group:after { + display: table; + content: " "; +} + +.btn-group-vertical > .btn-group:after { + clear: both; +} + +.btn-group-vertical > .btn-group:before, +.btn-group-vertical > .btn-group:after { + display: table; + content: " "; +} + +.btn-group-vertical > .btn-group:after { + clear: both; +} + +.btn-group-vertical > .btn-group > .btn { + float: none; +} + +.btn-group-vertical > .btn + .btn, +.btn-group-vertical > .btn + .btn-group, +.btn-group-vertical > .btn-group + .btn, +.btn-group-vertical > .btn-group + .btn-group { + margin-top: -1px; + margin-left: 0; +} + +.btn-group-vertical > .btn:not(:first-child):not(:last-child) { + border-radius: 0; +} + +.btn-group-vertical > .btn:first-child:not(:last-child) { + border-top-right-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.btn-group-vertical > .btn:last-child:not(:first-child) { + border-top-right-radius: 0; + border-bottom-left-radius: 4px; + 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 > .btn:last-child, +.btn-group-vertical > .btn-group:first-child > .dropdown-toggle { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.btn-group-vertical > .btn-group:last-child > .btn:first-child { + border-top-right-radius: 0; + border-top-left-radius: 0; +} + +.btn-group-justified { + display: table; + width: 100%; + border-collapse: separate; + table-layout: fixed; +} + +.btn-group-justified .btn { + display: table-cell; + float: none; + width: 1%; +} + +[data-toggle="buttons"] > .btn > input[type="radio"], +[data-toggle="buttons"] > .btn > input[type="checkbox"] { + display: none; +} + +.input-group { + position: relative; + display: table; + border-collapse: separate; +} + +.input-group.col { + float: none; + padding-right: 0; + padding-left: 0; +} + +.input-group .form-control { + width: 100%; + margin-bottom: 0; +} + +.input-group-lg > .form-control, +.input-group-lg > .input-group-addon, +.input-group-lg > .input-group-btn > .btn { + height: 45px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; +} + +select.input-group-lg > .form-control, +select.input-group-lg > .input-group-addon, +select.input-group-lg > .input-group-btn > .btn { + height: 45px; + line-height: 45px; +} + +textarea.input-group-lg > .form-control, +textarea.input-group-lg > .input-group-addon, +textarea.input-group-lg > .input-group-btn > .btn { + height: auto; +} + +.input-group-sm > .form-control, +.input-group-sm > .input-group-addon, +.input-group-sm > .input-group-btn > .btn { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} + +select.input-group-sm > .form-control, +select.input-group-sm > .input-group-addon, +select.input-group-sm > .input-group-btn > .btn { + height: 30px; + line-height: 30px; +} + +textarea.input-group-sm > .form-control, +textarea.input-group-sm > .input-group-addon, +textarea.input-group-sm > .input-group-btn > .btn { + height: auto; +} + +.input-group-addon, +.input-group-btn, +.input-group .form-control { + display: table-cell; +} + +.input-group-addon:not(:first-child):not(:last-child), +.input-group-btn:not(:first-child):not(:last-child), +.input-group .form-control:not(:first-child):not(:last-child) { + border-radius: 0; +} + +.input-group-addon, +.input-group-btn { + width: 1%; + white-space: nowrap; + vertical-align: middle; +} + +.input-group-addon { + padding: 6px 12px; + font-size: 14px; + font-weight: normal; + line-height: 1; + text-align: center; + background-color: #eeeeee; + border: 1px solid #cccccc; + border-radius: 4px; +} + +.input-group-addon.input-sm { + padding: 5px 10px; + font-size: 12px; + border-radius: 3px; +} + +.input-group-addon.input-lg { + padding: 10px 16px; + font-size: 18px; + border-radius: 6px; +} + +.input-group-addon input[type="radio"], +.input-group-addon input[type="checkbox"] { + margin-top: 0; +} + +.input-group .form-control:first-child, +.input-group-addon:first-child, +.input-group-btn:first-child > .btn, +.input-group-btn:first-child > .dropdown-toggle, +.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.input-group-addon:first-child { + border-right: 0; +} + +.input-group .form-control:last-child, +.input-group-addon:last-child, +.input-group-btn:last-child > .btn, +.input-group-btn:last-child > .dropdown-toggle, +.input-group-btn:first-child > .btn:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} + +.input-group-addon:last-child { + border-left: 0; +} + +.input-group-btn { + position: relative; + white-space: nowrap; +} + +.input-group-btn > .btn { + position: relative; +} + +.input-group-btn > .btn + .btn { + margin-left: -4px; +} + +.input-group-btn > .btn:hover, +.input-group-btn > .btn:active { + z-index: 2; +} + +.nav { + padding-left: 0; + margin-bottom: 0; + list-style: none; +} + +.nav:before, +.nav:after { + display: table; + content: " "; +} + +.nav:after { + clear: both; +} + +.nav:before, +.nav:after { + display: table; + content: " "; +} + +.nav:after { + clear: both; +} + +.nav > li { + position: relative; + display: block; +} + +.nav > li > a { + position: relative; + display: block; + padding: 10px 15px; +} + +.nav > li > a:hover, +.nav > li > a:focus { + text-decoration: none; + background-color: #eeeeee; +} + +.nav > li.disabled > a { + color: #999999; +} + +.nav > li.disabled > a:hover, +.nav > li.disabled > a:focus { + color: #999999; + text-decoration: none; + cursor: not-allowed; + background-color: transparent; +} + +.nav .open > a, +.nav .open > a:hover, +.nav .open > a:focus { + background-color: #eeeeee; + border-color: #428bca; +} + +.nav .nav-divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5; +} + +.nav > li > a > img { + max-width: none; +} + +.nav-tabs { + border-bottom: 1px solid #dddddd; +} + +.nav-tabs > li { + float: left; + margin-bottom: -1px; +} + +.nav-tabs > li > a { + margin-right: 2px; + line-height: 1.428571429; + border: 1px solid transparent; + border-radius: 4px 4px 0 0; +} + +.nav-tabs > li > a:hover { + border-color: #eeeeee #eeeeee #dddddd; +} + +.nav-tabs > li.active > a, +.nav-tabs > li.active > a:hover, +.nav-tabs > li.active > a:focus { + color: #555555; + cursor: default; + background-color: #ffffff; + border: 1px solid #dddddd; + border-bottom-color: transparent; +} + +.nav-tabs.nav-justified { + width: 100%; + border-bottom: 0; +} + +.nav-tabs.nav-justified > li { + float: none; +} + +.nav-tabs.nav-justified > li > a { + text-align: center; +} + +@media (min-width: 768px) { + .nav-tabs.nav-justified > li { + display: table-cell; + width: 1%; + } +} + +.nav-tabs.nav-justified > li > a { + margin-right: 0; + border-bottom: 1px solid #dddddd; +} + +.nav-tabs.nav-justified > .active > a { + border-bottom-color: #ffffff; +} + +.nav-pills > li { + float: left; +} + +.nav-pills > li > a { + border-radius: 5px; +} + +.nav-pills > li + li { + margin-left: 2px; +} + +.nav-pills > li.active > a, +.nav-pills > li.active > a:hover, +.nav-pills > li.active > a:focus { + color: #ffffff; + background-color: #428bca; +} + +.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; +} + +@media (min-width: 768px) { + .nav-justified > li { + display: table-cell; + width: 1%; + } +} + +.nav-tabs-justified { + border-bottom: 0; +} + +.nav-tabs-justified > li > a { + margin-right: 0; + border-bottom: 1px solid #dddddd; +} + +.nav-tabs-justified > .active > a { + border-bottom-color: #ffffff; +} + +.tabbable:before, +.tabbable:after { + display: table; + content: " "; +} + +.tabbable:after { + clear: both; +} + +.tabbable:before, +.tabbable:after { + display: table; + content: " "; +} + +.tabbable:after { + clear: both; +} + +.tab-content > .tab-pane, +.pill-content > .pill-pane { + display: none; +} + +.tab-content > .active, +.pill-content > .active { + display: block; +} + +.nav .caret { + border-top-color: #428bca; + border-bottom-color: #428bca; +} + +.nav a:hover .caret { + border-top-color: #2a6496; + border-bottom-color: #2a6496; +} + +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-right-radius: 0; + border-top-left-radius: 0; +} + +.navbar { + position: relative; + z-index: 1000; + min-height: 50px; + margin-bottom: 20px; + border: 1px solid transparent; +} + +.navbar:before, +.navbar:after { + display: table; + content: " "; +} + +.navbar:after { + clear: both; +} + +.navbar:before, +.navbar:after { + display: table; + content: " "; +} + +.navbar:after { + clear: both; +} + +@media (min-width: 768px) { + .navbar { + border-radius: 4px; + } +} + +.navbar-header:before, +.navbar-header:after { + display: table; + content: " "; +} + +.navbar-header:after { + clear: both; +} + +.navbar-header:before, +.navbar-header:after { + display: table; + content: " "; +} + +.navbar-header:after { + clear: both; +} + +@media (min-width: 768px) { + .navbar-header { + float: left; + } +} + +.navbar-collapse { + max-height: 340px; + padding-right: 15px; + padding-left: 15px; + overflow-x: visible; + border-top: 1px solid transparent; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); + -webkit-overflow-scrolling: touch; +} + +.navbar-collapse:before, +.navbar-collapse:after { + display: table; + content: " "; +} + +.navbar-collapse:after { + clear: both; +} + +.navbar-collapse:before, +.navbar-collapse:after { + display: table; + content: " "; +} + +.navbar-collapse:after { + clear: both; +} + +.navbar-collapse.in { + overflow-y: auto; +} + +@media (min-width: 768px) { + .navbar-collapse { + width: auto; + border-top: 0; + box-shadow: none; + } + .navbar-collapse.collapse { + display: block !important; + height: auto !important; + padding-bottom: 0; + overflow: visible !important; + } + .navbar-collapse.in { + overflow-y: visible; + } + .navbar-collapse .navbar-nav.navbar-left:first-child { + margin-left: -15px; + } + .navbar-collapse .navbar-nav.navbar-right:last-child { + margin-right: -15px; + } + .navbar-collapse .navbar-text:last-child { + margin-right: 0; + } +} + +.container > .navbar-header, +.container > .navbar-collapse { + margin-right: -15px; + margin-left: -15px; +} + +@media (min-width: 768px) { + .container > .navbar-header, + .container > .navbar-collapse { + margin-right: 0; + margin-left: 0; + } +} + +.navbar-static-top { + border-width: 0 0 1px; +} + +@media (min-width: 768px) { + .navbar-static-top { + border-radius: 0; + } +} + +.navbar-fixed-top, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + border-width: 0 0 1px; +} + +@media (min-width: 768px) { + .navbar-fixed-top, + .navbar-fixed-bottom { + border-radius: 0; + } +} + +.navbar-fixed-top { + top: 0; + z-index: 1030; +} + +.navbar-fixed-bottom { + bottom: 0; + margin-bottom: 0; +} + +.navbar-brand { + float: left; + padding: 15px 15px; + font-size: 18px; + line-height: 20px; +} + +.navbar-brand:hover, +.navbar-brand:focus { + text-decoration: none; +} + +@media (min-width: 768px) { + .navbar > .container .navbar-brand { + margin-left: -15px; + } +} + +.navbar-toggle { + position: relative; + float: right; + padding: 9px 10px; + margin-top: 8px; + margin-right: 15px; + margin-bottom: 8px; + background-color: transparent; + border: 1px solid transparent; + border-radius: 4px; +} + +.navbar-toggle .icon-bar { + display: block; + width: 22px; + height: 2px; + border-radius: 1px; +} + +.navbar-toggle .icon-bar + .icon-bar { + margin-top: 4px; +} + +@media (min-width: 768px) { + .navbar-toggle { + display: none; + } +} + +.navbar-nav { + margin: 7.5px -15px; +} + +.navbar-nav > li > a { + padding-top: 10px; + padding-bottom: 10px; + line-height: 20px; +} + +@media (max-width: 767px) { + .navbar-nav .open .dropdown-menu { + position: static; + float: none; + width: auto; + margin-top: 0; + background-color: transparent; + border: 0; + box-shadow: none; + } + .navbar-nav .open .dropdown-menu > li > a, + .navbar-nav .open .dropdown-menu .dropdown-header { + padding: 5px 15px 5px 25px; + } + .navbar-nav .open .dropdown-menu > li > a { + line-height: 20px; + } + .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-nav .open .dropdown-menu > li > a:focus { + background-image: none; + } +} + +@media (min-width: 768px) { + .navbar-nav { + float: left; + margin: 0; + } + .navbar-nav > li { + float: left; + } + .navbar-nav > li > a { + padding-top: 15px; + padding-bottom: 15px; + } +} + +@media (min-width: 768px) { + .navbar-left { + float: left !important; + } + .navbar-right { + float: right !important; + } +} + +.navbar-form { + padding: 10px 15px; + margin-top: 8px; + margin-right: -15px; + margin-bottom: 8px; + margin-left: -15px; + border-top: 1px solid transparent; + border-bottom: 1px solid transparent; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); +} + +@media (min-width: 768px) { + .navbar-form .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .form-control { + display: inline-block; + } + .navbar-form .radio, + .navbar-form .checkbox { + display: inline-block; + padding-left: 0; + margin-top: 0; + margin-bottom: 0; + } + .navbar-form .radio input[type="radio"], + .navbar-form .checkbox input[type="checkbox"] { + float: none; + margin-left: 0; + } +} + +@media (max-width: 767px) { + .navbar-form .form-group { + margin-bottom: 5px; + } +} + +@media (min-width: 768px) { + .navbar-form { + width: auto; + padding-top: 0; + padding-bottom: 0; + margin-right: 0; + margin-left: 0; + border: 0; + -webkit-box-shadow: none; + box-shadow: none; + } +} + +.navbar-nav > li > .dropdown-menu { + margin-top: 0; + border-top-right-radius: 0; + border-top-left-radius: 0; +} + +.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.navbar-nav.pull-right > li > .dropdown-menu, +.navbar-nav > li > .dropdown-menu.pull-right { + right: 0; + left: auto; +} + +.navbar-btn { + margin-top: 8px; + margin-bottom: 8px; +} + +.navbar-text { + float: left; + margin-top: 15px; + margin-bottom: 15px; +} + +@media (min-width: 768px) { + .navbar-text { + margin-right: 15px; + margin-left: 15px; + } +} + +.navbar-default { + background-color: #f8f8f8; + border-color: #e7e7e7; +} + +.navbar-default .navbar-brand { + color: #777777; +} + +.navbar-default .navbar-brand:hover, +.navbar-default .navbar-brand:focus { + color: #5e5e5e; + background-color: transparent; +} + +.navbar-default .navbar-text { + color: #777777; +} + +.navbar-default .navbar-nav > li > a { + color: #777777; +} + +.navbar-default .navbar-nav > li > a:hover, +.navbar-default .navbar-nav > li > a:focus { + color: #333333; + background-color: transparent; +} + +.navbar-default .navbar-nav > .active > a, +.navbar-default .navbar-nav > .active > a:hover, +.navbar-default .navbar-nav > .active > a:focus { + color: #555555; + background-color: #e7e7e7; +} + +.navbar-default .navbar-nav > .disabled > a, +.navbar-default .navbar-nav > .disabled > a:hover, +.navbar-default .navbar-nav > .disabled > a:focus { + color: #cccccc; + background-color: transparent; +} + +.navbar-default .navbar-toggle { + border-color: #dddddd; +} + +.navbar-default .navbar-toggle:hover, +.navbar-default .navbar-toggle:focus { + background-color: #dddddd; +} + +.navbar-default .navbar-toggle .icon-bar { + background-color: #cccccc; +} + +.navbar-default .navbar-collapse, +.navbar-default .navbar-form { + border-color: #e6e6e6; +} + +.navbar-default .navbar-nav > .dropdown > a:hover .caret, +.navbar-default .navbar-nav > .dropdown > a:focus .caret { + border-top-color: #333333; + border-bottom-color: #333333; +} + +.navbar-default .navbar-nav > .open > a, +.navbar-default .navbar-nav > .open > a:hover, +.navbar-default .navbar-nav > .open > a:focus { + color: #555555; + background-color: #e7e7e7; +} + +.navbar-default .navbar-nav > .open > a .caret, +.navbar-default .navbar-nav > .open > a:hover .caret, +.navbar-default .navbar-nav > .open > a:focus .caret { + border-top-color: #555555; + border-bottom-color: #555555; +} + +.navbar-default .navbar-nav > .dropdown > a .caret { + border-top-color: #777777; + border-bottom-color: #777777; +} + +@media (max-width: 767px) { + .navbar-default .navbar-nav .open .dropdown-menu > li > a { + color: #777777; + } + .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { + color: #333333; + background-color: transparent; + } + .navbar-default .navbar-nav .open .dropdown-menu > .active > a, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #555555; + background-color: #e7e7e7; + } + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { + color: #cccccc; + background-color: transparent; + } +} + +.navbar-default .navbar-link { + color: #777777; +} + +.navbar-default .navbar-link:hover { + color: #333333; +} + +.navbar-inverse { + background-color: #222222; + border-color: #080808; +} + +.navbar-inverse .navbar-brand { + color: #999999; +} + +.navbar-inverse .navbar-brand:hover, +.navbar-inverse .navbar-brand:focus { + color: #ffffff; + background-color: transparent; +} + +.navbar-inverse .navbar-text { + color: #999999; +} + +.navbar-inverse .navbar-nav > li > a { + color: #999999; +} + +.navbar-inverse .navbar-nav > li > a:hover, +.navbar-inverse .navbar-nav > li > a:focus { + color: #ffffff; + background-color: transparent; +} + +.navbar-inverse .navbar-nav > .active > a, +.navbar-inverse .navbar-nav > .active > a:hover, +.navbar-inverse .navbar-nav > .active > a:focus { + color: #ffffff; + background-color: #080808; +} + +.navbar-inverse .navbar-nav > .disabled > a, +.navbar-inverse .navbar-nav > .disabled > a:hover, +.navbar-inverse .navbar-nav > .disabled > a:focus { + color: #444444; + background-color: transparent; +} + +.navbar-inverse .navbar-toggle { + border-color: #333333; +} + +.navbar-inverse .navbar-toggle:hover, +.navbar-inverse .navbar-toggle:focus { + background-color: #333333; +} + +.navbar-inverse .navbar-toggle .icon-bar { + background-color: #ffffff; +} + +.navbar-inverse .navbar-collapse, +.navbar-inverse .navbar-form { + border-color: #101010; +} + +.navbar-inverse .navbar-nav > .open > a, +.navbar-inverse .navbar-nav > .open > a:hover, +.navbar-inverse .navbar-nav > .open > a:focus { + color: #ffffff; + background-color: #080808; +} + +.navbar-inverse .navbar-nav > .dropdown > a:hover .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.navbar-inverse .navbar-nav > .dropdown > a .caret { + border-top-color: #999999; + border-bottom-color: #999999; +} + +.navbar-inverse .navbar-nav > .open > a .caret, +.navbar-inverse .navbar-nav > .open > a:hover .caret, +.navbar-inverse .navbar-nav > .open > a:focus .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +@media (max-width: 767px) { + .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { + border-color: #080808; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { + color: #999999; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { + color: #ffffff; + background-color: transparent; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #ffffff; + background-color: #080808; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { + color: #444444; + background-color: transparent; + } +} + +.navbar-inverse .navbar-link { + color: #999999; +} + +.navbar-inverse .navbar-link:hover { + color: #ffffff; +} + +.breadcrumb { + padding: 8px 15px; + margin-bottom: 20px; + list-style: none; + background-color: #f5f5f5; + border-radius: 4px; +} + +.breadcrumb > li { + display: inline-block; +} + +.breadcrumb > li + li:before { + padding: 0 5px; + color: #cccccc; + content: "/\00a0"; +} + +.breadcrumb > .active { + color: #999999; +} + +.pagination { + display: inline-block; + padding-left: 0; + margin: 20px 0; + border-radius: 4px; +} + +.pagination > li { + display: inline; +} + +.pagination > li > a, +.pagination > li > span { + position: relative; + float: left; + padding: 6px 12px; + margin-left: -1px; + line-height: 1.428571429; + text-decoration: none; + background-color: #ffffff; + border: 1px solid #dddddd; +} + +.pagination > li:first-child > a, +.pagination > li:first-child > span { + margin-left: 0; + border-bottom-left-radius: 4px; + border-top-left-radius: 4px; +} + +.pagination > li:last-child > a, +.pagination > li:last-child > span { + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; +} + +.pagination > li > a:hover, +.pagination > li > span:hover, +.pagination > li > a:focus, +.pagination > li > span:focus { + background-color: #eeeeee; +} + +.pagination > .active > a, +.pagination > .active > span, +.pagination > .active > a:hover, +.pagination > .active > span:hover, +.pagination > .active > a:focus, +.pagination > .active > span:focus { + z-index: 2; + color: #ffffff; + cursor: default; + background-color: #428bca; + border-color: #428bca; +} + +.pagination > .disabled > span, +.pagination > .disabled > a, +.pagination > .disabled > a:hover, +.pagination > .disabled > a:focus { + color: #999999; + cursor: not-allowed; + background-color: #ffffff; + border-color: #dddddd; +} + +.pagination-lg > li > a, +.pagination-lg > li > span { + padding: 10px 16px; + font-size: 18px; +} + +.pagination-lg > li:first-child > a, +.pagination-lg > li:first-child > span { + border-bottom-left-radius: 6px; + border-top-left-radius: 6px; +} + +.pagination-lg > li:last-child > a, +.pagination-lg > li:last-child > span { + border-top-right-radius: 6px; + border-bottom-right-radius: 6px; +} + +.pagination-sm > li > a, +.pagination-sm > li > span { + padding: 5px 10px; + font-size: 12px; +} + +.pagination-sm > li:first-child > a, +.pagination-sm > li:first-child > span { + border-bottom-left-radius: 3px; + border-top-left-radius: 3px; +} + +.pagination-sm > li:last-child > a, +.pagination-sm > li:last-child > span { + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; +} + +.pager { + padding-left: 0; + margin: 20px 0; + text-align: center; + list-style: none; +} + +.pager:before, +.pager:after { + display: table; + content: " "; +} + +.pager:after { + clear: both; +} + +.pager:before, +.pager:after { + display: table; + content: " "; +} + +.pager:after { + clear: both; +} + +.pager li { + display: inline; +} + +.pager li > a, +.pager li > span { + display: inline-block; + padding: 5px 14px; + background-color: #ffffff; + border: 1px solid #dddddd; + border-radius: 15px; +} + +.pager li > a:hover, +.pager li > a:focus { + text-decoration: none; + background-color: #eeeeee; +} + +.pager .next > a, +.pager .next > span { + float: right; +} + +.pager .previous > a, +.pager .previous > span { + float: left; +} + +.pager .disabled > a, +.pager .disabled > a:hover, +.pager .disabled > a:focus, +.pager .disabled > span { + color: #999999; + cursor: not-allowed; + background-color: #ffffff; +} + +.label { + display: inline; + padding: .2em .6em .3em; + font-size: 75%; + font-weight: bold; + line-height: 1; + color: #ffffff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: .25em; +} + +.label[href]:hover, +.label[href]:focus { + color: #ffffff; + text-decoration: none; + cursor: pointer; +} + +.label:empty { + display: none; +} + +.label-default { + background-color: #999999; +} + +.label-default[href]:hover, +.label-default[href]:focus { + background-color: #808080; +} + +.label-primary { + background-color: #428bca; +} + +.label-primary[href]:hover, +.label-primary[href]:focus { + background-color: #3071a9; +} + +.label-success { + background-color: #5cb85c; +} + +.label-success[href]:hover, +.label-success[href]:focus { + background-color: #449d44; +} + +.label-info { + background-color: #5bc0de; +} + +.label-info[href]:hover, +.label-info[href]:focus { + background-color: #31b0d5; +} + +.label-warning { + background-color: #f0ad4e; +} + +.label-warning[href]:hover, +.label-warning[href]:focus { + background-color: #ec971f; +} + +.label-danger { + background-color: #d9534f; +} + +.label-danger[href]:hover, +.label-danger[href]:focus { + background-color: #c9302c; +} + +.badge { + display: inline-block; + min-width: 10px; + padding: 3px 7px; + font-size: 12px; + font-weight: bold; + line-height: 1; + color: #ffffff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + background-color: #999999; + border-radius: 10px; +} + +.badge:empty { + display: none; +} + +a.badge:hover, +a.badge:focus { + color: #ffffff; + text-decoration: none; + cursor: pointer; +} + +.btn .badge { + position: relative; + top: -1px; +} + +a.list-group-item.active > .badge, +.nav-pills > .active > a > .badge { + color: #428bca; + background-color: #ffffff; +} + +.nav-pills > li > a > .badge { + margin-left: 3px; +} + +.jumbotron { + padding: 30px; + margin-bottom: 30px; + font-size: 21px; + font-weight: 200; + line-height: 2.1428571435; + color: inherit; + background-color: #eeeeee; +} + +.jumbotron h1 { + line-height: 1; + color: inherit; +} + +.jumbotron p { + line-height: 1.4; +} + +.container .jumbotron { + border-radius: 6px; +} + +@media screen and (min-width: 768px) { + .jumbotron { + padding-top: 48px; + padding-bottom: 48px; + } + .container .jumbotron { + padding-right: 60px; + padding-left: 60px; + } + .jumbotron h1 { + font-size: 63px; + } +} + +.thumbnail { + display: inline-block; + display: block; + height: auto; + max-width: 100%; + padding: 4px; + line-height: 1.428571429; + background-color: #ffffff; + border: 1px solid #dddddd; + border-radius: 4px; + -webkit-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; +} + +.thumbnail > img { + display: block; + height: auto; + max-width: 100%; +} + +a.thumbnail:hover, +a.thumbnail:focus { + border-color: #428bca; +} + +.thumbnail > img { + margin-right: auto; + margin-left: auto; +} + +.thumbnail .caption { + padding: 9px; + color: #333333; +} + +.alert { + padding: 15px; + margin-bottom: 20px; + border: 1px solid transparent; + border-radius: 4px; +} + +.alert h4 { + margin-top: 0; + color: inherit; +} + +.alert .alert-link { + font-weight: bold; +} + +.alert > p, +.alert > ul { + margin-bottom: 0; +} + +.alert > p + p { + margin-top: 5px; +} + +.alert-dismissable { + padding-right: 35px; +} + +.alert-dismissable .close { + position: relative; + top: -2px; + right: -21px; + color: inherit; +} + +.alert-success { + color: #468847; + background-color: #dff0d8; + border-color: #d6e9c6; +} + +.alert-success hr { + border-top-color: #c9e2b3; +} + +.alert-success .alert-link { + color: #356635; +} + +.alert-info { + color: #3a87ad; + background-color: #d9edf7; + border-color: #bce8f1; +} + +.alert-info hr { + border-top-color: #a6e1ec; +} + +.alert-info .alert-link { + color: #2d6987; +} + +.alert-warning { + color: #c09853; + background-color: #fcf8e3; + border-color: #fbeed5; +} + +.alert-warning hr { + border-top-color: #f8e5be; +} + +.alert-warning .alert-link { + color: #a47e3c; +} + +.alert-danger { + color: #b94a48; + background-color: #f2dede; + border-color: #eed3d7; +} + +.alert-danger hr { + border-top-color: #e6c1c7; +} + +.alert-danger .alert-link { + color: #953b39; +} + +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-moz-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-o-keyframes progress-bar-stripes { + from { + background-position: 0 0; + } + to { + background-position: 40px 0; + } +} + +@keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +.progress { + height: 20px; + margin-bottom: 20px; + overflow: hidden; + background-color: #f5f5f5; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); +} + +.progress-bar { + float: left; + width: 0; + height: 100%; + font-size: 12px; + color: #ffffff; + text-align: center; + background-color: #428bca; + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -webkit-transition: width 0.6s ease; + transition: width 0.6s ease; +} + +.progress-striped .progress-bar { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: 40px 40px; +} + +.progress.active .progress-bar { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -moz-animation: progress-bar-stripes 2s linear infinite; + -ms-animation: progress-bar-stripes 2s linear infinite; + -o-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; +} + +.progress-bar-success { + background-color: #5cb85c; +} + +.progress-striped .progress-bar-success { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-bar-info { + background-color: #5bc0de; +} + +.progress-striped .progress-bar-info { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-bar-warning { + background-color: #f0ad4e; +} + +.progress-striped .progress-bar-warning { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-bar-danger { + background-color: #d9534f; +} + +.progress-striped .progress-bar-danger { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.media, +.media-body { + overflow: hidden; + zoom: 1; +} + +.media, +.media .media { + margin-top: 15px; +} + +.media:first-child { + margin-top: 0; +} + +.media-object { + display: block; +} + +.media-heading { + margin: 0 0 5px; +} + +.media > .pull-left { + margin-right: 10px; +} + +.media > .pull-right { + margin-left: 10px; +} + +.media-list { + padding-left: 0; + list-style: none; +} + +.list-group { + padding-left: 0; + margin-bottom: 20px; +} + +.list-group-item { + position: relative; + display: block; + padding: 10px 15px; + margin-bottom: -1px; + background-color: #ffffff; + border: 1px solid #dddddd; +} + +.list-group-item:first-child { + border-top-right-radius: 4px; + border-top-left-radius: 4px; +} + +.list-group-item:last-child { + margin-bottom: 0; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; +} + +.list-group-item > .badge { + float: right; +} + +.list-group-item > .badge + .badge { + margin-right: 5px; +} + +a.list-group-item { + color: #555555; +} + +a.list-group-item .list-group-item-heading { + color: #333333; +} + +a.list-group-item:hover, +a.list-group-item:focus { + text-decoration: none; + background-color: #f5f5f5; +} + +.list-group-item.active, +.list-group-item.active:hover, +.list-group-item.active:focus { + z-index: 2; + color: #ffffff; + background-color: #428bca; + border-color: #428bca; +} + +.list-group-item.active .list-group-item-heading, +.list-group-item.active:hover .list-group-item-heading, +.list-group-item.active:focus .list-group-item-heading { + color: inherit; +} + +.list-group-item.active .list-group-item-text, +.list-group-item.active:hover .list-group-item-text, +.list-group-item.active:focus .list-group-item-text { + color: #e1edf7; +} + +.list-group-item-heading { + margin-top: 0; + margin-bottom: 5px; +} + +.list-group-item-text { + margin-bottom: 0; + line-height: 1.3; +} + +.panel { + margin-bottom: 20px; + background-color: #ffffff; + border: 1px solid transparent; + border-radius: 4px; + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); +} + +.panel-body { + padding: 15px; +} + +.panel-body:before, +.panel-body:after { + display: table; + content: " "; +} + +.panel-body:after { + clear: both; +} + +.panel-body:before, +.panel-body:after { + display: table; + content: " "; +} + +.panel-body:after { + clear: both; +} + +.panel > .list-group { + margin-bottom: 0; +} + +.panel > .list-group .list-group-item { + border-width: 1px 0; +} + +.panel > .list-group .list-group-item:first-child { + border-top-right-radius: 0; + border-top-left-radius: 0; +} + +.panel > .list-group .list-group-item:last-child { + border-bottom: 0; +} + +.panel-heading + .list-group .list-group-item:first-child { + border-top-width: 0; +} + +.panel > .table { + margin-bottom: 0; +} + +.panel > .panel-body + .table { + border-top: 1px solid #dddddd; +} + +.panel-heading { + padding: 10px 15px; + border-bottom: 1px solid transparent; + border-top-right-radius: 3px; + border-top-left-radius: 3px; +} + +.panel-title { + margin-top: 0; + margin-bottom: 0; + font-size: 16px; +} + +.panel-title > a { + color: inherit; +} + +.panel-footer { + padding: 10px 15px; + background-color: #f5f5f5; + border-top: 1px solid #dddddd; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} + +.panel-group .panel { + margin-bottom: 0; + overflow: hidden; + border-radius: 4px; +} + +.panel-group .panel + .panel { + margin-top: 5px; +} + +.panel-group .panel-heading { + border-bottom: 0; +} + +.panel-group .panel-heading + .panel-collapse .panel-body { + border-top: 1px solid #dddddd; +} + +.panel-group .panel-footer { + border-top: 0; +} + +.panel-group .panel-footer + .panel-collapse .panel-body { + border-bottom: 1px solid #dddddd; +} + +.panel-default { + border-color: #dddddd; +} + +.panel-default > .panel-heading { + color: #333333; + background-color: #f5f5f5; + border-color: #dddddd; +} + +.panel-default > .panel-heading + .panel-collapse .panel-body { + border-top-color: #dddddd; +} + +.panel-default > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #dddddd; +} + +.panel-primary { + border-color: #428bca; +} + +.panel-primary > .panel-heading { + color: #ffffff; + background-color: #428bca; + border-color: #428bca; +} + +.panel-primary > .panel-heading + .panel-collapse .panel-body { + border-top-color: #428bca; +} + +.panel-primary > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #428bca; +} + +.panel-success { + border-color: #d6e9c6; +} + +.panel-success > .panel-heading { + color: #468847; + background-color: #dff0d8; + border-color: #d6e9c6; +} + +.panel-success > .panel-heading + .panel-collapse .panel-body { + border-top-color: #d6e9c6; +} + +.panel-success > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #d6e9c6; +} + +.panel-warning { + border-color: #fbeed5; +} + +.panel-warning > .panel-heading { + color: #c09853; + background-color: #fcf8e3; + border-color: #fbeed5; +} + +.panel-warning > .panel-heading + .panel-collapse .panel-body { + border-top-color: #fbeed5; +} + +.panel-warning > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #fbeed5; +} + +.panel-danger { + border-color: #eed3d7; +} + +.panel-danger > .panel-heading { + color: #b94a48; + background-color: #f2dede; + border-color: #eed3d7; +} + +.panel-danger > .panel-heading + .panel-collapse .panel-body { + border-top-color: #eed3d7; +} + +.panel-danger > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #eed3d7; +} + +.panel-info { + border-color: #bce8f1; +} + +.panel-info > .panel-heading { + color: #3a87ad; + background-color: #d9edf7; + border-color: #bce8f1; +} + +.panel-info > .panel-heading + .panel-collapse .panel-body { + border-top-color: #bce8f1; +} + +.panel-info > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #bce8f1; +} + +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #f5f5f5; + border: 1px solid #e3e3e3; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); +} + +.well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, 0.15); +} + +.well-lg { + padding: 24px; + border-radius: 6px; +} + +.well-sm { + padding: 9px; + border-radius: 3px; +} + +.close { + float: right; + font-size: 21px; + font-weight: bold; + line-height: 1; + color: #000000; + text-shadow: 0 1px 0 #ffffff; + opacity: 0.2; + filter: alpha(opacity=20); +} + +.close:hover, +.close:focus { + color: #000000; + text-decoration: none; + cursor: pointer; + opacity: 0.5; + filter: alpha(opacity=50); +} + +button.close { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; +} + +.modal-open { + overflow: hidden; +} + +body.modal-open, +.modal-open .navbar-fixed-top, +.modal-open .navbar-fixed-bottom { + margin-right: 15px; +} + +.modal { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + display: none; + overflow: auto; + overflow-y: scroll; +} + +.modal.fade .modal-dialog { + -webkit-transform: translate(0, -25%); + -ms-transform: translate(0, -25%); + transform: translate(0, -25%); + -webkit-transition: -webkit-transform 0.3s ease-out; + -moz-transition: -moz-transform 0.3s ease-out; + -o-transition: -o-transform 0.3s ease-out; + transition: transform 0.3s ease-out; +} + +.modal.in .modal-dialog { + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); +} + +.modal-dialog { + z-index: 1050; + width: auto; + padding: 10px; + margin-right: auto; + margin-left: auto; +} + +.modal-content { + position: relative; + background-color: #ffffff; + border: 1px solid #999999; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 6px; + outline: none; + -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); + box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); + background-clip: padding-box; +} + +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1030; + background-color: #000000; +} + +.modal-backdrop.fade { + opacity: 0; + filter: alpha(opacity=0); +} + +.modal-backdrop.in { + opacity: 0.5; + filter: alpha(opacity=50); +} + +.modal-header { + min-height: 16.428571429px; + padding: 15px; + border-bottom: 1px solid #e5e5e5; +} + +.modal-header .close { + margin-top: -2px; +} + +.modal-title { + margin: 0; + line-height: 1.428571429; +} + +.modal-body { + position: relative; + padding: 20px; +} + +.modal-footer { + padding: 19px 20px 20px; + margin-top: 15px; + text-align: right; + border-top: 1px solid #e5e5e5; +} + +.modal-footer:before, +.modal-footer:after { + display: table; + content: " "; +} + +.modal-footer:after { + clear: both; +} + +.modal-footer:before, +.modal-footer:after { + display: table; + content: " "; +} + +.modal-footer:after { + clear: both; +} + +.modal-footer .btn + .btn { + margin-bottom: 0; + margin-left: 5px; +} + +.modal-footer .btn-group .btn + .btn { + margin-left: -1px; +} + +.modal-footer .btn-block + .btn-block { + margin-left: 0; +} + +@media screen and (min-width: 768px) { + .modal-dialog { + right: auto; + left: 50%; + width: 600px; + padding-top: 30px; + padding-bottom: 30px; + } + .modal-content { + -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); + } +} + +.tooltip { + position: absolute; + z-index: 1030; + display: block; + font-size: 12px; + line-height: 1.4; + opacity: 0; + filter: alpha(opacity=0); + visibility: visible; +} + +.tooltip.in { + opacity: 0.9; + filter: alpha(opacity=90); +} + +.tooltip.top { + padding: 5px 0; + margin-top: -3px; +} + +.tooltip.right { + padding: 0 5px; + margin-left: 3px; +} + +.tooltip.bottom { + padding: 5px 0; + margin-top: 3px; +} + +.tooltip.left { + padding: 0 5px; + margin-left: -3px; +} + +.tooltip-inner { + max-width: 200px; + padding: 3px 8px; + color: #ffffff; + text-align: center; + text-decoration: none; + background-color: #000000; + border-radius: 4px; +} + +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.tooltip.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-top-color: #000000; + border-width: 5px 5px 0; +} + +.tooltip.top-left .tooltip-arrow { + bottom: 0; + left: 5px; + border-top-color: #000000; + border-width: 5px 5px 0; +} + +.tooltip.top-right .tooltip-arrow { + right: 5px; + bottom: 0; + border-top-color: #000000; + border-width: 5px 5px 0; +} + +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-right-color: #000000; + border-width: 5px 5px 5px 0; +} + +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-left-color: #000000; + border-width: 5px 0 5px 5px; +} + +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-bottom-color: #000000; + border-width: 0 5px 5px; +} + +.tooltip.bottom-left .tooltip-arrow { + top: 0; + left: 5px; + border-bottom-color: #000000; + border-width: 0 5px 5px; +} + +.tooltip.bottom-right .tooltip-arrow { + top: 0; + right: 5px; + border-bottom-color: #000000; + border-width: 0 5px 5px; +} + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1010; + display: none; + max-width: 276px; + padding: 1px; + text-align: left; + white-space: normal; + background-color: #ffffff; + border: 1px solid #cccccc; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + background-clip: padding-box; +} + +.popover.top { + margin-top: -10px; +} + +.popover.right { + margin-left: 10px; +} + +.popover.bottom { + margin-top: 10px; +} + +.popover.left { + margin-left: -10px; +} + +.popover-title { + padding: 8px 14px; + margin: 0; + font-size: 14px; + font-weight: normal; + line-height: 18px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-radius: 5px 5px 0 0; +} + +.popover-content { + padding: 9px 14px; +} + +.popover .arrow, +.popover .arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.popover .arrow { + border-width: 11px; +} + +.popover .arrow:after { + border-width: 10px; + content: ""; +} + +.popover.top .arrow { + bottom: -11px; + left: 50%; + margin-left: -11px; + border-top-color: #999999; + border-top-color: rgba(0, 0, 0, 0.25); + border-bottom-width: 0; +} + +.popover.top .arrow:after { + bottom: 1px; + margin-left: -10px; + border-top-color: #ffffff; + border-bottom-width: 0; + content: " "; +} + +.popover.right .arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-right-color: #999999; + border-right-color: rgba(0, 0, 0, 0.25); + border-left-width: 0; +} + +.popover.right .arrow:after { + bottom: -10px; + left: 1px; + border-right-color: #ffffff; + border-left-width: 0; + content: " "; +} + +.popover.bottom .arrow { + top: -11px; + left: 50%; + margin-left: -11px; + border-bottom-color: #999999; + border-bottom-color: rgba(0, 0, 0, 0.25); + border-top-width: 0; +} + +.popover.bottom .arrow:after { + top: 1px; + margin-left: -10px; + border-bottom-color: #ffffff; + border-top-width: 0; + content: " "; +} + +.popover.left .arrow { + top: 50%; + right: -11px; + margin-top: -11px; + border-left-color: #999999; + border-left-color: rgba(0, 0, 0, 0.25); + border-right-width: 0; +} + +.popover.left .arrow:after { + right: 1px; + bottom: -10px; + border-left-color: #ffffff; + border-right-width: 0; + content: " "; +} + +.carousel { + position: relative; +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} + +.carousel-inner > .item { + position: relative; + display: none; + -webkit-transition: 0.6s ease-in-out left; + transition: 0.6s ease-in-out left; +} + +.carousel-inner > .item > img, +.carousel-inner > .item > a > img { + display: block; + height: auto; + max-width: 100%; + line-height: 1; +} + +.carousel-inner > .active, +.carousel-inner > .next, +.carousel-inner > .prev { + display: block; +} + +.carousel-inner > .active { + left: 0; +} + +.carousel-inner > .next, +.carousel-inner > .prev { + position: absolute; + top: 0; + width: 100%; +} + +.carousel-inner > .next { + left: 100%; +} + +.carousel-inner > .prev { + left: -100%; +} + +.carousel-inner > .next.left, +.carousel-inner > .prev.right { + left: 0; +} + +.carousel-inner > .active.left { + left: -100%; +} + +.carousel-inner > .active.right { + left: 100%; +} + +.carousel-control { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 15%; + font-size: 20px; + color: #ffffff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); + opacity: 0.5; + filter: alpha(opacity=50); +} + +.carousel-control.left { + background-image: -webkit-gradient(linear, 0 top, 100% top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0.0001))); + background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.5) 0), color-stop(rgba(0, 0, 0, 0.0001) 100%)); + background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.5) 0, rgba(0, 0, 0, 0.0001) 100%); + background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0, rgba(0, 0, 0, 0.0001) 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); +} + +.carousel-control.right { + right: 0; + left: auto; + background-image: -webkit-gradient(linear, 0 top, 100% top, from(rgba(0, 0, 0, 0.0001)), to(rgba(0, 0, 0, 0.5))); + background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.0001) 0), color-stop(rgba(0, 0, 0, 0.5) 100%)); + background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0, rgba(0, 0, 0, 0.5) 100%); + background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0, rgba(0, 0, 0, 0.5) 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); +} + +.carousel-control:hover, +.carousel-control:focus { + color: #ffffff; + text-decoration: none; + opacity: 0.9; + filter: alpha(opacity=90); +} + +.carousel-control .icon-prev, +.carousel-control .icon-next, +.carousel-control .glyphicon-chevron-left, +.carousel-control .glyphicon-chevron-right { + position: absolute; + top: 50%; + left: 50%; + z-index: 5; + display: inline-block; +} + +.carousel-control .icon-prev, +.carousel-control .icon-next { + width: 20px; + height: 20px; + margin-top: -10px; + margin-left: -10px; + font-family: serif; +} + +.carousel-control .icon-prev:before { + content: '\2039'; +} + +.carousel-control .icon-next:before { + content: '\203a'; +} + +.carousel-indicators { + position: absolute; + bottom: 10px; + left: 50%; + z-index: 15; + width: 60%; + padding-left: 0; + margin-left: -30%; + text-align: center; + list-style: none; +} + +.carousel-indicators li { + display: inline-block; + width: 10px; + height: 10px; + margin: 1px; + text-indent: -999px; + cursor: pointer; + border: 1px solid #ffffff; + border-radius: 10px; +} + +.carousel-indicators .active { + width: 12px; + height: 12px; + margin: 0; + background-color: #ffffff; +} + +.carousel-caption { + position: absolute; + right: 15%; + bottom: 20px; + left: 15%; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #ffffff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); +} + +.carousel-caption .btn { + text-shadow: none; +} + +@media screen and (min-width: 768px) { + .carousel-control .icon-prev, + .carousel-control .icon-next { + width: 30px; + height: 30px; + margin-top: -15px; + margin-left: -15px; + font-size: 30px; + } + .carousel-caption { + right: 20%; + left: 20%; + padding-bottom: 30px; + } + .carousel-indicators { + bottom: 20px; + } +} + +.clearfix:before, +.clearfix:after { + display: table; + content: " "; +} + +.clearfix:after { + clear: both; +} + +.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; +} + +.affix { + position: fixed; +} + +@-ms-viewport { + width: device-width; +} + +@media screen and (max-width: 400px) { + @-ms-viewport { + width: 320px; + } +} + +.hidden { + display: none !important; + visibility: hidden !important; +} + +.visible-xs { + display: none !important; +} + +tr.visible-xs { + display: none !important; +} + +th.visible-xs, +td.visible-xs { + display: none !important; +} + +@media (max-width: 767px) { + .visible-xs { + display: block !important; + } + tr.visible-xs { + display: table-row !important; + } + th.visible-xs, + td.visible-xs { + display: table-cell !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .visible-xs.visible-sm { + display: block !important; + } + tr.visible-xs.visible-sm { + display: table-row !important; + } + th.visible-xs.visible-sm, + td.visible-xs.visible-sm { + display: table-cell !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-xs.visible-md { + display: block !important; + } + tr.visible-xs.visible-md { + display: table-row !important; + } + th.visible-xs.visible-md, + td.visible-xs.visible-md { + display: table-cell !important; + } +} + +@media (min-width: 1200px) { + .visible-xs.visible-lg { + display: block !important; + } + tr.visible-xs.visible-lg { + display: table-row !important; + } + th.visible-xs.visible-lg, + td.visible-xs.visible-lg { + display: table-cell !important; + } +} + +.visible-sm { + display: none !important; +} + +tr.visible-sm { + display: none !important; +} + +th.visible-sm, +td.visible-sm { + display: none !important; +} + +@media (max-width: 767px) { + .visible-sm.visible-xs { + display: block !important; + } + tr.visible-sm.visible-xs { + display: table-row !important; + } + th.visible-sm.visible-xs, + td.visible-sm.visible-xs { + display: table-cell !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm { + display: block !important; + } + tr.visible-sm { + display: table-row !important; + } + th.visible-sm, + td.visible-sm { + display: table-cell !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-sm.visible-md { + display: block !important; + } + tr.visible-sm.visible-md { + display: table-row !important; + } + th.visible-sm.visible-md, + td.visible-sm.visible-md { + display: table-cell !important; + } +} + +@media (min-width: 1200px) { + .visible-sm.visible-lg { + display: block !important; + } + tr.visible-sm.visible-lg { + display: table-row !important; + } + th.visible-sm.visible-lg, + td.visible-sm.visible-lg { + display: table-cell !important; + } +} + +.visible-md { + display: none !important; +} + +tr.visible-md { + display: none !important; +} + +th.visible-md, +td.visible-md { + display: none !important; +} + +@media (max-width: 767px) { + .visible-md.visible-xs { + display: block !important; + } + tr.visible-md.visible-xs { + display: table-row !important; + } + th.visible-md.visible-xs, + td.visible-md.visible-xs { + display: table-cell !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .visible-md.visible-sm { + display: block !important; + } + tr.visible-md.visible-sm { + display: table-row !important; + } + th.visible-md.visible-sm, + td.visible-md.visible-sm { + display: table-cell !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md { + display: block !important; + } + tr.visible-md { + display: table-row !important; + } + th.visible-md, + td.visible-md { + display: table-cell !important; + } +} + +@media (min-width: 1200px) { + .visible-md.visible-lg { + display: block !important; + } + tr.visible-md.visible-lg { + display: table-row !important; + } + th.visible-md.visible-lg, + td.visible-md.visible-lg { + display: table-cell !important; + } +} + +.visible-lg { + display: none !important; +} + +tr.visible-lg { + display: none !important; +} + +th.visible-lg, +td.visible-lg { + display: none !important; +} + +@media (max-width: 767px) { + .visible-lg.visible-xs { + display: block !important; + } + tr.visible-lg.visible-xs { + display: table-row !important; + } + th.visible-lg.visible-xs, + td.visible-lg.visible-xs { + display: table-cell !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .visible-lg.visible-sm { + display: block !important; + } + tr.visible-lg.visible-sm { + display: table-row !important; + } + th.visible-lg.visible-sm, + td.visible-lg.visible-sm { + display: table-cell !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-lg.visible-md { + display: block !important; + } + tr.visible-lg.visible-md { + display: table-row !important; + } + th.visible-lg.visible-md, + td.visible-lg.visible-md { + display: table-cell !important; + } +} + +@media (min-width: 1200px) { + .visible-lg { + display: block !important; + } + tr.visible-lg { + display: table-row !important; + } + th.visible-lg, + td.visible-lg { + display: table-cell !important; + } +} + +.hidden-xs { + display: block !important; +} + +tr.hidden-xs { + display: table-row !important; +} + +th.hidden-xs, +td.hidden-xs { + display: table-cell !important; +} + +@media (max-width: 767px) { + .hidden-xs { + display: none !important; + } + tr.hidden-xs { + display: none !important; + } + th.hidden-xs, + td.hidden-xs { + display: none !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .hidden-xs.hidden-sm { + display: none !important; + } + tr.hidden-xs.hidden-sm { + display: none !important; + } + th.hidden-xs.hidden-sm, + td.hidden-xs.hidden-sm { + display: none !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-xs.hidden-md { + display: none !important; + } + tr.hidden-xs.hidden-md { + display: none !important; + } + th.hidden-xs.hidden-md, + td.hidden-xs.hidden-md { + display: none !important; + } +} + +@media (min-width: 1200px) { + .hidden-xs.hidden-lg { + display: none !important; + } + tr.hidden-xs.hidden-lg { + display: none !important; + } + th.hidden-xs.hidden-lg, + td.hidden-xs.hidden-lg { + display: none !important; + } +} + +.hidden-sm { + display: block !important; +} + +tr.hidden-sm { + display: table-row !important; +} + +th.hidden-sm, +td.hidden-sm { + display: table-cell !important; +} + +@media (max-width: 767px) { + .hidden-sm.hidden-xs { + display: none !important; + } + tr.hidden-sm.hidden-xs { + display: none !important; + } + th.hidden-sm.hidden-xs, + td.hidden-sm.hidden-xs { + display: none !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .hidden-sm { + display: none !important; + } + tr.hidden-sm { + display: none !important; + } + th.hidden-sm, + td.hidden-sm { + display: none !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-sm.hidden-md { + display: none !important; + } + tr.hidden-sm.hidden-md { + display: none !important; + } + th.hidden-sm.hidden-md, + td.hidden-sm.hidden-md { + display: none !important; + } +} + +@media (min-width: 1200px) { + .hidden-sm.hidden-lg { + display: none !important; + } + tr.hidden-sm.hidden-lg { + display: none !important; + } + th.hidden-sm.hidden-lg, + td.hidden-sm.hidden-lg { + display: none !important; + } +} + +.hidden-md { + display: block !important; +} + +tr.hidden-md { + display: table-row !important; +} + +th.hidden-md, +td.hidden-md { + display: table-cell !important; +} + +@media (max-width: 767px) { + .hidden-md.hidden-xs { + display: none !important; + } + tr.hidden-md.hidden-xs { + display: none !important; + } + th.hidden-md.hidden-xs, + td.hidden-md.hidden-xs { + display: none !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .hidden-md.hidden-sm { + display: none !important; + } + tr.hidden-md.hidden-sm { + display: none !important; + } + th.hidden-md.hidden-sm, + td.hidden-md.hidden-sm { + display: none !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-md { + display: none !important; + } + tr.hidden-md { + display: none !important; + } + th.hidden-md, + td.hidden-md { + display: none !important; + } +} + +@media (min-width: 1200px) { + .hidden-md.hidden-lg { + display: none !important; + } + tr.hidden-md.hidden-lg { + display: none !important; + } + th.hidden-md.hidden-lg, + td.hidden-md.hidden-lg { + display: none !important; + } +} + +.hidden-lg { + display: block !important; +} + +tr.hidden-lg { + display: table-row !important; +} + +th.hidden-lg, +td.hidden-lg { + display: table-cell !important; +} + +@media (max-width: 767px) { + .hidden-lg.hidden-xs { + display: none !important; + } + tr.hidden-lg.hidden-xs { + display: none !important; + } + th.hidden-lg.hidden-xs, + td.hidden-lg.hidden-xs { + display: none !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .hidden-lg.hidden-sm { + display: none !important; + } + tr.hidden-lg.hidden-sm { + display: none !important; + } + th.hidden-lg.hidden-sm, + td.hidden-lg.hidden-sm { + display: none !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-lg.hidden-md { + display: none !important; + } + tr.hidden-lg.hidden-md { + display: none !important; + } + th.hidden-lg.hidden-md, + td.hidden-lg.hidden-md { + display: none !important; + } +} + +@media (min-width: 1200px) { + .hidden-lg { + display: none !important; + } + tr.hidden-lg { + display: none !important; + } + th.hidden-lg, + td.hidden-lg { + display: none !important; + } +} + +.visible-print { + display: none !important; +} + +tr.visible-print { + display: none !important; +} + +th.visible-print, +td.visible-print { + display: none !important; +} + +@media print { + .visible-print { + display: block !important; + } + tr.visible-print { + display: table-row !important; + } + th.visible-print, + td.visible-print { + display: table-cell !important; + } + .hidden-print { + display: none !important; + } + tr.hidden-print { + display: none !important; + } + th.hidden-print, + td.hidden-print { + display: none !important; + } +} \ No newline at end of file diff --git a/report/assets/css/vendor/codemirror.css b/report/assets/css/vendor/codemirror.css new file mode 100644 index 00000000..bf995f48 --- /dev/null +++ b/report/assets/css/vendor/codemirror.css @@ -0,0 +1,239 @@ +/* BASICS */ + +.CodeMirror { + /* Set height, width, borders, and global font properties here */ + font-family: monospace; + height: 300px; +} +.CodeMirror-scroll { + /* Set scrolling behaviour here */ + overflow: auto; +} + +/* PADDING */ + +.CodeMirror-lines { + padding: 4px 0; /* Vertical padding around content */ +} +.CodeMirror pre { + padding: 0 4px; /* Horizontal padding of content */ +} + +.CodeMirror-scrollbar-filler { + background-color: white; /* The little square between H and V scrollbars */ +} + +/* GUTTER */ + +.CodeMirror-gutters { + border-right: 1px solid #ddd; + background-color: #f7f7f7; +} +.CodeMirror-linenumbers {} +.CodeMirror-linenumber { + padding: 0 3px 0 5px; + min-width: 20px; + text-align: right; + color: #999; +} + +/* CURSOR */ + +.CodeMirror pre.CodeMirror-cursor { + border-left: 1px solid black; +} +/* Shown when moving in bi-directional text */ +.CodeMirror pre.CodeMirror-secondarycursor { + border-left: 1px solid silver; +} +.cm-keymap-fat-cursor pre.CodeMirror-cursor { + width: auto; + border: 0; + background: transparent; + background: rgba(0, 200, 0, .4); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#6600c800, endColorstr=#4c00c800); +} +/* Kludge to turn off filter in ie9+, which also accepts rgba */ +.cm-keymap-fat-cursor pre.CodeMirror-cursor:not(#nonsense_id) { + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} +/* Can style cursor different in overwrite (non-insert) mode */ +.CodeMirror pre.CodeMirror-cursor.CodeMirror-overwrite {} + +/* DEFAULT THEME */ + +.cm-s-default .cm-keyword {color: #708;} +.cm-s-default .cm-atom {color: #219;} +.cm-s-default .cm-number {color: #164;} +.cm-s-default .cm-def {color: #00f;} +.cm-s-default .cm-variable {color: black;} +.cm-s-default .cm-variable-2 {color: #05a;} +.cm-s-default .cm-variable-3 {color: #085;} +.cm-s-default .cm-property {color: black;} +.cm-s-default .cm-operator {color: black;} +.cm-s-default .cm-comment {color: #a50;} +.cm-s-default .cm-string {color: #a11;} +.cm-s-default .cm-string-2 {color: #f50;} +.cm-s-default .cm-meta {color: #555;} +.cm-s-default .cm-error {color: #f00;} +.cm-s-default .cm-qualifier {color: #555;} +.cm-s-default .cm-builtin {color: #30a;} +.cm-s-default .cm-bracket {color: #997;} +.cm-s-default .cm-tag {color: #170;} +.cm-s-default .cm-attribute {color: #00c;} +.cm-s-default .cm-header {color: blue;} +.cm-s-default .cm-quote {color: #090;} +.cm-s-default .cm-hr {color: #999;} +.cm-s-default .cm-link {color: #00c;} + +.cm-negative {color: #d44;} +.cm-positive {color: #292;} +.cm-header, .cm-strong {font-weight: bold;} +.cm-em {font-style: italic;} +.cm-emstrong {font-style: italic; font-weight: bold;} +.cm-link {text-decoration: underline;} + +.cm-invalidchar {color: #f00;} + +div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;} +div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;} + +/* STOP */ + +/* The rest of this file contains styles related to the mechanics of + the editor. You probably shouldn't touch them. */ + +.CodeMirror { + line-height: 1; + position: relative; + overflow: hidden; +} + +.CodeMirror-scroll { + /* 30px is the magic margin used to hide the element's real scrollbars */ + /* See overflow: hidden in .CodeMirror, and the paddings in .CodeMirror-sizer */ + margin-bottom: -30px; margin-right: -30px; + padding-bottom: 30px; padding-right: 30px; + height: 100%; + outline: none; /* Prevent dragging from highlighting the element */ + position: relative; +} +.CodeMirror-sizer { + position: relative; +} + +/* The fake, visible scrollbars. Used to force redraw during scrolling + before actuall scrolling happens, thus preventing shaking and + flickering artifacts. */ +.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler { + position: absolute; + z-index: 6; + display: none; +} +.CodeMirror-vscrollbar { + right: 0; top: 0; + overflow-x: hidden; + overflow-y: scroll; +} +.CodeMirror-hscrollbar { + bottom: 0; left: 0; + overflow-y: hidden; + overflow-x: scroll; +} +.CodeMirror-scrollbar-filler { + right: 0; bottom: 0; + z-index: 6; +} + +.CodeMirror-gutters { + position: absolute; left: 0; top: 0; + height: 100%; + z-index: 3; +} +.CodeMirror-gutter { + height: 100%; + display: inline-block; + /* Hack to make IE7 behave */ + *zoom:1; + *display:inline; +} +.CodeMirror-gutter-elt { + position: absolute; + cursor: default; + z-index: 4; +} + +.CodeMirror-lines { + cursor: text; +} +.CodeMirror pre { + /* Reset some styles that the rest of the page might have set */ + -moz-border-radius: 0; -webkit-border-radius: 0; -o-border-radius: 0; border-radius: 0; + border-width: 0; + background: transparent; + font-family: inherit; + font-size: inherit; + margin: 0; + white-space: pre; + word-wrap: normal; + line-height: inherit; + color: inherit; + z-index: 2; + position: relative; + overflow: visible; +} +.CodeMirror-wrap pre { + word-wrap: break-word; + white-space: pre-wrap; + word-break: normal; +} +.CodeMirror-linebackground { + position: absolute; + left: 0; right: 0; top: 0; bottom: 0; + z-index: 0; +} + +.CodeMirror-linewidget { + position: relative; + z-index: 2; +} + +.CodeMirror-wrap .CodeMirror-scroll { + overflow-x: hidden; +} + +.CodeMirror-measure { + position: absolute; + width: 100%; height: 0px; + overflow: hidden; + visibility: hidden; +} +.CodeMirror-measure pre { position: static; } + +.CodeMirror pre.CodeMirror-cursor { + position: absolute; + visibility: hidden; + border-right: none; + width: 0; +} +.CodeMirror-focused pre.CodeMirror-cursor { + visibility: visible; +} + +.CodeMirror-selected { background: #d9d9d9; } +.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; } + +.CodeMirror-searching { + background: #ffa; + background: rgba(255, 255, 0, .4); +} + +/* IE7 hack to prevent it from returning funny offsetTops on the spans */ +.CodeMirror span { *vertical-align: text-bottom; } + +@media print { + /* Hide the cursor when printing */ + .CodeMirror pre.CodeMirror-cursor { + visibility: hidden; + } +} diff --git a/report/assets/css/vendor/font-awesome.css b/report/assets/css/vendor/font-awesome.css new file mode 100755 index 00000000..3280ad45 --- /dev/null +++ b/report/assets/css/vendor/font-awesome.css @@ -0,0 +1,303 @@ +/* Font Awesome + the iconic font designed for use with Twitter Bootstrap + ------------------------------------------------------- + The full suite of pictographic icons, examples, and documentation + can be found at: http://fortawesome.github.com/Font-Awesome/ + + License + ------------------------------------------------------- + The Font Awesome webfont, CSS, and LESS files are licensed under CC BY 3.0: + http://creativecommons.org/licenses/by/3.0/ A mention of + 'Font Awesome - http://fortawesome.github.com/Font-Awesome' in human-readable + source code is considered acceptable attribution (most common on the web). + If human readable source code is not available to the end user, a mention in + an 'About' or 'Credits' screen is considered acceptable (most common in desktop + or mobile software). + + Contact + ------------------------------------------------------- + Email: dave@davegandy.com + Twitter: http://twitter.com/fortaweso_me + Work: http://lemonwi.se co-founder + + */ +@font-face { + font-family: "FontAwesome"; + src: url('../../font/fontawesome-webfont.eot'); + src: url('../../font/fontawesome-webfont.eot?#iefix') format('eot'), url('../../font/fontawesome-webfont.woff') format('woff'), url('../../font/fontawesome-webfont.ttf') format('truetype'), url('../../font/fontawesome-webfont.svg#FontAwesome') format('svg'); + font-weight: normal; + font-style: normal; +} + +/* Font Awesome styles + ------------------------------------------------------- */ +[class^="icon-"]:before, [class*=" icon-"]:before { + font-family: FontAwesome; + font-weight: normal; + font-style: normal; + display: inline-block; + text-decoration: inherit; +} +a [class^="icon-"], a [class*=" icon-"] { + display: inline-block; + text-decoration: inherit; +} +/* makes the font 33% larger relative to the icon container */ +.icon-large:before { + vertical-align: top; + font-size: 1.3333333333333333em; +} +.btn [class^="icon-"], .btn [class*=" icon-"] { + /* keeps button heights with and without icons the same */ + + line-height: .9em; +} +li [class^="icon-"], li [class*=" icon-"] { + display: inline-block; + width: 1.25em; + text-align: center; +} +li .icon-large[class^="icon-"], li .icon-large[class*=" icon-"] { + /* 1.5 increased font size for icon-large * 1.25 width */ + + width: 1.875em; +} +li[class^="icon-"], li[class*=" icon-"] { + margin-left: 0; + list-style-type: none; +} +li[class^="icon-"]:before, li[class*=" icon-"]:before { + text-indent: -2em; + text-align: center; +} +li[class^="icon-"].icon-large:before, li[class*=" icon-"].icon-large:before { + text-indent: -1.3333333333333333em; +} +/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen + readers do not read off random characters that represent icons */ +.icon-glass:before { content: "\f000"; } +.icon-music:before { content: "\f001"; } +.icon-search:before { content: "\f002"; } +.icon-envelope:before { content: "\f003"; } +.icon-heart:before { content: "\f004"; } +.icon-star:before { content: "\f005"; } +.icon-star-empty:before { content: "\f006"; } +.icon-user:before { content: "\f007"; } +.icon-film:before { content: "\f008"; } +.icon-th-large:before { content: "\f009"; } +.icon-th:before { content: "\f00a"; } +.icon-th-list:before { content: "\f00b"; } +.icon-ok:before { content: "\f00c"; } +.icon-remove:before { content: "\f00d"; } +.icon-zoom-in:before { content: "\f00e"; } + +.icon-zoom-out:before { content: "\f010"; } +.icon-off:before { content: "\f011"; } +.icon-signal:before { content: "\f012"; } +.icon-cog:before { content: "\f013"; } +.icon-trash:before { content: "\f014"; } +.icon-home:before { content: "\f015"; } +.icon-file:before { content: "\f016"; } +.icon-time:before { content: "\f017"; } +.icon-road:before { content: "\f018"; } +.icon-download-alt:before { content: "\f019"; } +.icon-download:before { content: "\f01a"; } +.icon-upload:before { content: "\f01b"; } +.icon-inbox:before { content: "\f01c"; } +.icon-play-circle:before { content: "\f01d"; } +.icon-repeat:before { content: "\f01e"; } + +/* \f020 doesn't work in Safari. all shifted one down */ +.icon-refresh:before { content: "\f021"; } +.icon-list-alt:before { content: "\f022"; } +.icon-lock:before { content: "\f023"; } +.icon-flag:before { content: "\f024"; } +.icon-headphones:before { content: "\f025"; } +.icon-volume-off:before { content: "\f026"; } +.icon-volume-down:before { content: "\f027"; } +.icon-volume-up:before { content: "\f028"; } +.icon-qrcode:before { content: "\f029"; } +.icon-barcode:before { content: "\f02a"; } +.icon-tag:before { content: "\f02b"; } +.icon-tags:before { content: "\f02c"; } +.icon-book:before { content: "\f02d"; } +.icon-bookmark:before { content: "\f02e"; } +.icon-print:before { content: "\f02f"; } + +.icon-camera:before { content: "\f030"; } +.icon-font:before { content: "\f031"; } +.icon-bold:before { content: "\f032"; } +.icon-italic:before { content: "\f033"; } +.icon-text-height:before { content: "\f034"; } +.icon-text-width:before { content: "\f035"; } +.icon-align-left:before { content: "\f036"; } +.icon-align-center:before { content: "\f037"; } +.icon-align-right:before { content: "\f038"; } +.icon-align-justify:before { content: "\f039"; } +.icon-list:before { content: "\f03a"; } +.icon-indent-left:before { content: "\f03b"; } +.icon-indent-right:before { content: "\f03c"; } +.icon-facetime-video:before { content: "\f03d"; } +.icon-picture:before { content: "\f03e"; } + +.icon-pencil:before { content: "\f040"; } +.icon-map-marker:before { content: "\f041"; } +.icon-adjust:before { content: "\f042"; } +.icon-tint:before { content: "\f043"; } +.icon-edit:before { content: "\f044"; } +.icon-share:before { content: "\f045"; } +.icon-check:before { content: "\f046"; } +.icon-move:before { content: "\f047"; } +.icon-step-backward:before { content: "\f048"; } +.icon-fast-backward:before { content: "\f049"; } +.icon-backward:before { content: "\f04a"; } +.icon-play:before { content: "\f04b"; } +.icon-pause:before { content: "\f04c"; } +.icon-stop:before { content: "\f04d"; } +.icon-forward:before { content: "\f04e"; } + +.icon-fast-forward:before { content: "\f050"; } +.icon-step-forward:before { content: "\f051"; } +.icon-eject:before { content: "\f052"; } +.icon-chevron-left:before { content: "\f053"; } +.icon-chevron-right:before { content: "\f054"; } +.icon-plus-sign:before { content: "\f055"; } +.icon-minus-sign:before { content: "\f056"; } +.icon-remove-sign:before { content: "\f057"; } +.icon-ok-sign:before { content: "\f058"; } +.icon-question-sign:before { content: "\f059"; } +.icon-info-sign:before { content: "\f05a"; } +.icon-screenshot:before { content: "\f05b"; } +.icon-remove-circle:before { content: "\f05c"; } +.icon-ok-circle:before { content: "\f05d"; } +.icon-ban-circle:before { content: "\f05e"; } + +.icon-arrow-left:before { content: "\f060"; } +.icon-arrow-right:before { content: "\f061"; } +.icon-arrow-up:before { content: "\f062"; } +.icon-arrow-down:before { content: "\f063"; } +.icon-share-alt:before { content: "\f064"; } +.icon-resize-full:before { content: "\f065"; } +.icon-resize-small:before { content: "\f066"; } +.icon-plus:before { content: "\f067"; } +.icon-minus:before { content: "\f068"; } +.icon-asterisk:before { content: "\f069"; } +.icon-exclamation-sign:before { content: "\f06a"; } +.icon-gift:before { content: "\f06b"; } +.icon-leaf:before { content: "\f06c"; } +.icon-fire:before { content: "\f06d"; } +.icon-eye-open:before { content: "\f06e"; } + +.icon-eye-close:before { content: "\f070"; } +.icon-warning-sign:before { content: "\f071"; } +.icon-plane:before { content: "\f072"; } +.icon-calendar:before { content: "\f073"; } +.icon-random:before { content: "\f074"; } +.icon-comment:before { content: "\f075"; } +.icon-magnet:before { content: "\f076"; } +.icon-chevron-up:before { content: "\f077"; } +.icon-chevron-down:before { content: "\f078"; } +.icon-retweet:before { content: "\f079"; } +.icon-shopping-cart:before { content: "\f07a"; } +.icon-folder-close:before { content: "\f07b"; } +.icon-folder-open:before { content: "\f07c"; } +.icon-resize-vertical:before { content: "\f07d"; } +.icon-resize-horizontal:before { content: "\f07e"; } + +.icon-bar-chart:before { content: "\f080"; } +.icon-twitter-sign:before { content: "\f081"; } +.icon-facebook-sign:before { content: "\f082"; } +.icon-camera-retro:before { content: "\f083"; } +.icon-key:before { content: "\f084"; } +.icon-cogs:before { content: "\f085"; } +.icon-comments:before { content: "\f086"; } +.icon-thumbs-up:before { content: "\f087"; } +.icon-thumbs-down:before { content: "\f088"; } +.icon-star-half:before { content: "\f089"; } +.icon-heart-empty:before { content: "\f08a"; } +.icon-signout:before { content: "\f08b"; } +.icon-linkedin-sign:before { content: "\f08c"; } +.icon-pushpin:before { content: "\f08d"; } +.icon-external-link:before { content: "\f08e"; } + +.icon-signin:before { content: "\f090"; } +.icon-trophy:before { content: "\f091"; } +.icon-github-sign:before { content: "\f092"; } +.icon-upload-alt:before { content: "\f093"; } +.icon-lemon:before { content: "\f094"; } +.icon-phone:before { content: "\f095"; } +.icon-check-empty:before { content: "\f096"; } +.icon-bookmark-empty:before { content: "\f097"; } +.icon-phone-sign:before { content: "\f098"; } +.icon-twitter:before { content: "\f099"; } +.icon-facebook:before { content: "\f09a"; } +.icon-github:before { content: "\f09b"; } +.icon-unlock:before { content: "\f09c"; } +.icon-credit-card:before { content: "\f09d"; } +.icon-rss:before { content: "\f09e"; } + +.icon-hdd:before { content: "\f0a0"; } +.icon-bullhorn:before { content: "\f0a1"; } +.icon-bell:before { content: "\f0a2"; } +.icon-certificate:before { content: "\f0a3"; } +.icon-hand-right:before { content: "\f0a4"; } +.icon-hand-left:before { content: "\f0a5"; } +.icon-hand-up:before { content: "\f0a6"; } +.icon-hand-down:before { content: "\f0a7"; } +.icon-circle-arrow-left:before { content: "\f0a8"; } +.icon-circle-arrow-right:before { content: "\f0a9"; } +.icon-circle-arrow-up:before { content: "\f0aa"; } +.icon-circle-arrow-down:before { content: "\f0ab"; } +.icon-globe:before { content: "\f0ac"; } +.icon-wrench:before { content: "\f0ad"; } +.icon-tasks:before { content: "\f0ae"; } + +.icon-filter:before { content: "\f0b0"; } +.icon-briefcase:before { content: "\f0b1"; } +.icon-fullscreen:before { content: "\f0b2"; } + +.icon-group:before { content: "\f0c0"; } +.icon-link:before { content: "\f0c1"; } +.icon-cloud:before { content: "\f0c2"; } +.icon-beaker:before { content: "\f0c3"; } +.icon-cut:before { content: "\f0c4"; } +.icon-copy:before { content: "\f0c5"; } +.icon-paper-clip:before { content: "\f0c6"; } +.icon-save:before { content: "\f0c7"; } +.icon-sign-blank:before { content: "\f0c8"; } +.icon-reorder:before { content: "\f0c9"; } +.icon-list-ul:before { content: "\f0ca"; } +.icon-list-ol:before { content: "\f0cb"; } +.icon-strikethrough:before { content: "\f0cc"; } +.icon-underline:before { content: "\f0cd"; } +.icon-table:before { content: "\f0ce"; } + +.icon-magic:before { content: "\f0d0"; } +.icon-truck:before { content: "\f0d1"; } +.icon-pinterest:before { content: "\f0d2"; } +.icon-pinterest-sign:before { content: "\f0d3"; } +.icon-google-plus-sign:before { content: "\f0d4"; } +.icon-google-plus:before { content: "\f0d5"; } +.icon-money:before { content: "\f0d6"; } +.icon-caret-down:before { content: "\f0d7"; } +.icon-caret-up:before { content: "\f0d8"; } +.icon-caret-left:before { content: "\f0d9"; } +.icon-caret-right:before { content: "\f0da"; } +.icon-columns:before { content: "\f0db"; } +.icon-sort:before { content: "\f0dc"; } +.icon-sort-down:before { content: "\f0dd"; } +.icon-sort-up:before { content: "\f0de"; } + +.icon-envelope-alt:before { content: "\f0e0"; } +.icon-linkedin:before { content: "\f0e1"; } +.icon-undo:before { content: "\f0e2"; } +.icon-legal:before { content: "\f0e3"; } +.icon-dashboard:before { content: "\f0e4"; } +.icon-comment-alt:before { content: "\f0e5"; } +.icon-comments-alt:before { content: "\f0e6"; } +.icon-bolt:before { content: "\f0e7"; } +.icon-sitemap:before { content: "\f0e8"; } +.icon-umbrella:before { content: "\f0e9"; } +.icon-paste:before { content: "\f0ea"; } + +.icon-user-md:before { content: "\f200"; } diff --git a/report/assets/css/vendor/morris.css b/report/assets/css/vendor/morris.css new file mode 100644 index 00000000..99a71344 --- /dev/null +++ b/report/assets/css/vendor/morris.css @@ -0,0 +1,2 @@ +.morris-hover{position:absolute;z-index:1000;}.morris-hover.morris-default-style{border-radius:10px;padding:6px;color:#666;background:rgba(255, 255, 255, 0.8);border:solid 2px rgba(230, 230, 230, 0.8);font-family:sans-serif;font-size:12px;text-align:center;}.morris-hover.morris-default-style .morris-hover-row-label{font-weight:bold;margin:0.25em 0;} +.morris-hover.morris-default-style .morris-hover-point{white-space:nowrap;margin:0.1em 0;} \ No newline at end of file diff --git a/report/assets/font/fontawesome-webfont.eot b/report/assets/font/fontawesome-webfont.eot new file mode 100755 index 00000000..89070c1e Binary files /dev/null and b/report/assets/font/fontawesome-webfont.eot differ diff --git a/report/assets/font/fontawesome-webfont.svg b/report/assets/font/fontawesome-webfont.svg new file mode 100755 index 00000000..1245f92c --- /dev/null +++ b/report/assets/font/fontawesome-webfont.svg @@ -0,0 +1,255 @@ + + + \ No newline at end of file diff --git a/report/assets/font/fontawesome-webfont.ttf b/report/assets/font/fontawesome-webfont.ttf new file mode 100755 index 00000000..c17e9f8d Binary files /dev/null and b/report/assets/font/fontawesome-webfont.ttf differ diff --git a/report/assets/font/fontawesome-webfont.woff b/report/assets/font/fontawesome-webfont.woff new file mode 100755 index 00000000..09f2469a Binary files /dev/null and b/report/assets/font/fontawesome-webfont.woff differ diff --git a/report/assets/scripts/bundles/codemirror.js b/report/assets/scripts/bundles/codemirror.js new file mode 100644 index 00000000..e7be94ef --- /dev/null +++ b/report/assets/scripts/bundles/codemirror.js @@ -0,0 +1,98 @@ +window.CodeMirror = (function () { + 'use strict'; + + function a(e, f) { if (!(this instanceof a)) return new a(e, f); this.options = f = f || {}; for (const h in _d)!f.hasOwnProperty(h) && _d.hasOwnProperty(h) && (f[h] = _d[h]); l(f); const j = this.display = b(e); j.wrapper.CodeMirror = this, i(this), f.autofocus && !Rd && _(this), this.view = c(new Dc([new Cc([rc('', null, R(j))])])), this.nextOpId = 0, d(this), g(this), f.lineWrapping && (this.display.wrapper.className += ' CodeMirror-wrap'), this.setValue(f.value || ''), Ed && setTimeout(ed($, this, !0), 20), this.view.history = Kc(), bb(this); let k; try { k = document.activeElement == j.input; } catch (m) {}k || f.autofocus && !Rd ? setTimeout(ed(rb, this), 20) : sb(this), V(this, function () { for (const a in $d)$d.propertyIsEnumerable(a) && $d[a](this, f[a], ae); for (let b = 0; b < ee.length; ++b)ee[b](this); })(); } function b(a) { const b = {}; const c = b.input = hd('textarea', null, null, 'position: absolute; padding: 0; width: 1px; height: 1em; outline: none;'); c.setAttribute('wrap', 'off'), c.setAttribute('autocorrect', 'off'), c.setAttribute('autocapitalize', 'off'), b.inputDiv = hd('div', [c], null, 'overflow: hidden; position: relative; width: 3px; height: 0px;'), b.scrollbarH = hd('div', [hd('div', null, null, 'height: 1px')], 'CodeMirror-hscrollbar'), b.scrollbarV = hd('div', [hd('div', null, null, 'width: 1px')], 'CodeMirror-vscrollbar'), b.scrollbarFiller = hd('div', null, 'CodeMirror-scrollbar-filler'), b.lineDiv = hd('div'), b.selectionDiv = hd('div', null, null, 'position: relative; z-index: 1'), b.cursor = hd('pre', ' ', 'CodeMirror-cursor'), b.otherCursor = hd('pre', ' ', 'CodeMirror-cursor CodeMirror-secondarycursor'), b.measure = hd('div', null, 'CodeMirror-measure'), b.lineSpace = hd('div', [b.measure, b.selectionDiv, b.lineDiv, b.cursor, b.otherCursor], null, 'position: relative; outline: none'), b.mover = hd('div', [hd('div', [b.lineSpace], 'CodeMirror-lines')], null, 'position: relative'), b.sizer = hd('div', [b.mover], 'CodeMirror-sizer'), b.heightForcer = hd('div', ' ', null, `position: absolute; height: ${je}px`), b.gutters = hd('div', null, 'CodeMirror-gutters'), b.lineGutter = null; const d = hd('div', [b.sizer, b.heightForcer, b.gutters], null, 'position: relative; min-height: 100%'); return b.scroller = hd('div', [d], 'CodeMirror-scroll'), b.scroller.setAttribute('tabIndex', '-1'), b.wrapper = hd('div', [b.inputDiv, b.scrollbarH, b.scrollbarV, b.scrollbarFiller, b.scroller], 'CodeMirror'), Fd && (b.gutters.style.zIndex = -1, b.scroller.style.paddingRight = 0), a.appendChild ? a.appendChild(b.wrapper) : a(b.wrapper), Qd && (c.style.width = '0px'), Hd || (b.scroller.draggable = !0), Md ? (b.inputDiv.style.height = '1px', b.inputDiv.style.position = 'absolute') : Fd && (b.scrollbarH.style.minWidth = b.scrollbarV.style.minWidth = '18px'), b.viewOffset = b.showingFrom = b.showingTo = b.lastSizeC = 0, b.lineNumWidth = b.lineNumInnerWidth = b.lineNumChars = null, b.prevInput = '', b.alignWidgets = !1, b.pollingFast = !1, b.poll = new Zc(), b.draggingText = !1, b.cachedCharWidth = b.cachedTextHeight = null, b.measureLineCache = [], b.measureLineCachePos = 0, b.inaccurateSelection = !1, b.pasteIncoming = !1, b; } function c(a) { const b = { line: 0, ch: 0 }; return { doc: a, frontier: 0, highlight: new Zc(), sel: { from: b, to: b, head: b, anchor: b, shift: !1, extend: !1 }, scrollTop: 0, scrollLeft: 0, overwrite: !1, focused: !1, maxLine: Ec(a, 0), maxLineLength: 0, maxLineChanged: !1, suppressEdits: !1, goalColumn: null, cantEdit: !1, keyMaps: [] }; } function d(b) { const c = b.view.doc; b.view.mode = a.getMode(b.options, b.options.mode), c.iter(0, c.size, (a) => { a.stateAfter = null; }), b.view.frontier = 0, C(b, 100); } function e(a) { const b = a.view.doc; const c = R(a.display); if (a.options.lineWrapping) { a.display.wrapper.className += ' CodeMirror-wrap'; const d = a.display.scroller.clientWidth / S(a.display) - 3; b.iter(0, b.size, (a) => { if (a.height != 0) { const b = Math.ceil(a.text.length / d) || 1; b != 1 && Fc(a, b * c); } }), a.display.sizer.style.minWidth = ''; } else a.display.wrapper.className = a.display.wrapper.className.replace(' CodeMirror-wrap', ''), k(a.view), b.iter(0, b.size, (a) => { a.height != 0 && Fc(a, c); }); W(a, 0, b.size), L(a), setTimeout(() => { m(a.display, a.view.doc.height); }, 100); } function f(a) { const b = ge[a.options.keyMap].style; a.display.wrapper.className = a.display.wrapper.className.replace(/\s*cm-keymap-\S+/g, '') + (b ? ` cm-keymap-${b}` : ''); } function g(a) { a.display.wrapper.className = a.display.wrapper.className.replace(/\s*cm-s-\S+/g, '') + a.options.theme.replace(/(^|\s)\s*/g, ' cm-s-'), L(a); } function h(a) { i(a), s(a, !0); } function i(a) { const b = a.display.gutters; const c = a.options.gutters; id(b); for (var d = 0; d < c.length; ++d) { const e = c[d]; const f = b.appendChild(hd('div', null, `CodeMirror-gutter ${e}`)); e == 'CodeMirror-linenumbers' && (a.display.lineGutter = f, f.style.width = `${a.display.lineNumWidth || 1}px`); }b.style.display = d ? '' : 'none'; } function j(a, b) { if (b.height == 0) return 0; for (var c, d = b.text.length, e = b; c = hc(e);) { var f = c.find(); e = Ec(a, f.from.line), d += f.from.ch - f.to.ch; } for (e = b; c = ic(e);) { var f = c.find(); d -= e.text.length - f.from.ch, e = Ec(a, f.to.line), d += e.text.length - f.to.ch; } return d; } function k(a) { a.maxLine = Ec(a.doc, 0), a.maxLineLength = j(a.doc, a.maxLine), a.maxLineChanged = !0, a.doc.iter(1, a.doc.size, (b) => { const c = j(a.doc, b); c > a.maxLineLength && (a.maxLineLength = c, a.maxLine = b); }); } function l(a) { for (var b = !1, c = 0; c < a.gutters.length; ++c)a.gutters[c] == 'CodeMirror-linenumbers' && (a.lineNumbers ? b = !0 : a.gutters.splice(c--, 1)); !b && a.lineNumbers && a.gutters.push('CodeMirror-linenumbers'); } function m(a, b) { const c = b + 2 * G(a); a.sizer.style.minHeight = a.heightForcer.style.top = `${c}px`; const d = Math.max(c, a.scroller.scrollHeight); const e = a.scroller.scrollWidth > a.scroller.clientWidth; const f = d > a.scroller.clientHeight; f ? (a.scrollbarV.style.display = 'block', a.scrollbarV.style.bottom = e ? `${ld(a.measure)}px` : '0', a.scrollbarV.firstChild.style.height = `${d - a.scroller.clientHeight + a.scrollbarV.clientHeight}px`) : a.scrollbarV.style.display = '', e ? (a.scrollbarH.style.display = 'block', a.scrollbarH.style.right = f ? `${ld(a.measure)}px` : '0', a.scrollbarH.firstChild.style.width = `${a.scroller.scrollWidth - a.scroller.clientWidth + a.scrollbarH.clientWidth}px`) : a.scrollbarH.style.display = '', e && f ? (a.scrollbarFiller.style.display = 'block', a.scrollbarFiller.style.height = a.scrollbarFiller.style.width = `${ld(a.measure)}px`) : a.scrollbarFiller.style.display = '', Nd && ld(a.measure) === 0 && (a.scrollbarV.style.minWidth = a.scrollbarH.style.minHeight = Od ? '18px' : '12px'); } function n(a, b, c) { let d = a.scroller.scrollTop; let e = a.wrapper.clientHeight; typeof c === 'number' ? d = c : c && (d = c.top, e = c.bottom - c.top), d = Math.floor(d - G(a)); const f = Math.ceil(d + e); return { from: Hc(b, d), to: Hc(b, f) }; } function o(a) { const b = a.display; if (b.alignWidgets || b.gutters.firstChild) { for (var c = r(b) - b.scroller.scrollLeft + a.view.scrollLeft, d = b.gutters.offsetWidth, e = `${c}px`, f = b.lineDiv.firstChild; f; f = f.nextSibling) if (f.alignable) for (let g = 0, h = f.alignable; g < h.length; ++g)h[g].style.left = e; b.gutters.style.left = `${c + d}px`; } } function p(a) { if (!a.options.lineNumbers) return !1; const b = a.view.doc; const c = q(a.options, b.size - 1); const d = a.display; if (c.length != d.lineNumChars) { const e = d.measure.appendChild(hd('div', [hd('div', c)], 'CodeMirror-linenumber CodeMirror-gutter-elt')); const f = e.firstChild.offsetWidth; const g = e.offsetWidth - f; return d.lineGutter.style.width = '', d.lineNumInnerWidth = Math.max(f, d.lineGutter.offsetWidth - g), d.lineNumWidth = d.lineNumInnerWidth + g, d.lineNumChars = d.lineNumInnerWidth ? c.length : -1, d.lineGutter.style.width = `${d.lineNumWidth}px`, !0; } return !1; } function q(a, b) { return String(a.lineNumberFormatter(b + a.firstLineNumber)); } function r(a) { return a.scroller.getBoundingClientRect().left - a.sizer.getBoundingClientRect().left; } function s(a, b, c) { const d = a.display.showingFrom; const e = a.display.showingTo; const f = t(a, b, c); return f && (Xc(a, a, 'update', a), (a.display.showingFrom != d || a.display.showingTo != e) && Xc(a, a, 'viewportChange', a, a.display.showingFrom, a.display.showingTo)), y(a), m(a.display, a.view.doc.height), f; } function t(a, b, c) { const d = a.display; const e = a.view.doc; if (!d.wrapper.clientWidth) return d.showingFrom = d.showingTo = d.viewOffset = 0, void 0; const f = n(d, e, c); if (!(b !== !0 && b.length == 0 && f.from > d.showingFrom && f.to < d.showingTo)) { if (b && p(a) && (b = !0), d.sizer.style.marginLeft = d.scrollbarH.style.left = `${d.gutters.offsetWidth}px`, b !== !0 && Ud) for (var g = 0; g < b.length; ++g) for (var h, i = b[g]; h = hc(Ec(e, i.from));) { var j = h.find().from.line; i.diff && (i.diff -= i.from - j), i.from = j; } let k = b === !0 ? 0 : 1 / 0; if (a.options.lineNumbers && b && b !== !0) for (var g = 0; g < b.length; ++g) if (b[g].diff) { k = b[g].from; break; } var j = Math.max(f.from - a.options.viewportMargin, 0); let l = Math.min(e.size, f.to + a.options.viewportMargin); if (d.showingFrom < j && j - d.showingFrom < 20 && (j = d.showingFrom), d.showingTo > l && d.showingTo - l < 20 && (l = Math.min(e.size, d.showingTo)), Ud) for (j = Gc(jc(e, Ec(e, j))); l < e.size && kc(Ec(e, l));)++l; for (var m = b === !0 ? [] : u([{ from: d.showingFrom, to: d.showingTo }], b), o = 0, g = 0; g < m.length; ++g) { const q = m[g]; q.from < j && (q.from = j), q.to > l && (q.to = l), q.from >= q.to ? m.splice(g--, 1) : o += q.to - q.from; } if (o != l - j || j != d.showingFrom || l != d.showingTo) { m.sort((a, b) => a.from - b.from), 0.7 * (l - j) > o && (d.lineDiv.style.display = 'none'), w(a, j, l, m, k), d.lineDiv.style.display = ''; const r = j != d.showingFrom || l != d.showingTo || d.lastSizeC != d.wrapper.clientHeight; r && (d.lastSizeC = d.wrapper.clientHeight), d.showingFrom = j, d.showingTo = l, C(a, 100); for (var s, t = d.lineDiv.offsetTop, v = d.lineDiv.firstChild; v; v = v.nextSibling) if (v.lineObj) { if (Fd) { const x = v.offsetTop + v.offsetHeight; s = x - t, t = x; } else { const y = v.getBoundingClientRect(); s = y.bottom - y.top; } const z = v.lineObj.height - s; s < 2 && (s = R(d)), (z > 0.001 || z < -0.001) && Fc(v.lineObj, s); } return d.viewOffset = Ic(a, Ec(e, j)), d.mover.style.top = `${d.viewOffset}px`, !0; } } } function u(a, b) { for (let c = 0, d = b.length || 0; d > c; ++c) { for (var e = b[c], f = [], g = e.diff || 0, h = 0, i = a.length; i > h; ++h) { const j = a[h]; e.to <= j.from && e.diff ? f.push({ from: j.from + g, to: j.to + g }) : e.to <= j.from || e.from >= j.to ? f.push(j) : (e.from > j.from && f.push({ from: j.from, to: e.from }), e.to < j.to && f.push({ from: e.to + g, to: j.to + g })); }a = f; } return a; } function v(a) { for (var b = a.display, c = {}, d = {}, e = b.gutters.firstChild, f = 0; e; e = e.nextSibling, ++f)c[a.options.gutters[f]] = e.offsetLeft, d[a.options.gutters[f]] = e.offsetWidth; return { fixedPos: r(b), gutterTotalWidth: b.gutters.offsetWidth, gutterLeft: c, gutterWidth: d, wrapperWidth: b.wrapper.clientWidth }; } function w(a, b, c, d, e) { function f(b) { const c = b.nextSibling; return Hd && Sd && a.display.currentWheelTarget == b ? (b.style.display = 'none', b.lineObj = null) : j.removeChild(b), c; } const g = v(a); const h = a.display; const i = a.options.lineNumbers; d.length || Ed || Hd && a.display.currentWheelTarget || id(h.lineDiv); var j = h.lineDiv; let k = j.firstChild; let l = d.shift(); let m = b; for (a.view.doc.iter(b, c, (b) => { if (l && l.to == m && (l = d.shift()), kc(b))b.height != 0 && Fc(b, 0); else if (l && l.from <= m && l.to > m) { for (;k.lineObj != b;)k = f(k); i && m >= e && k.lineNumber && kd(k.lineNumber, q(a.options, m)), k = k.nextSibling; } else { const c = x(a, b, m, g); j.insertBefore(c, k), c.lineObj = b; }++m; }); k;)k = f(k); } function x(a, b, c, d) { const e = xc(a, b); const f = b.gutterMarkers; const g = a.display; if (!(a.options.lineNumbers || f || b.bgClass || b.wrapClass || b.widgets && b.widgets.length)) return e; const h = hd('div', null, b.wrapClass, 'position: relative'); if (a.options.lineNumbers || f) { var i = h.appendChild(hd('div', null, null, `position: absolute; left: ${d.fixedPos}px`)); if (h.alignable = [i], !a.options.lineNumbers || f && f['CodeMirror-linenumbers'] || (h.lineNumber = i.appendChild(hd('div', q(a.options, c), 'CodeMirror-linenumber CodeMirror-gutter-elt', `left: ${d.gutterLeft['CodeMirror-linenumbers']}px; width: ${g.lineNumInnerWidth}px`))), f) for (let j = 0; j < a.options.gutters.length; ++j) { const k = a.options.gutters[j]; const l = f.hasOwnProperty(k) && f[k]; l && i.appendChild(hd('div', [l], 'CodeMirror-gutter-elt', `left: ${d.gutterLeft[k]}px; width: ${d.gutterWidth[k]}px`)); } } if (b.bgClass && h.appendChild(hd('div', ' ', `${b.bgClass} CodeMirror-linebackground`)), h.appendChild(e), b.widgets) for (let m = 0, n = b.widgets; m < n.length; ++m) { const o = n[m]; const p = hd('div', [o.node], 'CodeMirror-linewidget'); if (p.widget = o, o.noHScroll) { (h.alignable || (h.alignable = [])).push(p); let r = d.wrapperWidth; p.style.left = `${d.fixedPos}px`, o.coverGutter || (r -= d.gutterTotalWidth, p.style.paddingLeft = `${d.gutterTotalWidth}px`), p.style.width = `${r}px`; }o.coverGutter && (p.style.zIndex = 5, p.style.position = 'relative', o.noHScroll || (p.style.marginLeft = `${-d.gutterTotalWidth}px`)), o.above ? h.insertBefore(p, a.options.lineNumbers && b.height != 0 ? i : e) : h.appendChild(p); } return Fd && (h.style.zIndex = 2), h; } function y(a) { const b = a.display; const c = zb(a.view.sel.from, a.view.sel.to); c || a.options.showCursorWhenSelecting ? z(a) : b.cursor.style.display = b.otherCursor.style.display = 'none', c ? b.selectionDiv.style.display = 'none' : A(a); const d = O(a, a.view.sel.head, 'div'); const e = b.wrapper.getBoundingClientRect(); const f = b.lineDiv.getBoundingClientRect(); b.inputDiv.style.top = `${Math.max(0, Math.min(b.wrapper.clientHeight - 10, d.top + f.top - e.top))}px`, b.inputDiv.style.left = `${Math.max(0, Math.min(b.wrapper.clientWidth - 10, d.left + f.left - e.left))}px`; } function z(a) { const b = a.display; const c = O(a, a.view.sel.head, 'div'); b.cursor.style.left = `${c.left}px`, b.cursor.style.top = `${c.top}px`, b.cursor.style.height = `${Math.max(0, c.bottom - c.top) * a.options.cursorHeight}px`, b.cursor.style.display = '', c.other ? (b.otherCursor.style.display = '', b.otherCursor.style.left = `${c.other.left}px`, b.otherCursor.style.top = `${c.other.top}px`, b.otherCursor.style.height = `${0.85 * (c.other.bottom - c.other.top)}px`) : b.otherCursor.style.display = 'none'; } function A(a) { function b(a, b, c, d) { b < 0 && (b = 0), g.appendChild(hd('div', null, 'CodeMirror-selected', `position: absolute; left: ${a}px; top: ${b}px; width: ${c == null ? h - a : c}px; height: ${d - b}px`)); } function c(c, d, f, g) { function j(b) { return N(a, { line: c, ch: b }, 'div', k); } var k = Ec(e, c); const l = k.text.length; let m = g ? 1 / 0 : -1 / 0; return nd(Jc(k), d || 0, f == null ? l : f, (a, c, e) => { const k = j(e == 'rtl' ? c - 1 : a); const n = j(e == 'rtl' ? a : c - 1); let o = k.left; let p = n.right; n.top - k.top > 3 && (b(o, k.top, null, k.bottom), o = i, k.bottom < n.top && b(o, k.bottom, null, n.top)), f == null && c == l && (p = h), d == null && a == 0 && (o = i), m = g ? Math.min(n.top, m) : Math.max(n.bottom, m), i + 1 > o && (o = i), b(o, n.top, p - o, n.bottom); }), m; } const d = a.display; var e = a.view.doc; const f = a.view.sel; var g = document.createDocumentFragment(); var h = d.lineSpace.offsetWidth; var i = H(a.display); if (f.from.line == f.to.line)c(f.from.line, f.from.ch, f.to.ch); else { for (var j, k, l = Ec(e, f.from.line), m = l, n = [f.from.line, f.from.ch]; j = ic(m);) { const o = j.find(); if (n.push(o.from.ch, o.to.line, o.to.ch), o.to.line == f.to.line) { n.push(f.to.ch), k = !0; break; }m = Ec(e, o.to.line); } if (k) for (let p = 0; p < n.length; p += 3)c(n[p], n[p + 1], n[p + 2]); else { let q; let r; const s = Ec(e, f.to.line); q = f.from.ch ? c(f.from.line, f.from.ch, null, !1) : Ic(a, l) - d.viewOffset, r = f.to.ch ? c(f.to.line, hc(s) ? null : 0, f.to.ch, !0) : Ic(a, s) - d.viewOffset, r > q && b(i, q, null, r); } }jd(d.selectionDiv, g), d.selectionDiv.style.display = ''; } function B(a) { const b = a.display; clearInterval(b.blinker); let c = !0; b.cursor.style.visibility = b.otherCursor.style.visibility = '', b.blinker = setInterval(() => { b.cursor.offsetHeight && (b.cursor.style.visibility = b.otherCursor.style.visibility = (c = !c) ? '' : 'hidden'); }, a.options.cursorBlinkRate); } function C(a, b) { a.view.frontier < a.display.showingTo && a.view.highlight.set(b, ed(D, a)); } function D(a) { const b = a.view; const c = b.doc; if (!(b.frontier >= a.display.showingTo)) { let d; const e = +new Date() + a.options.workTime; const f = Tb(b.mode, F(a, b.frontier)); const g = []; c.iter(b.frontier, Math.min(c.size, a.display.showingTo + 500), c => (b.frontier >= a.display.showingFrom ? (uc(a, c, f) && b.frontier >= a.display.showingFrom && (d && d.end == b.frontier ? d.end++ : g.push(d = { start: b.frontier, end: b.frontier + 1 })), c.stateAfter = Tb(b.mode, f)) : (vc(a, c, f), c.stateAfter = b.frontier % 5 == 0 ? Tb(b.mode, f) : null), ++b.frontier, +new Date() > e ? (C(a, a.options.workDelay), !0) : void 0)), g.length && V(a, function () { for (let a = 0; a < g.length; ++a)W(this, g[a].start, g[a].end); })(); } } function E(a, b) { for (var c, d, e = a.view.doc, f = b, g = b - 100; f > g; --f) { if (f == 0) return 0; const h = Ec(e, f - 1); if (h.stateAfter) return f; const i = $c(h.text, null, a.options.tabSize); (d == null || c > i) && (d = f - 1, c = i); } return d; } function F(a, b) { const c = a.view; let d = E(a, b); let e = d && Ec(c.doc, d - 1).stateAfter; return e = e ? Tb(c.mode, e) : Ub(c.mode), c.doc.iter(d, b, (f) => { vc(a, f, e); const g = d == b - 1 || d % 5 == 0 || d >= c.showingFrom && d < c.showingTo; f.stateAfter = g ? Tb(c.mode, e) : null, ++d; }), e; } function G(a) { return a.lineSpace.offsetTop; } function H(a) { const b = jd(a.measure, hd('pre')).appendChild(hd('span', 'x')); return b.offsetLeft; } function I(a, b, c, d) { for (var d = d || J(a, b), e = -1, f = c; ;f += e) { var g = d[f]; if (g) break; e < 0 && f == 0 && (e = 1); } return { left: c > f ? g.right : g.left, right: f > c ? g.left : g.right, top: g.top, bottom: g.bottom }; } function J(a, b) { for (var c = a.display, d = a.display.measureLineCache, e = 0; e < d.length; ++e) { var f = d[e]; if (f.text == b.text && f.markedSpans == b.markedSpans && c.scroller.clientWidth == f.width) return f.measure; } const g = K(a, b); var f = { text: b.text, width: c.scroller.clientWidth, markedSpans: b.markedSpans, measure: g }; return d.length == 16 ? d[++c.measureLineCachePos % 16] = f : d.push(f), g; } function K(a, b) { const c = a.display; const d = dd(b.text.length); const e = xc(a, b, d); if (Ed && !Fd && !a.options.lineWrapping && e.childNodes.length > 100) { for (var f = document.createDocumentFragment(), g = 10, h = e.childNodes.length, i = 0, j = Math.ceil(h / g); j > i; ++i) { for (var k = hd('div', null, null, 'display: inline-block'), l = 0; g > l && h; ++l)k.appendChild(e.firstChild), --h; f.appendChild(k); }e.appendChild(f); }jd(c.measure, e); for (var m, n = c.lineDiv.getBoundingClientRect(), o = [], p = dd(b.text.length), q = e.offsetHeight, i = 0; i < d.length; ++i) if (m = d[i]) { for (var r = m.getBoundingClientRect(), s = Math.max(0, r.top - n.top), t = Math.min(r.bottom - n.top, q), l = 0; l < o.length; l += 2) { const u = o[l]; const v = o[l + 1]; if (!(u > t || s > v) && (s >= u && v >= t || u >= s && t >= v || Math.min(t, v) - Math.max(s, u) >= t - s >> 1)) { o[l] = Math.min(s, u), o[l + 1] = Math.max(t, v); break; } }l == o.length && o.push(s, t), p[i] = { left: r.left - n.left, right: r.right - n.left, top: l }; } for (var m, i = 0; i < p.length; ++i) if (m = p[i]) { const w = m.top; m.top = o[w], m.bottom = o[w + 1]; } return p; } function L(a) { a.display.measureLineCache.length = a.display.measureLineCachePos = 0, a.display.cachedCharWidth = a.display.cachedTextHeight = null, a.view.maxLineChanged = !0; } function M(a, b, c, d) { if (b.widgets) for (let e = 0; e < b.widgets.length; ++e) if (b.widgets[e].above) { const f = b.widgets[e].node.offsetHeight; c.top += f, c.bottom += f; } if (d == 'line') return c; d || (d = 'local'); let g = Ic(a, b); if (d != 'local' && (g -= a.display.viewOffset), d == 'page') { const h = a.display.lineSpace.getBoundingClientRect(); g += h.top + (window.pageYOffset || (document.documentElement || document.body).scrollTop); const i = h.left + (window.pageXOffset || (document.documentElement || document.body).scrollLeft); c.left += i, c.right += i; } return c.top += g, c.bottom += g, c; } function N(a, b, c, d) { return d || (d = Ec(a.view.doc, b.line)), M(a, d, I(a, d, b.ch), c); } function O(a, b, c, d, e) { function f(b, f) { const g = I(a, d, b, e); return f ? g.left = g.right : g.right = g.left, M(a, d, g, c); }d = d || Ec(a.view.doc, b.line), e || (e = J(a, d)); const g = Jc(d); const h = b.ch; if (!g) return f(h); for (var i, j, k = g[0].level, l = 0; l < g.length; ++l) { var m; var n; const o = g[l]; const p = o.level % 2; if (o.from < h && o.to > h) return f(h, p); const q = p ? o.to : o.from; const r = p ? o.from : o.to; if (q == h)n = l && o.level < (m = g[l - 1]).level ? f(m.level % 2 ? m.from : m.to - 1, !0) : f(p && o.from != o.to ? h - 1 : h), p == k ? i = n : j = n; else if (r == h) { var m = l < g.length - 1 && g[l + 1]; if (!p && m && m.from == m.to) continue; n = m && o.level < m.level ? f(m.level % 2 ? m.to - 1 : m.from) : f(p ? h : h - 1, !0), p == k ? i = n : j = n; } } return k && !h && (j = f(g[0].to - 1)), i ? (j && (i.other = j), i) : j; } function P(a, b, c) { const d = a.view.doc; if (c += a.display.viewOffset, c < 0) return { line: 0, ch: 0, outside: !0 }; let e = Hc(d, c); if (e >= d.size) return { line: d.size - 1, ch: Ec(d, d.size - 1).text.length }; for (b < 0 && (b = 0); ;) { const f = Ec(d, e); const g = Q(a, f, e, b, c); const h = ic(f); if (!h || g.ch != rd(f)) return g; e = h.find().to.line; } } function Q(a, b, c, d, e) { function f(d) { const e = O(a, { line: c, ch: d }, 'line', b, j); return h = !0, g > e.bottom ? Math.max(0, e.left - i) : g < e.top ? e.left + i : (h = !1, e.left); } var g = e - Ic(a, b); var h = !1; var i = a.display.wrapper.clientWidth; var j = J(a, b); const k = Jc(b); let l = b.text.length; let m = qd(b); let n = rd(b); let o = H(a.display); let p = f(n); if (d > p) return { line: c, ch: n, outside: h }; for (;;) { if (k ? n == m || n == ud(b, m, 1) : n - m <= 1) { for (var q = p - d > d - o, r = q ? m : n; ne.test(b.text.charAt(r));)++r; return { line: c, ch: r, after: q, outside: h }; } const s = Math.ceil(l / 2); let t = m + s; if (k) { t = m; for (let u = 0; s > u; ++u)t = ud(b, t, 1); } const v = f(t); v > d ? (n = t, p = v, h && (p += 1e3), l -= s) : (m = t, o = v, l = s); } } function R(a) { if (a.cachedTextHeight != null) return a.cachedTextHeight; if (wd == null) { wd = hd('pre'); for (let b = 0; b < 49; ++b)wd.appendChild(document.createTextNode('x')), wd.appendChild(hd('br')); wd.appendChild(document.createTextNode('x')); }jd(a.measure, wd); const c = wd.offsetHeight / 50; return c > 3 && (a.cachedTextHeight = c), id(a.measure), c || 1; } function S(a) { if (a.cachedCharWidth != null) return a.cachedCharWidth; const b = hd('span', 'x'); const c = hd('pre', [b]); jd(a.measure, c); const d = b.offsetWidth; return d > 2 && (a.cachedCharWidth = d), d || 10; } function T(a) { a.curOp ? ++a.curOp.depth : a.curOp = { depth: 1, changes: [], delayedCallbacks: [], updateInput: null, userSelChange: null, textChanged: null, selectionChanged: !1, updateMaxLine: !1, id: ++a.nextOpId }; } function U(a) { const b = a.curOp; if (!--b.depth) { a.curOp = null; const c = a.view; const d = a.display; if (b.updateMaxLine && k(c), c.maxLineChanged && !a.options.lineWrapping) { const e = I(a, c.maxLine, c.maxLine.text.length).right; d.sizer.style.minWidth = `${e + 3 + je}px`, c.maxLineChanged = !1; } let f; let g; if (b.selectionChanged) { const h = O(a, c.sel.head); f = Mb(a, h.left, h.top, h.left, h.bottom); }(b.changes.length || f && f.scrollTop != null) && (g = s(a, b.changes, f && f.scrollTop)), !g && b.selectionChanged && y(a), f && Jb(a), b.selectionChanged && B(a), c.focused && b.updateInput && $(a, b.userSelChange), b.textChanged && Wc(a, 'change', a, b.textChanged), b.selectionChanged && Wc(a, 'cursorActivity', a); for (let i = 0; i < b.delayedCallbacks.length; ++i)b.delayedCallbacks[i](a); } } function V(a, b) { return function () { const c = a || this; T(c); try { var d = b.apply(c, arguments); } finally { U(c); } return d; }; } function W(a, b, c, d) { a.curOp.changes.push({ from: b, to: c, diff: d }); } function X(a) { a.view.pollingFast || a.display.poll.set(a.options.pollInterval, () => { Z(a), a.view.focused && X(a); }); } function Y(a) { function b() { const d = Z(a); d || c ? (a.display.pollingFast = !1, X(a)) : (c = !0, a.display.poll.set(60, b)); } var c = !1; a.display.pollingFast = !0, a.display.poll.set(20, b); } function Z(a) { const b = a.display.input; const c = a.display.prevInput; const d = a.view; const e = d.sel; if (!d.focused || te(b) || ab(a)) return !1; const f = b.value; if (f == c && zb(e.from, e.to)) return !1; T(a), d.sel.shift = !1; for (var g = 0, h = Math.min(c.length, f.length); h > g && c[g] == f[g];)++g; let i = e.from; let j = e.to; g < c.length ? i = { line: i.line, ch: i.ch - (c.length - g) } : d.overwrite && zb(i, j) && !a.display.pasteIncoming && (j = { line: j.line, ch: Math.min(Ec(a.view.doc, j.line).text.length, j.ch + (f.length - g)) }); const k = a.curOp.updateInput; return ub(a, i, j, se(f.slice(g)), 'end', a.display.pasteIncoming ? 'paste' : 'input', { from: i, to: j }), a.curOp.updateInput = k, f.length > 1e3 ? b.value = a.display.prevInput = '' : a.display.prevInput = f, U(a), a.display.pasteIncoming = !1, !0; } function $(a, b) { let c; let d; const e = a.view; zb(e.sel.from, e.sel.to) ? b && (a.display.prevInput = a.display.input.value = '') : (a.display.prevInput = '', c = ue && (e.sel.to.line - e.sel.from.line > 100 || (d = a.getSelection()).length > 1e3), a.display.input.value = c ? '-' : d || a.getSelection(), e.focused && bd(a.display.input)), a.display.inaccurateSelection = c; } function _(a) { a.options.readOnly == 'nocursor' || !Ed && document.activeElement == a.display.input || a.display.input.focus(); } function ab(a) { return a.options.readOnly || a.view.cantEdit; } function bb(a) { function b() { a.view.focused && setTimeout(ed(_, a), 0); } function c(b) { a.options.onDragEvent && a.options.onDragEvent(a, Nc(b)) || Qc(b); } function d() { e.inaccurateSelection && (e.prevInput = '', e.inaccurateSelection = !1, e.input.value = a.getSelection(), bd(e.input)); } var e = a.display; Uc(e.scroller, 'mousedown', V(a, eb)), Uc(e.scroller, 'dblclick', V(a, Oc)), Uc(e.lineSpace, 'selectstart', (a) => { cb(e, a) || Oc(a); }), Dd || Uc(e.scroller, 'contextmenu', (b) => { tb(a, b); }), Uc(e.scroller, 'scroll', () => { ib(a, e.scroller.scrollTop), jb(a, e.scroller.scrollLeft, !0), Wc(a, 'scroll', a); }), Uc(e.scrollbarV, 'scroll', () => { ib(a, e.scrollbarV.scrollTop); }), Uc(e.scrollbarH, 'scroll', () => { jb(a, e.scrollbarH.scrollLeft); }), Uc(e.scroller, 'mousewheel', (b) => { kb(a, b); }), Uc(e.scroller, 'DOMMouseScroll', (b) => { kb(a, b); }), Uc(e.scrollbarH, 'mousedown', b), Uc(e.scrollbarV, 'mousedown', b), Uc(e.wrapper, 'scroll', () => { e.wrapper.scrollTop = e.wrapper.scrollLeft = 0; }), Uc(window, 'resize', function f() { e.cachedCharWidth = e.cachedTextHeight = null, L(a), e.wrapper.parentNode ? s(a, !0) : Vc(window, 'resize', f); }), Uc(e.input, 'keyup', V(a, (b) => { a.options.onKeyEvent && a.options.onKeyEvent(a, Nc(b)) || Tc(b, 'keyCode') == 16 && (a.view.sel.shift = !1); })), Uc(e.input, 'input', ed(Y, a)), Uc(e.input, 'keydown', V(a, pb)), Uc(e.input, 'keypress', V(a, qb)), Uc(e.input, 'focus', ed(rb, a)), Uc(e.input, 'blur', ed(sb, a)), a.options.dragDrop && (Uc(e.scroller, 'dragstart', (b) => { hb(a, b); }), Uc(e.scroller, 'dragenter', c), Uc(e.scroller, 'dragover', c), Uc(e.scroller, 'drop', V(a, fb))), Uc(e.scroller, 'paste', () => { _(a), Y(a); }), Uc(e.input, 'paste', () => { e.pasteIncoming = !0, Y(a); }), Uc(e.input, 'cut', d), Uc(e.input, 'copy', d), Md && Uc(e.sizer, 'mouseup', () => { document.activeElement == e.input && e.input.blur(), _(a); }); } function cb(a, b) { for (let c = Rc(b); c != a.wrapper; c = c.parentNode) if (/\bCodeMirror-(?:line)?widget\b/.test(c.className) || c.parentNode == a.sizer && c != a.mover) return !0; } function db(a, b, c) { const d = a.display; if (!c) { const e = Rc(b); if (e == d.scrollbarH || e == d.scrollbarH.firstChild || e == d.scrollbarV || e == d.scrollbarV.firstChild || e == d.scrollbarFiller) return null; } let f; let g; const h = d.lineSpace.getBoundingClientRect(); try { f = b.clientX, g = b.clientY; } catch (b) { return null; } return P(a, f - h.left, g - h.top); } function eb(a) { + function b(a) { if (l == 'single') return Fb(e, Db(i, j), a), void 0; if (q = Db(i, q), r = Db(i, r), l == 'double') { const b = Qb(Ec(i, a.line).text, a); Ab(a, q) ? Fb(e, b.from, r) : Fb(e, q, b.to); } else l == 'triple' && (Ab(a, q) ? Fb(e, r, Db(i, { line: a.line, ch: 0 })) : Fb(e, q, Db(i, { line: a.line + 1, ch: 0 }))); } function c(a) { const d = ++t; const h = db(e, a, !0); if (h) if (zb(h, o)) { const j = a.clientY < s.top ? -20 : a.clientY > s.bottom ? 20 : 0; j && setTimeout(V(e, () => { t == d && (f.scroller.scrollTop += j, c(a)); }), 50); } else { g.focused || rb(e), o = h, b(h); const k = n(f, i); (h.line >= k.to || h.line < k.from) && setTimeout(V(e, () => { t == d && c(a); }), 150); } } function d(a) { t = 1 / 0; const c = db(e, a); c && b(c), Oc(a), _(e), Vc(document, 'mousemove', u), Vc(document, 'mouseup', v); } var e = this; var f = e.display; var g = e.view; const h = g.sel; var i = g.doc; if (h.shift = Tc(a, 'shiftKey'), cb(f, a)) return Hd || (f.scroller.draggable = !1, setTimeout(() => { f.scroller.draggable = !0; }, 100)), void 0; if (!gb(e, a)) { + var j = db(e, a); switch (Sc(a)) { case 3: return Dd && tb.call(e, e, a), void 0; case 2: return j && Fb(e, j), setTimeout(ed(_, e), 20), Oc(a), void 0; } if (!j) return Rc(a) == f.scroller && Oc(a), void 0; g.focused || rb(e); const k = +new Date(); var + l = 'single'; if (yd && yd.time > k - 400 && zb(yd.pos, j))l = 'triple', Oc(a), setTimeout(ed(_, e), 20), Rb(e, j.line); else if (xd && xd.time > k - 400 && zb(xd.pos, j)) { l = 'double', yd = { time: k, pos: j }, Oc(a); const m = Qb(Ec(i, j.line).text, j); Fb(e, m.from, m.to); } else xd = { time: k, pos: j }; var o = j; if (e.options.dragDrop && oe && !ab(e) && !zb(h.from, h.to) && !Ab(j, h.from) && !Ab(h.to, j) && l == 'single') { var p = V(e, (b) => { Hd && (f.scroller.draggable = !1), g.draggingText = !1, Vc(document, 'mouseup', p), Vc(f.scroller, 'drop', p), Math.abs(a.clientX - b.clientX) + Math.abs(a.clientY - b.clientY) < 10 && (Oc(b), Fb(e, j), _(e)); }); return Hd && (f.scroller.draggable = !0), g.draggingText = p, f.scroller.dragDrop && f.scroller.dragDrop(), Uc(document, 'mouseup', p), Uc(f.scroller, 'drop', p), void 0; }Oc(a), l == 'single' && Fb(e, Db(i, j)); var q = h.from; var r = h.to; var s = f.wrapper.getBoundingClientRect(); var t = 0; var u = V(e, (a) => { Ed || Sc(a) ? c(a) : d(a); }); var v = V(e, d); Uc(document, 'mousemove', u), Uc(document, 'mouseup', v); + } + } function fb(a) { const b = this; if (!b.options.onDragEvent || !b.options.onDragEvent(b, Nc(a))) { Oc(a); let c = db(b, a, !0); const d = a.dataTransfer.files; if (c && !ab(b)) if (d && d.length && window.FileReader && window.File) for (var e = d.length, f = Array(e), g = 0, h = function (a, d) { const h = new FileReader(); h.onload = function () { f[d] = h.result, ++g == e && (c = Db(b.view.doc, c), V(b, () => { const a = yb(b, f.join(''), c, c, 'paste'); Gb(b, c, a); })()); }, h.readAsText(a); }, i = 0; e > i; ++i)h(d[i], i); else { if (b.view.draggingText && !Ab(c, b.view.sel.from) && !Ab(b.view.sel.to, c)) return b.view.draggingText(a), Ed && setTimeout(ed(_, b), 50), void 0; try { var f = a.dataTransfer.getData('Text'); if (f) { const j = b.view.sel.from; const k = b.view.sel.to; Gb(b, c, c), b.view.draggingText && yb(b, '', j, k, 'paste'), b.replaceSelection(f, null, 'paste'), _(b), rb(b); } } catch (a) {} } } } function gb(a, b) { const c = a.display; try { var d = b.clientX; var e = b.clientY; } catch (b) { return !1; } if (d >= Math.floor(c.gutters.getBoundingClientRect().right)) return !1; if (Oc(b), !Yc(a, 'gutterClick')) return !0; const f = c.lineDiv.getBoundingClientRect(); if (e > f.bottom) return !0; e -= f.top - c.viewOffset; for (let g = 0; g < a.options.gutters.length; ++g) { const h = c.gutters.childNodes[g]; if (h && h.getBoundingClientRect().right >= d) { const i = Hc(a.view.doc, e); const j = a.options.gutters[g]; Xc(a, a, 'gutterClick', a, i, j, b); break; } } return !0; } function hb(a, b) { const c = a.getSelection(); b.dataTransfer.setData('Text', c), b.dataTransfer.setDragImage && !Ld && b.dataTransfer.setDragImage(hd('img'), 0, 0); } function ib(a, b) { Math.abs(a.view.scrollTop - b) < 2 || (a.view.scrollTop = b, Dd || s(a, [], b), a.display.scroller.scrollTop != b && (a.display.scroller.scrollTop = b), a.display.scrollbarV.scrollTop != b && (a.display.scrollbarV.scrollTop = b), Dd && s(a, [])); } function jb(a, b, c) { (c ? b == a.view.scrollLeft : Math.abs(a.view.scrollLeft - b) < 2) || (a.view.scrollLeft = b, o(a), a.display.scroller.scrollLeft != b && (a.display.scroller.scrollLeft = b), a.display.scrollbarH.scrollLeft != b && (a.display.scrollbarH.scrollLeft = b)); } function kb(a, b) { let c = b.wheelDeltaX; let d = b.wheelDeltaY; if (c == null && b.detail && b.axis == b.HORIZONTAL_AXIS && (c = b.detail), d == null && b.detail && b.axis == b.VERTICAL_AXIS ? d = b.detail : d == null && (d = b.wheelDelta), d && Sd && Hd) for (let e = b.target; e != f; e = e.parentNode) if (e.lineObj) { a.display.currentWheelTarget = e; break; } var f = a.display.scroller; if (c && !Dd && !Kd && Wd != null) return d && ib(a, Math.max(0, Math.min(f.scrollTop + d * Wd, f.scrollHeight - f.clientHeight))), jb(a, Math.max(0, Math.min(f.scrollLeft + c * Wd, f.scrollWidth - f.clientWidth))), Oc(b), Bd = null, void 0; if (d && Wd != null) { const g = d * Wd; let h = a.view.scrollTop; let i = h + a.display.wrapper.clientHeight; g < 0 ? h = Math.max(0, h + g - 50) : i = Math.min(a.view.doc.height, i + g + 50), s(a, [], { top: h, bottom: i }); }Vd < 20 && (Bd == null ? (Bd = f.scrollLeft, Cd = f.scrollTop, zd = c, Ad = d, setTimeout(() => { if (Bd != null) { const a = f.scrollLeft - Bd; const b = f.scrollTop - Cd; const c = b && Ad && b / Ad || a && zd && a / zd; Bd = Cd = null, c && (Wd = (Wd * Vd + c) / (Vd + 1), ++Vd); } }, 200)) : (zd += c, Ad += d)); } function lb(a, b, c) { if (typeof b === 'string' && (b = fe[b], !b)) return !1; a.display.pollingFast && Z(a) && (a.display.pollingFast = !1); const d = a.view; const e = d.sel.shift; try { ab(a) && (d.suppressEdits = !0), c && (d.sel.shift = !1), b(a); } catch (f) { if (f != ke) throw f; return !1; } finally { d.sel.shift = e, d.suppressEdits = !1; } return !0; } function mb(a) { const b = a.view.keyMaps.slice(0); return b.push(a.options.keyMap), a.options.extraKeys && b.unshift(a.options.extraKeys), b; } function nb(a, b) { function c() { i = !0; } const d = Vb(a.options.keyMap); const e = d.auto; clearTimeout(Xd), e && !Xb(b) && (Xd = setTimeout(() => { Vb(a.options.keyMap) == d && (a.options.keyMap = e.call ? e.call(null, a) : e); }, 50)); let f = ve[Tc(b, 'keyCode')]; let g = !1; const h = Sd && (Kd || Id); if (f == null || b.altGraphKey) return !1; Tc(b, 'altKey') && (f = `Alt-${f}`), Tc(b, h ? 'metaKey' : 'ctrlKey') && (f = `Ctrl-${f}`), Tc(b, h ? 'ctrlKey' : 'metaKey') && (f = `Cmd-${f}`); var i = !1; const j = mb(a); return g = Tc(b, 'shiftKey') ? Wb(`Shift-${f}`, j, b => lb(a, b, !0), c) || Wb(f, j, b => (typeof b === 'string' && /^go[A-Z]/.test(b) ? lb(a, b) : void 0), c) : Wb(f, j, b => lb(a, b), c), i && (g = !1), g && (Oc(b), B(a), Gd && (b.oldKeyCode = b.keyCode, b.keyCode = 0)), g; } function ob(a, b, c) { const d = Wb(`'${c}'`, mb(a), b => lb(a, b, !0)); return d && (Oc(b), B(a)), d; } function pb(a) { const b = this; if (b.view.focused || rb(b), Ed && a.keyCode == 27 && (a.returnValue = !1), !b.options.onKeyEvent || !b.options.onKeyEvent(b, Nc(a))) { const c = Tc(a, 'keyCode'); b.view.sel.shift = c == 16 || Tc(a, 'shiftKey'); const d = nb(b, a); Kd && (Zd = d ? c : null, d || c != 88 || ue || !Tc(a, Sd ? 'metaKey' : 'ctrlKey') || b.replaceSelection('')); } } function qb(a) { const b = this; if (!b.options.onKeyEvent || !b.options.onKeyEvent(b, Nc(a))) { const c = Tc(a, 'keyCode'); const d = Tc(a, 'charCode'); if (Kd && c == Zd) return Zd = null, Oc(a), void 0; if (!(Kd && (!a.which || a.which < 10) || Md) || !nb(b, a)) { const e = String.fromCharCode(d == null ? c : d); this.options.electricChars && this.view.mode.electricChars && this.options.smartIndent && !ab(this) && this.view.mode.electricChars.indexOf(e) > -1 && setTimeout(V(b, () => { Nb(b, b.view.sel.to.line, 'smart'); }), 75), ob(b, a, e) || Y(b); } } } function rb(a) { a.options.readOnly != 'nocursor' && (a.view.focused || (Wc(a, 'focus', a), a.view.focused = !0, a.display.scroller.className.search(/\bCodeMirror-focused\b/) == -1 && (a.display.scroller.className += ' CodeMirror-focused'), $(a, !0)), X(a), B(a)); } function sb(a) { a.view.focused && (Wc(a, 'blur', a), a.view.focused = !1, a.display.scroller.className = a.display.scroller.className.replace(' CodeMirror-focused', '')), clearInterval(a.display.blinker), setTimeout(() => { a.view.focused || (a.view.sel.shift = !1); }, 150); } function tb(a, b) { + function c() { + if (d.inputDiv.style.position = 'relative', d.input.style.cssText = h, Gd && (d.scrollbarV.scrollTop = d.scroller.scrollTop = g), X(a), d.input.selectionStart != null) { + clearTimeout(Yd); + const b = d.input.value = ` ${zb(e.from, e.to) ? '' : d.input.value}`; let c = 0; d.prevInput = ' ', d.input.selectionStart = 1, d.input.selectionEnd = b.length, Yd = setTimeout(function f() { d.prevInput == ' ' && d.input.selectionStart == 0 ? V(a, fe.selectAll)(a) : c++ < 10 ? Yd = setTimeout(f, 500) : $(a); }, 200); + } + } var d = a.display; var e = a.view.sel; const f = db(a, b); var g = d.scroller.scrollTop; if (f && !Kd) { (zb(e.from, e.to) || Ab(f, e.from) || !Ab(f, e.to)) && V(a, Gb)(a, f, f); var h = d.input.style.cssText; d.inputDiv.style.position = 'absolute', d.input.style.cssText = `position: fixed; width: 30px; height: 30px; top: ${b.clientY - 5}px; left: ${b.clientX - 5}px; z-index: 1000; background: white; outline: none;border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);`, _(a), $(a, !0), zb(e.from, e.to) && (d.input.value = d.prevInput = ' '), Dd ? (Qc(b), Uc(window, 'mouseup', function i() { Vc(window, 'mouseup', i), setTimeout(c, 20); })) : setTimeout(c, 50); } + } function ub(a, b, c, d, e, f) { const g = Td && fc(a.view.doc, b, c); if (!g) return vb(a, b, c, d, e, f); for (let h = g.length - 1; h >= 1; --h)vb(a, g[h].from, g[h].to, [''], f); return g.length ? vb(a, g[0].from, g[0].to, d, e, f) : void 0; } function vb(a, b, c, d, e, f) { if (!a.view.suppressEdits) { const g = a.view; const h = g.doc; const i = []; h.iter(b.line, c.line + 1, (a) => { i.push(oc(a.text, a.markedSpans)); }); const j = g.sel.from; const k = g.sel.to; const l = ec(nc(i[0]), nc(ad(i)), b.ch, c.ch, d); const m = xb(a, b, c, l, e, f); return g.history && Lc(a, b.line, d.length, i, f, j, k, g.sel.from, g.sel.to), m; } } function wb(a, b) { const c = a.view.doc; const d = a.view.history; const e = (b == 'undo' ? d.done : d.undone).pop(); if (e) { for (var f = { events: [], fromBefore: e.fromAfter, toBefore: e.toAfter, fromAfter: e.fromBefore, toAfter: e.toBefore }, g = e.events.length - 1; g >= 0; g -= 1) { d.dirtyCounter += b == 'undo' ? -1 : 1; const h = e.events[g]; var i = []; const j = h.start + h.added; c.iter(h.start, j, (a) => { i.push(oc(a.text, a.markedSpans)); }), f.events.push({ start: h.start, added: h.old.length, old: i }); const k = g ? null : { from: e.fromBefore, to: e.toBefore }; xb(a, { line: h.start, ch: 0 }, { line: j - 1, ch: Ec(c, j - 1).text.length }, h.old, k, b); }(b == 'undo' ? d.undone : d.done).push(f); } } function xb(a, b, c, d, e, f) { const g = a.view; const h = g.doc; const i = a.display; if (!g.suppressEdits) { const k = c.line - b.line; const l = Ec(h, b.line); const m = Ec(h, c.line); let n = !1; let o = b.line; a.options.lineWrapping || (o = Gc(jc(h, l)), h.iter(o, c.line + 1, a => (j(h, a) == g.maxLineLength ? (n = !0, !0) : void 0))); const p = ad(d); const q = R(i); if (b.ch == 0 && c.ch == 0 && mc(p) == '') { for (var r = [], s = 0, t = d.length - 1; t > s; ++s)r.push(rc(mc(d[s]), nc(d[s]), q)); sc(a, m, m.text, nc(p)), k && h.remove(b.line, k, a), r.length && h.insert(b.line, r); } else if (l == m) if (d.length == 1)sc(a, l, l.text.slice(0, b.ch) + mc(d[0]) + l.text.slice(c.ch), nc(d[0])); else { for (var r = [], s = 1, t = d.length - 1; t > s; ++s)r.push(rc(mc(d[s]), nc(d[s]), q)); r.push(rc(mc(p) + l.text.slice(c.ch), nc(p), q)), sc(a, l, l.text.slice(0, b.ch) + mc(d[0]), nc(d[0])), h.insert(b.line + 1, r); } else if (d.length == 1)sc(a, l, l.text.slice(0, b.ch) + mc(d[0]) + m.text.slice(c.ch), nc(d[0])), h.remove(b.line + 1, k, a); else { var r = []; sc(a, l, l.text.slice(0, b.ch) + mc(d[0]), nc(d[0])), sc(a, m, mc(p) + m.text.slice(c.ch), nc(p)); for (var s = 1, t = d.length - 1; t > s; ++s)r.push(rc(mc(d[s]), nc(d[s]), q)); k > 1 && h.remove(b.line + 1, k - 1, a), h.insert(b.line + 1, r); } if (a.options.lineWrapping) { const u = Math.max(5, i.scroller.clientWidth / S(i) - 3); h.iter(b.line, b.line + d.length, (a) => { if (a.height != 0) { const b = (Math.ceil(a.text.length / u) || 1) * q; b != a.height && Fc(a, b); } }); } else h.iter(o, b.line + d.length, (a) => { const b = j(h, a); b > g.maxLineLength && (g.maxLine = a, g.maxLineLength = b, g.maxLineChanged = !0, n = !1); }), n && (a.curOp.updateMaxLine = !0); g.frontier = Math.min(g.frontier, b.line), C(a, 400); const v = d.length - k - 1; if (W(a, b.line, c.line + 1, v), Yc(a, 'change')) { for (var s = 0; s < d.length; ++s) typeof d[s] !== 'string' && (d[s] = d[s].text); const w = { from: b, to: c, text: d, origin: f }; if (a.curOp.textChanged) { for (var x = a.curOp.textChanged; x.next; x = x.next);x.next = w; } else a.curOp.textChanged = w; } let y; let z; const A = { line: b.line + d.length - 1, ch: mc(p).length + (d.length == 1 ? b.ch : 0) }; if (e && typeof e !== 'string')e.from ? (y = e.from, z = e.to) : y = z = e; else if (e == 'end')y = z = A; else if (e == 'start')y = z = b; else if (e == 'around')y = b, z = A; else { const B = function (a) { if (Ab(a, b)) return a; if (!Ab(c, a)) return A; const d = a.line + v; let e = a.ch; return a.line == c.line && (e += mc(p).length - (c.ch - (c.line == b.line ? b.ch : 0))), { line: d, ch: e }; }; y = B(g.sel.from), z = B(g.sel.to); } return Gb(a, y, z, null, !0), A; } } function yb(a, b, c, d, e) { if (d || (d = c), Ab(d, c)) { const f = d; d = c, c = f; } return ub(a, c, d, se(b), null, e); } function zb(a, b) { return a.line == b.line && a.ch == b.ch; } function Ab(a, b) { return a.line < b.line || a.line == b.line && a.ch < b.ch; } function Bb(a) { return { line: a.line, ch: a.ch }; } function Cb(a, b) { return Math.max(0, Math.min(b, a.size - 1)); } function Db(a, b) { if (b.line < 0) return { line: 0, ch: 0 }; if (b.line >= a.size) return { line: a.size - 1, ch: Ec(a, a.size - 1).text.length }; const c = b.ch; const d = Ec(a, b.line).text.length; return c == null || c > d ? { line: b.line, ch: d } : c < 0 ? { line: b.line, ch: 0 } : b; } function Eb(a, b) { return b >= 0 && b < a.size; } function Fb(a, b, c, d) { const e = a.view.sel; if (e.shift || e.extend) { let f = e.anchor; if (c) { const g = Ab(b, f); g != Ab(c, f) ? (f = b, b = c) : g != Ab(b, c) && (b = c); }Gb(a, f, b, d); } else Gb(a, b, c || b, d); a.curOp.userSelChange = !0; } function Gb(a, b, c, d, e) { a.view.goalColumn = null; const f = a.view.sel; if ((e || !zb(b, f.anchor)) && (b = Ib(a, b, d, e != 'push')), (e || !zb(c, f.head)) && (c = Ib(a, c, d, e != 'push')), !zb(f.anchor, b) || !zb(f.head, c)) { f.anchor = b, f.head = c; const g = Ab(c, b); f.from = g ? c : b, f.to = g ? b : c, a.curOp.updateInput = !0, a.curOp.selectionChanged = !0; } } function Hb(a) { Gb(a, a.view.sel.from, a.view.sel.to, null, 'push'); } function Ib(a, b, c, d) { const e = a.view.doc; let f = !1; let g = b; let h = c || 1; a.view.cantEdit = !1; a:for (;;) { var i; const j = Ec(e, g.line); if (j.markedSpans) { for (var k = 0; k < j.markedSpans.length; ++k) { const l = j.markedSpans[k]; const m = l.marker; if ((l.from == null || (m.inclusiveLeft ? l.from <= g.ch : l.from < g.ch)) && (l.to == null || (m.inclusiveRight ? l.to >= g.ch : l.to > g.ch))) { if (d && m.clearOnEnter) { (i || (i = [])).push(m); continue; } if (!m.atomic) continue; let n = m.find()[h < 0 ? 'from' : 'to']; if (zb(n, g) && (n.ch += h, n.ch < 0 ? n = n.line ? Db(e, { line: n.line - 1 }) : null : n.ch > j.text.length && (n = n.line < e.size - 1 ? { line: n.line + 1, ch: 0 } : null), !n)) { if (f) return d ? (a.view.cantEdit = !0, { line: 0, ch: 0 }) : Ib(a, b, c, !0); f = !0, n = b, h = -h; }g = n; continue a; } } if (i) for (var k = 0; k < i.length; ++k)i[k].clear(); } return g; } } function Jb(a) { const b = a.view; const c = Kb(a, b.sel.head); if (b.focused) { const d = a.display; const e = d.sizer.getBoundingClientRect(); let f = null; if (c.top + e.top < 0 ? f = !0 : c.bottom + e.top > (window.innerHeight || document.documentElement.clientHeight) && (f = !1), f != null && !Pd) { const g = d.cursor.style.display == 'none'; g && (d.cursor.style.display = '', d.cursor.style.left = `${c.left}px`, d.cursor.style.top = `${c.top - d.viewOffset}px`), d.cursor.scrollIntoView(f), g && (d.cursor.style.display = 'none'); } } } function Kb(a, b) { for (;;) { let c = !1; const d = O(a, b); const e = Mb(a, d.left, d.top, d.left, d.bottom); const f = a.view.scrollTop; const g = a.view.scrollLeft; if (e.scrollTop != null && (ib(a, e.scrollTop), Math.abs(a.view.scrollTop - f) > 1 && (c = !0)), e.scrollLeft != null && (jb(a, e.scrollLeft), Math.abs(a.view.scrollLeft - g) > 1 && (c = !0)), !c) return d; } } function Lb(a, b, c, d, e) { const f = Mb(a, b, c, d, e); f.scrollTop != null && ib(a, f.scrollTop), f.scrollLeft != null && jb(a, f.scrollLeft); } function Mb(a, b, c, d, e) { const f = a.display; const g = G(f); c += g, e += g; const h = f.scroller.clientHeight - je; const i = f.scroller.scrollTop; const j = {}; const k = a.view.doc.height + 2 * g; const l = g + 10 > c; const m = e + g > k - 10; i > c ? j.scrollTop = l ? 0 : Math.max(0, c) : e > i + h && (j.scrollTop = (m ? k : e) - h); const n = f.scroller.clientWidth - je; const o = f.scroller.scrollLeft; b += f.gutters.offsetWidth, d += f.gutters.offsetWidth; const p = f.gutters.offsetWidth; const q = p + 10 > b; return o + p > b || q ? (q && (b = 0), j.scrollLeft = Math.max(0, b - 10 - p)) : d > n + o - 3 && (j.scrollLeft = d + 10 - n), j; } function Nb(a, b, c, d) { const e = a.view.doc; if (c || (c = 'add'), c == 'smart') if (a.view.mode.indent) var f = F(a, b); else c = 'prev'; let g; const h = a.options.tabSize; const i = Ec(e, b); const j = $c(i.text, null, h); const k = i.text.match(/^\s*/)[0]; if (c == 'smart' && (g = a.view.mode.indent(f, i.text.slice(k.length), i.text), g == ke)) { if (!d) return; c = 'prev'; }c == 'prev' ? g = b ? $c(Ec(e, b - 1).text, null, h) : 0 : c == 'add' ? g = j + a.options.indentUnit : c == 'subtract' && (g = j - a.options.indentUnit), g = Math.max(0, g); let l = ''; let m = 0; if (a.options.indentWithTabs) for (let n = Math.floor(g / h); n; --n)m += h, l += ' '; g > m && (l += _c(g - m)), l != k && yb(a, l, { line: b, ch: 0 }, { line: b, ch: k.length }, 'input'), i.stateAfter = null; } function Ob(a, b, c) { let d = b; let e = b; const f = a.view.doc; return typeof b === 'number' ? e = Ec(f, Cb(f, b)) : d = Gc(b), d == null ? null : c(e, d) ? (W(a, d, d + 1), e) : null; } function Pb(a, b, c, d) { function e() { const a = i + b; return a < 0 || a == g.size ? !1 : (i = a, k = Ec(g, a)); } function f(a) { const c = (d ? ud : vd)(k, j, b, !0); if (c == null) { if (a || !e()) return !1; j = d ? (b < 0 ? rd : qd)(k) : b < 0 ? k.text.length : 0; } else j = c; return !0; } var g = a.view.doc; const h = a.view.sel.head; var i = h.line; var j = h.ch; var k = Ec(g, i); if (c == 'char')f(); else if (c == 'column')f(!0); else if (c == 'word') for (let l = !1; !(b < 0) || f();) { if (fd(k.text.charAt(j)))l = !0; else if (l) { b < 0 && (b = 1, f()); break; } if (b > 0 && !f()) break; } return Ib(a, { line: i, ch: j }, b, !0); } function Qb(a, b) { let c = b.ch; let d = b.ch; if (a) { b.after === !1 || d == a.length ? --c : ++d; for (var e = a.charAt(c), f = fd(e) ? fd : /\s/.test(e) ? function (a) { return /\s/.test(a); } : function (a) { return !/\s/.test(a) && !fd(a); }; c > 0 && f(a.charAt(c - 1));)--c; for (;d < a.length && f(a.charAt(d));)++d; } return { from: { line: b.line, ch: c }, to: { line: b.line, ch: d } }; } function Rb(a, b) { Fb(a, { line: b, ch: 0 }, Db(a.view.doc, { line: b + 1, ch: 0 })); } function Sb(b, c, d, e) { a.defaults[b] = c, d && ($d[b] = e ? function (a, b, c) { c != ae && d(a, b, c); } : d); } function Tb(a, b) { if (b === !0) return b; if (a.copyState) return a.copyState(b); const c = {}; for (const d in b) { let e = b[d]; e instanceof Array && (e = e.concat([])), c[d] = e; } return c; } function Ub(a, b, c) { return a.startState ? a.startState(b, c) : !0; } function Vb(a) { return typeof a === 'string' ? ge[a] : a; } function Wb(a, b, c, d) { function e(b) { b = Vb(b); const f = b[a]; if (f === !1) return d && d(), !0; if (f != null && c(f)) return !0; if (b.nofallthrough) return d && d(), !0; const g = b.fallthrough; if (g == null) return !1; if (Object.prototype.toString.call(g) != '[object Array]') return e(g); for (let h = 0, i = g.length; i > h; ++h) if (e(g[h])) return !0; return !1; } for (let f = 0; f < b.length; ++f) if (e(b[f])) return !0; } function Xb(a) { const b = ve[Tc(a, 'keyCode')]; return b == 'Ctrl' || b == 'Alt' || b == 'Shift' || b == 'Mod'; } function Yb(a, b) { this.pos = this.start = 0, this.string = a, this.tabSize = b || 8; } function Zb(a, b) { this.lines = [], this.type = b, this.cm = a; } function $b(a, b, c, d, e) { const f = a.view.doc; const g = new Zb(a, e); if (e == 'range' && !Ab(b, c)) return g; if (d) for (const h in d)d.hasOwnProperty(h) && (g[h] = d[h]); g.replacedWith && (g.collapsed = !0, g.replacedWith = hd('span', [g.replacedWith], 'CodeMirror-widget')), g.collapsed && (Ud = !0); let i; let j; let k = b.line; let l = 0; if (f.iter(k, c.line + 1, (a) => { const d = { from: null, to: null, marker: g }; l += a.text.length, k == b.line && (d.from = b.ch, l -= b.ch), k == c.line && (d.to = c.ch, l -= a.text.length - c.ch), g.collapsed && (k == c.line && (j = gc(a, c.ch)), k == b.line ? i = gc(a, b.ch) : Fc(a, 0)), bc(a, d), g.collapsed && k == b.line && kc(a) && Fc(a, 0), ++k; }), g.readOnly && (Td = !0, (a.view.history.done.length || a.view.history.undone.length) && a.clearHistory()), g.collapsed) { if (i != j) throw new Error('Inserting collapsed marker overlapping an existing one'); g.size = l, g.atomic = !0; } return (g.className || g.startStyle || g.endStyle || g.collapsed) && W(a, b.line, c.line + 1), g.atomic && Hb(a), g; } function _b(a, b) { if (a) for (let c = 0; c < a.length; ++c) { const d = a[c]; if (d.marker == b) return d; } } function ac(a, b) { for (var c, d = 0; d < a.length; ++d)a[d] != b && (c || (c = [])).push(a[d]); return c; } function bc(a, b) { a.markedSpans = a.markedSpans ? a.markedSpans.concat([b]) : [b], b.marker.lines.push(a); } function cc(a, b) { if (a) for (var c, d = 0; d < a.length; ++d) { const e = a[d]; const f = e.marker; const g = e.from == null || (f.inclusiveLeft ? e.from <= b : e.from < b); if (g || f.type == 'bookmark' && e.from == b) { const h = e.to == null || (f.inclusiveRight ? e.to >= b : e.to > b); (c || (c = [])).push({ from: e.from, to: h ? null : e.to, marker: f }); } } return c; } function dc(a, b, c) { if (a) for (var d, e = 0; e < a.length; ++e) { const f = a[e]; const g = f.marker; const h = f.to == null || (g.inclusiveRight ? f.to >= c : f.to > c); if (h || g.type == 'bookmark' && f.from == c && f.from != b) { const i = f.from == null || (g.inclusiveLeft ? f.from <= c : f.from < c); (d || (d = [])).push({ from: i ? null : f.from - c, to: f.to == null ? null : f.to - c, marker: g }); } } return d; } function ec(a, b, c, d, e) { if (!a && !b) return e; let f = cc(a, c); const g = dc(b, c, d); const h = e.length == 1; const i = ad(e).length + (h ? c : 0); if (f) for (var j = 0; j < f.length; ++j) { var k = f[j]; if (k.to == null) { var l = _b(g, k.marker); l ? h && (k.to = l.to == null ? null : l.to + i) : k.to = c; } } if (g) for (var j = 0; j < g.length; ++j) { var k = g[j]; if (k.to != null && (k.to += i), k.from == null) { var l = _b(f, k.marker); l || (k.from = i, h && (f || (f = [])).push(k)); } else k.from += i, h && (f || (f = [])).push(k); } const m = [oc(e[0], f)]; if (!h) { let n; const o = e.length - 2; if (o > 0 && f) for (var j = 0; j < f.length; ++j)f[j].to == null && (n || (n = [])).push({ from: null, to: null, marker: f[j].marker }); for (var j = 0; o > j; ++j)m.push(oc(e[j + 1], n)); m.push(oc(ad(e), g)); } return m; } function fc(a, b, c) { let d = null; if (a.iter(b.line, c.line + 1, (a) => { if (a.markedSpans) for (let b = 0; b < a.markedSpans.length; ++b) { const c = a.markedSpans[b].marker; !c.readOnly || d && cd(d, c) != -1 || (d || (d = [])).push(c); } }), !d) return null; for (var e = [{ from: b, to: c }], f = 0; f < d.length; ++f) for (let g = d[f].find(), h = 0; h < e.length; ++h) { const i = e[h]; if (Ab(g.from, i.to) && !Ab(g.to, i.from)) { const j = [h, 1]; Ab(i.from, g.from) && j.push({ from: i.from, to: g.from }), Ab(g.to, i.to) && j.push({ from: g.to, to: i.to }), e.splice.apply(e, j), h += j.length - 1; } } return e; } function gc(a, b) { let c; const d = Ud && a.markedSpans; if (d) for (var e, f = 0; f < d.length; ++f)e = d[f], e.marker.collapsed && (e.from == null || e.from < b) && (e.to == null || e.to > b) && (!c || c.width < e.marker.width) && (c = e.marker); return c; } function hc(a) { return gc(a, -1); } function ic(a) { return gc(a, a.text.length + 1); } function jc(a, b) { for (var c; c = hc(b);)b = Ec(a, c.find().from.line); return b; } function kc(a) { const b = Ud && a.markedSpans; if (b) for (var c, d = 0; d < b.length; ++d) if (c = b[d], c.marker.collapsed) { if (c.from == null) return !0; if (c.from == 0 && c.marker.inclusiveLeft && lc(a, c)) return !0; } } function lc(a, b) { if (b.to == null || b.marker.inclusiveRight && b.to == a.text.length) return !0; for (var c, d = 0; d < a.markedSpans.length; ++d) if (c = a.markedSpans[d], c.marker.collapsed && c.from == b.to && (c.marker.inclusiveLeft || b.marker.inclusiveRight) && lc(a, c)) return !0; } function mc(a) { return typeof a === 'string' ? a : a.text; } function nc(a) { if (typeof a === 'string') return null; for (var b = a.markedSpans, c = null, d = 0; d < b.length; ++d)b[d].marker.explicitlyCleared ? c || (c = b.slice(0, d)) : c && c.push(b[d]); return c ? c.length ? c : null : b; } function oc(a, b) { return b ? { text: a, markedSpans: b } : a; } function pc(a) { const b = a.markedSpans; if (b) { for (let c = 0; c < b.length; ++c) { const d = b[c].marker.lines; const e = cd(d, a); d.splice(e, 1); }a.markedSpans = null; } } function qc(a, b) { if (b) { for (let c = 0; c < b.length; ++c)b[c].marker.lines.push(a); a.markedSpans = b; } } function rc(a, b, c) { const d = { text: a, height: c }; return qc(d, b), kc(d) && (d.height = 0), d; } function sc(a, b, c, d) { b.text = c, b.stateAfter = b.styles = null, b.order != null && (b.order = null), pc(b), qc(b, d), kc(b) ? b.height = 0 : b.height || (b.height = R(a.display)), Xc(a, b, 'change'); } function tc(a) { a.parent = null, pc(a); } function uc(a, b, c) { const d = a.view.mode; const e = a.options.flattenSpans; let f = !b.styles; let g = 0; let h = ''; let i = null; const j = new Yb(b.text, a.options.tabSize); const k = b.styles || (b.styles = []); for (b.text == '' && d.blankLine && d.blankLine(c); !j.eol();) { const l = d.token(j, c); const m = j.current(); if (j.start = j.pos, e && i == l ? h += m : (h && (f = f || g >= k.length || h != k[g] || i != k[g + 1], k[g++] = h, k[g++] = i), h = m, i = l), j.pos > 5e3) break; } return h && (f = f || g >= k.length || h != k[g] || i != k[g + 1], k[g++] = h, k[g++] = i), j.pos > 5e3 && (k[g++] = b.text.slice(j.pos), k[g++] = null), g != k.length && (k.length = g, f = !0), f; } function vc(a, b, c) { const d = a.view.mode; const e = new Yb(b.text, a.options.tabSize); for (b.text == '' && d.blankLine && d.blankLine(c); !e.eol() && e.pos <= 5e3;)d.token(e, c), e.start = e.pos; } function wc(a) { return a ? he[a] || (he[a] = `cm-${a.replace(/ +/g, ' cm-')}`) : null; } function xc(a, b, c) { for (var d, e, f, g = b, h = !0; d = hc(g);)h = !1, g = Ec(a.view.doc, d.find().from.line), e || (e = g); const i = { pre: hd('pre'), col: 0, pos: 0, display: !c, measure: null, addedOne: !1, cm: a }; g.textClass && (i.pre.className = g.textClass); do { g.styles || uc(a, g, g.stateAfter = F(a, Gc(g))), i.measure = g == b && c, i.pos = 0, i.addToken = i.measure ? zc : yc, c && f && g != b && !i.addedOne && (c[0] = i.pre.appendChild(md(a.display.measure)), i.addedOne = !0); var j = Bc(g, i); f = g == e, j && (g = Ec(a.view.doc, j.to.line), h = !1); } while (j); return c && !i.addedOne && (c[0] = i.pre.appendChild(h ? hd('span', ' ') : md(a.display.measure))), i.pre.firstChild || kc(b) || i.pre.appendChild(document.createTextNode(' ')), i.pre; } function yc(a, b, c, d, e) { if (b) { if (ie.test(b)) for (var f = document.createDocumentFragment(), g = 0; ;) { ie.lastIndex = g; const h = ie.exec(b); const i = h ? h.index - g : b.length - g; if (i && (f.appendChild(document.createTextNode(b.slice(g, g + i))), a.col += i), !h) break; if (g += i + 1, h[0] == ' ') { const j = a.cm.options.tabSize; const k = j - a.col % j; f.appendChild(hd('span', _c(k), 'cm-tab')), a.col += k; } else { const l = hd('span', '•', 'cm-invalidchar'); l.title = `\\u${h[0].charCodeAt(0).toString(16)}`, f.appendChild(l), a.col += 1; } } else { a.col += b.length; var f = document.createTextNode(b); } if (c || d || e || a.measure) { let m = c || ''; return d && (m += d), e && (m += e), a.pre.appendChild(hd('span', [f], m)); }a.pre.appendChild(f); } } function zc(a, b, c, d, e) { for (let f = 0; f < b.length; ++f)f && f < b.length - 1 && a.cm.options.lineWrapping && pe.test(b.slice(f - 1, f + 1)) && a.pre.appendChild(hd('wbr')), a.measure[a.pos++] = yc(a, b.charAt(f), c, f == 0 && d, f == b.length - 1 && e); b.length && (a.addedOne = !0); } function Ac(a, b, c) { c && (a.display || (c = c.cloneNode(!0)), a.pre.appendChild(c), a.measure && b && (a.measure[a.pos] = c, a.addedOne = !0)), a.pos += b; } function Bc(a, b) { const c = a.styles; const d = a.markedSpans; if (d) for (var e, f, g, h, i, j = a.text, k = j.length, l = 0, m = 0, n = '', o = 0; ;) { if (o == l) { f = g = h = '', i = null, o = 1 / 0; for (var p = null, q = 0; q < d.length; ++q) { const r = d[q]; const s = r.marker; r.from <= l && (r.to == null || r.to > l) ? (r.to != null && o > r.to && (o = r.to, g = ''), s.className && (f += ` ${s.className}`), s.startStyle && r.from == l && (h += ` ${s.startStyle}`), s.endStyle && r.to == o && (g += ` ${s.endStyle}`), s.collapsed && (!i || i.marker.width < s.width) && (i = r)) : r.from > l && o > r.from && (o = r.from), s.type == 'bookmark' && r.from == l && s.replacedWith && (p = s.replacedWith); } if (i && (i.from || 0) == l && (Ac(b, (i.to == null ? k : i.to) - l, i.from != null && i.marker.replacedWith), i.to == null)) return i.marker.find(); p && !i && Ac(b, 0, p); } if (l >= k) break; for (let t = Math.min(k, o); ;) { if (n) { const u = l + n.length; if (!i) { const v = u > t ? n.slice(0, t - l) : n; b.addToken(b, v, e + f, h, l + v.length == o ? g : ''); } if (u >= t) { n = n.slice(t - l), l = t; break; }l = u, h = ''; }n = c[m++], e = wc(c[m++]); } } else for (var m = 0; m < c.length; m += 2)b.addToken(b, c[m], wc(c[m + 1])); } function Cc(a) { this.lines = a, this.parent = null; for (var b = 0, c = a.length, d = 0; c > b; ++b)a[b].parent = this, d += a[b].height; this.height = d; } function Dc(a) { this.children = a; for (var b = 0, c = 0, d = 0, e = a.length; e > d; ++d) { const f = a[d]; b += f.chunkSize(), c += f.height, f.parent = this; } this.size = b, this.height = c, this.parent = null; } function Ec(a, b) { for (;!a.lines;) for (let c = 0; ;++c) { const d = a.children[c]; const e = d.chunkSize(); if (e > b) { a = d; break; }b -= e; } return a.lines[b]; } function Fc(a, b) { for (let c = b - a.height, d = a; d; d = d.parent)d.height += c; } function Gc(a) { if (a.parent == null) return null; for (var b = a.parent, c = cd(b.lines, a), d = b.parent; d; b = d, d = d.parent) for (let e = 0; d.children[e] != b; ++e)c += d.children[e].chunkSize(); return c; } function Hc(a, b) { let c = 0; a:do { for (var d = 0, e = a.children.length; e > d; ++d) { const f = a.children[d]; const g = f.height; if (g > b) { a = f; continue a; }b -= g, c += f.chunkSize(); } return c; } while (!a.lines); for (var d = 0, e = a.lines.length; e > d; ++d) { const h = a.lines[d]; const i = h.height; if (i > b) break; b -= i; } return c + d; } function Ic(a, b) { b = jc(a.view.doc, b); for (var c = 0, d = b.parent, e = 0; e < d.lines.length; ++e) { const f = d.lines[e]; if (f == b) break; c += f.height; } for (let g = d.parent; g; d = g, g = d.parent) for (var e = 0; e < g.children.length; ++e) { const h = g.children[e]; if (h == d) break; c += h.height; } return c; } function Jc(a) { let b = a.order; return b == null && (b = a.order = we(a.text)), b; } function Kc() { return { done: [], undone: [], lastTime: 0, lastOp: null, lastOrigin: null, dirtyCounter: 0 }; } function Lc(a, b, c, d, e, f, g, h, i) { + const j = a.view.history; j.undone.length = 0; const k = +new Date(); let + l = ad(j.done); if (l && (j.lastOp == a.curOp.id || j.lastOrigin == e && (e == 'input' || e == 'delete') && j.lastTime > k - 600)) { const m = ad(l.events); if (m.start > b + d.length || m.start + m.added < b)l.events.push({ start: b, added: c, old: d }); else { for (var n = Math.max(0, m.start - b), o = Math.max(0, b + d.length - (m.start + m.added)), p = n; p > 0; --p)m.old.unshift(d[p - 1]); for (var p = o; p > 0; --p)m.old.push(d[d.length - p]); n && (m.start = b), m.added += c - (d.length - n - o); }l.fromAfter = h, l.toAfter = i; } else { for (l = { events: [{ start: b, added: c, old: d }], fromBefore: f, toBefore: g, fromAfter: h, toAfter: i }, j.done.push(l); j.done.length > a.options.undoDepth;)j.done.shift(); j.dirtyCounter < 0 ? j.dirtyCounter = 0 / 0 : j.dirtyCounter++; }j.lastTime = k, j.lastOp = a.curOp.id, j.lastOrigin = e; + } function Mc() { Qc(this); } function Nc(a) { return a.stop || (a.stop = Mc), a; } function Oc(a) { a.preventDefault ? a.preventDefault() : a.returnValue = !1; } function Pc(a) { a.stopPropagation ? a.stopPropagation() : a.cancelBubble = !0; } function Qc(a) { Oc(a), Pc(a); } function Rc(a) { return a.target || a.srcElement; } function Sc(a) { let b = a.which; return b == null && (1 & a.button ? b = 1 : 2 & a.button ? b = 3 : 4 & a.button && (b = 2)), Sd && a.ctrlKey && b == 1 && (b = 3), b; } function Tc(a, b) { const c = a.override && a.override.hasOwnProperty(b); return c ? a.override[b] : a[b]; } function Uc(a, b, c) { if (a.addEventListener)a.addEventListener(b, c, !1); else if (a.attachEvent)a.attachEvent(`on${b}`, c); else { const d = a._handlers || (a._handlers = {}); const e = d[b] || (d[b] = []); e.push(c); } } function Vc(a, b, c) { if (a.removeEventListener)a.removeEventListener(b, c, !1); else if (a.detachEvent)a.detachEvent(`on${b}`, c); else { const d = a._handlers && a._handlers[b]; if (!d) return; for (let e = 0; e < d.length; ++e) if (d[e] == c) { d.splice(e, 1); break; } } } function Wc(a, b) { const c = a._handlers && a._handlers[b]; if (c) for (let d = Array.prototype.slice.call(arguments, 2), e = 0; e < c.length; ++e)c[e].apply(null, d); } function Xc(a, b, c) { function d(a) { return function () { a.apply(null, f); }; } const e = b._handlers && b._handlers[c]; if (e) for (var f = Array.prototype.slice.call(arguments, 3), g = a.curOp && a.curOp.delayedCallbacks, h = 0; h < e.length; ++h)g ? g.push(d(e[h])) : e[h].apply(null, f); } function Yc(a, b) { const c = a._handlers && a._handlers[b]; return c && c.length > 0; } function Zc() { this.id = null; } function $c(a, b, c) { b == null && (b = a.search(/[^\s\u00a0]/), b == -1 && (b = a.length)); for (var d = 0, e = 0; b > d; ++d)a.charAt(d) == ' ' ? e += c - e % c : ++e; return e; } function _c(a) { for (;le.length <= a;)le.push(`${ad(le)} `); return le[a]; } function ad(a) { return a[a.length - 1]; } function bd(a) { Qd ? (a.selectionStart = 0, a.selectionEnd = a.value.length) : a.select(); } function cd(a, b) { if (a.indexOf) return a.indexOf(b); for (let c = 0, d = a.length; d > c; ++c) if (a[c] == b) return c; return -1; } function dd(a) { for (var b = [], c = 0; a > c; ++c)b.push(void 0); return b; } function ed(a) { const b = Array.prototype.slice.call(arguments, 1); return function () { return a.apply(null, b); }; } function fd(a) { return /\w/.test(a) || a > '' && (a.toUpperCase() != a.toLowerCase() || me.test(a)); } function gd(a) { let b = 0; for (const c in a)a.hasOwnProperty(c) && a[c] && ++b; return !b; } function hd(a, b, c, d) { const e = document.createElement(a); if (c && (e.className = c), d && (e.style.cssText = d), typeof b === 'string')kd(e, b); else if (b) for (let f = 0; f < b.length; ++f)e.appendChild(b[f]); return e; } function id(a) { return a.innerHTML = '', a; } function jd(a, b) { return id(a).appendChild(b); } function kd(a, b) { Gd ? (a.innerHTML = '', a.appendChild(document.createTextNode(b))) : a.textContent = b; } function ld(a) { if (qe != null) return qe; const b = hd('div', null, null, 'width: 50px; height: 50px; overflow-x: scroll'); return jd(a, b), b.offsetWidth && (qe = b.offsetHeight - b.clientHeight), qe || 0; } function md(a) { if (re == null) { const b = hd('span', ''); jd(a, hd('span', [b, document.createTextNode('x')])), a.firstChild.offsetHeight != 0 && (re = b.offsetWidth <= 1 && b.offsetHeight > 2 && !Fd); } return re ? hd('span', '') : hd('span', ' ', null, 'display: inline-block; width: 1px; margin-right: -1px'); } function nd(a, b, c, d) { if (!a) return d(b, c, 'ltr'); for (let e = 0; e < a.length; ++e) { const f = a[e]; f.from < c && f.to > b && d(Math.max(f.from, b), Math.min(f.to, c), f.level == 1 ? 'rtl' : 'ltr'); } } function od(a) { return a.level % 2 ? a.to : a.from; } function pd(a) { return a.level % 2 ? a.from : a.to; } function qd(a) { const b = Jc(a); return b ? od(b[0]) : 0; } function rd(a) { const b = Jc(a); return b ? pd(ad(b)) : a.text.length; } function sd(a, b) { const c = Ec(a.view.doc, b); const d = jc(a.view.doc, c); d != c && (b = Gc(d)); const e = Jc(d); const f = e ? e[0].level % 2 ? rd(d) : qd(d) : 0; return { line: b, ch: f }; } function td(a, b) { for (var c, d; c = ic(d = Ec(a.view.doc, b));)b = c.find().to.line; const e = Jc(d); const f = e ? e[0].level % 2 ? qd(d) : rd(d) : d.text.length; return { line: b, ch: f }; } function ud(a, b, c, d) { const e = Jc(a); if (!e) return vd(a, b, c, d); for (var f = d ? function (b, c) { do b += c; while (b > 0 && ne.test(a.text.charAt(b))); return b; } : function (a, b) { return a + b; }, g = e[0].level, h = 0; h < e.length; ++h) { var i = e[h]; const j = i.level % 2 == g; if (i.from < b && i.to > b || j && (i.from == b || i.to == b)) break; } for (var k = f(b, i.level % 2 ? -c : c); k != null;) if (i.level % 2 == g) { if (!(k < i.from || k > i.to)) break; i = e[h += c], k = i && (c > 0 == i.level % 2 ? f(i.to, -1) : f(i.from, 1)); } else if (k == od(i))i = e[--h], k = i && pd(i); else { if (k != pd(i)) break; i = e[++h], k = i && od(i); } return k < 0 || k > a.text.length ? null : k; } function vd(a, b, c, d) { let e = b + c; if (d) for (;e > 0 && ne.test(a.text.charAt(e));)e += c; return e < 0 || e > a.text.length ? null : e; } let wd; let xd; let yd; let zd; let Ad; let Bd; let Cd; var Dd = /gecko\/\d/i.test(navigator.userAgent); var Ed = /MSIE \d/.test(navigator.userAgent); var Fd = /MSIE [1-7]\b/.test(navigator.userAgent); var Gd = /MSIE [1-8]\b/.test(navigator.userAgent); var Hd = /WebKit\//.test(navigator.userAgent); var Id = Hd && /Qt\/\d+\.\d+/.test(navigator.userAgent); const Jd = /Chrome\//.test(navigator.userAgent); var Kd = /Opera\//.test(navigator.userAgent); var Ld = /Apple Computer/.test(navigator.vendor); var Md = /KHTML\//.test(navigator.userAgent); var Nd = /Mac OS X 1\d\D([7-9]|\d\d)\D/.test(navigator.userAgent); var Od = /Mac OS X 1\d\D([8-9]|\d\d)\D/.test(navigator.userAgent); var Pd = /PhantomJS/.test(navigator.userAgent); var Qd = /AppleWebKit/.test(navigator.userAgent) && /Mobile\/\w+/.test(navigator.userAgent); var Rd = Qd || /Android|webOS|BlackBerry|Opera Mini|IEMobile/i.test(navigator.userAgent); var Sd = Qd || /Mac/.test(navigator.platform); var Td = !1; var Ud = !1; var Vd = 0; var Wd = null; Ed ? Wd = -0.53 : Dd ? Wd = 15 : Jd ? Wd = -0.7 : Ld && (Wd = -1 / 3); let Xd; let Yd; var Zd = null; a.prototype = { + getValue: function (a) { const b = []; const c = this.view.doc; return c.iter(0, c.size, (a) => { b.push(a.text); }), b.join(a || '\n'); }, + setValue: V(null, function (a) { const b = this.view.doc; const c = { line: 0, ch: 0 }; const d = Ec(b, b.size - 1).text.length; vb(this, c, { line: b.size - 1, ch: d }, se(a), c, c, 'setValue'); }), + getSelection: function (a) { return this.getRange(this.view.sel.from, this.view.sel.to, a); }, + replaceSelection: V(null, function (a, b, c) { const d = this.view.sel; ub(this, d.from, d.to, se(a), b || 'around', c); }), + focus: function () { window.focus(), _(this), rb(this), Y(this); }, + setOption: function (a, b) { const c = this.options; const d = c[a]; (c[a] != b || a == 'mode') && (c[a] = b, $d.hasOwnProperty(a) && V(this, $d[a])(this, b, d)); }, + getOption: function (a) { return this.options[a]; }, + getMode: function () { return this.view.mode; }, + addKeyMap: function (a) { this.view.keyMaps.push(a); }, + removeKeyMap: function (a) { for (let b = this.view.keyMaps, c = 0; c < b.length; ++c) if ((typeof a === 'string' ? b[c].name : b[c]) == a) return b.splice(c, 1), !0; }, + undo: V(null, function () { wb(this, 'undo'); }), + redo: V(null, function () { wb(this, 'redo'); }), + indentLine: V(null, function (a, b, c) { typeof b !== 'string' && (b = b == null ? this.options.smartIndent ? 'smart' : 'prev' : b ? 'add' : 'subtract'), Eb(this.view.doc, a) && Nb(this, a, b, c); }), + indentSelection: V(null, function (a) { const b = this.view.sel; if (zb(b.from, b.to)) return Nb(this, b.from.line, a); for (let c = b.to.line - (b.to.ch ? 0 : 1), d = b.from.line; c >= d; ++d)Nb(this, d, a); }), + historySize: function () { const a = this.view.history; return { undo: a.done.length, redo: a.undone.length }; }, + clearHistory: function () { this.view.history = Kc(); }, + markClean: function () { this.view.history.dirtyCounter = 0, this.view.history.lastOp = this.view.history.lastOrigin = null; }, + isClean: function () { return this.view.history.dirtyCounter == 0; }, + getHistory: function () { function a(a) { for (var b, c = 0, d = []; c < a.length; ++c) { const e = a[c]; d.push({ events: b = [], fromBefore: e.fromBefore, toBefore: e.toBefore, fromAfter: e.fromAfter, toAfter: e.toAfter }); for (let f = 0, g = e.events; f < g.length; ++f) { const h = []; const i = g[f]; b.push({ start: i.start, added: i.added, old: h }); for (let j = 0; j < i.old.length; ++j)h.push(mc(i.old[j])); } } return d; } const b = this.view.history; return { done: a(b.done), undone: a(b.undone) }; }, + setHistory: function (a) { const b = this.view.history = Kc(); b.done = a.done, b.undone = a.undone; }, + getTokenAt: function (a) { const b = this.view.doc; a = Db(b, a); for (var c = F(this, a.line), d = this.view.mode, e = Ec(b, a.line), f = new Yb(e.text, this.options.tabSize); f.pos < a.ch && !f.eol();) { f.start = f.pos; var g = d.token(f, c); } return { start: f.start, end: f.pos, string: f.current(), className: g || null, type: g || null, state: c }; }, + getStateAfter: function (a) { const b = this.view.doc; return a = Cb(b, a == null ? b.size - 1 : a), F(this, a + 1); }, + cursorCoords: function (a, b) { let c; const d = this.view.sel; return c = a == null ? d.head : typeof a === 'object' ? Db(this.view.doc, a) : a ? d.from : d.to, O(this, c, b || 'page'); }, + charCoords: function (a, b) { return N(this, Db(this.view.doc, a), b || 'page'); }, + coordsChar: function (a) { const b = this.display.lineSpace.getBoundingClientRect(); return P(this, a.left - b.left, a.top - b.top); }, + defaultTextHeight: function () { return R(this.display); }, + markText: V(null, function (a, b, c) { return $b(this, Db(this.view.doc, a), Db(this.view.doc, b), c, 'range'); }), + setBookmark: V(null, function (a, b) { return a = Db(this.view.doc, a), $b(this, a, a, b ? { replacedWith: b } : {}, 'bookmark'); }), + findMarksAt: function (a) { const b = this.view.doc; a = Db(b, a); const c = []; const d = Ec(b, a.line).markedSpans; if (d) for (let e = 0; e < d.length; ++e) { const f = d[e]; (f.from == null || f.from <= a.ch) && (f.to == null || f.to >= a.ch) && c.push(f.marker); } return c; }, + setGutterMarker: V(null, function (a, b, c) { return Ob(this, a, (a) => { const d = a.gutterMarkers || (a.gutterMarkers = {}); return d[b] = c, !c && gd(d) && (a.gutterMarkers = null), !0; }); }), + clearGutter: V(null, function (a) { let b = 0; const c = this; const d = c.view.doc; d.iter(0, d.size, (d) => { d.gutterMarkers && d.gutterMarkers[a] && (d.gutterMarkers[a] = null, W(c, b, b + 1), gd(d.gutterMarkers) && (d.gutterMarkers = null)), ++b; }); }), + addLineClass: V(null, function (a, b, c) { return Ob(this, a, (a) => { const d = b == 'text' ? 'textClass' : b == 'background' ? 'bgClass' : 'wrapClass'; if (a[d]) { if (new RegExp(`\\b${c}\\b`).test(a[d])) return !1; a[d] += ` ${c}`; } else a[d] = c; return !0; }); }), + removeLineClass: V(null, function (a, b, c) { return Ob(this, a, (a) => { const d = b == 'text' ? 'textClass' : b == 'background' ? 'bgClass' : 'wrapClass'; const e = a[d]; if (!e) return !1; if (c == null)a[d] = null; else { const f = e.replace(new RegExp(`^${c}\\b\\s*|\\s*\\b${c}\\b`), ''); if (f == e) return !1; a[d] = f || null; } return !0; }); }), + addLineWidget: V(null, function (a, b, c) { const d = c || {}; return d.node = b, d.noHScroll && (this.display.alignWidgets = !0), Ob(this, a, a => ((a.widgets || (a.widgets = [])).push(d), d.line = a, !0)), d; }), + removeLineWidget: V(null, function (a) { const b = a.line.widgets; const c = Gc(a.line); if (c != null) { for (let d = 0; d < b.length; ++d)b[d] == a && b.splice(d--, 1); W(this, c, c + 1); } }), + lineInfo: function (a) { if (typeof a === 'number') { if (!Eb(this.view.doc, a)) return null; var b = a; if (a = Ec(this.view.doc, a), !a) return null; } else { var b = Gc(a); if (b == null) return null; } return { line: b, handle: a, text: a.text, gutterMarkers: a.gutterMarkers, textClass: a.textClass, bgClass: a.bgClass, wrapClass: a.wrapClass, widgets: a.widgets }; }, + getViewport: function () { return { from: this.display.showingFrom, to: this.display.showingTo }; }, + addWidget: function (a, b, c, d, e) { const f = this.display; a = O(this, Db(this.view.doc, a)); let g = a.top; let h = a.left; if (b.style.position = 'absolute', f.sizer.appendChild(b), d == 'over')g = a.top; else if (d == 'near') { const i = Math.max(f.wrapper.clientHeight, this.view.doc.height); const j = Math.max(f.sizer.clientWidth, f.lineSpace.clientWidth); a.bottom + b.offsetHeight > i && a.top > b.offsetHeight && (g = a.top - b.offsetHeight), h + b.offsetWidth > j && (h = j - b.offsetWidth); }b.style.top = `${g + G(f)}px`, b.style.left = b.style.right = '', e == 'right' ? (h = f.sizer.clientWidth - b.offsetWidth, b.style.right = '0px') : (e == 'left' ? h = 0 : e == 'middle' && (h = (f.sizer.clientWidth - b.offsetWidth) / 2), b.style.left = `${h}px`), c && Lb(this, h, g, h + b.offsetWidth, g + b.offsetHeight); }, + lineCount: function () { return this.view.doc.size; }, + clipPos: function (a) { return Db(this.view.doc, a); }, + getCursor: function (a) { let b; const c = this.view.sel; return b = a == null || a == 'head' ? c.head : a == 'anchor' ? c.anchor : a == 'end' || a === !1 ? c.to : c.from, Bb(b); }, + somethingSelected: function () { return !zb(this.view.sel.from, this.view.sel.to); }, + setCursor: V(null, function (a, b, c) { const d = Db(this.view.doc, typeof a === 'number' ? { line: a, ch: b || 0 } : a); c ? Fb(this, d) : Gb(this, d, d); }), + setSelection: V(null, function (a, b) { const c = this.view.doc; Gb(this, Db(c, a), Db(c, b || a)); }), + extendSelection: V(null, function (a, b) { const c = this.view.doc; Fb(this, Db(c, a), b && Db(c, b)); }), + setExtending: function (a) { this.view.sel.extend = a; }, + getLine: function (a) { const b = this.getLineHandle(a); return b && b.text; }, + getLineHandle: function (a) { const b = this.view.doc; return Eb(b, a) ? Ec(b, a) : void 0; }, + getLineNumber: function (a) { return Gc(a); }, + setLine: V(null, function (a, b) { Eb(this.view.doc, a) && yb(this, b, { line: a, ch: 0 }, { line: a, ch: Ec(this.view.doc, a).text.length }); }), + removeLine: V(null, function (a) { Eb(this.view.doc, a) && yb(this, '', { line: a, ch: 0 }, Db(this.view.doc, { line: a + 1, ch: 0 })); }), + replaceRange: V(null, function (a, b, c) { const d = this.view.doc; return b = Db(d, b), c = c ? Db(d, c) : b, yb(this, a, b, c); }), + getRange: function (a, b, c) { + const d = this.view.doc; a = Db(d, a), b = Db(d, b); const e = a.line; const f = b.line; if (e == f) return Ec(d, e).text.slice(a.ch, b.ch); const g = [Ec(d, e).text.slice(a.ch)]; return d.iter(e + 1, f, (a) => { + g.push(a.text); + }), g.push(Ec(d, f).text.slice(0, b.ch)), g.join(c || '\n'); + }, + triggerOnKeyDown: V(null, pb), + execCommand: function (a) { return fe[a](this); }, + moveH: V(null, function (a, b) { const c = this.view.sel; let d = a < 0 ? c.from : c.to; (c.shift || c.extend || zb(c.from, c.to)) && (d = Pb(this, a, b, !0)), Fb(this, d, d, a); }), + deleteH: V(null, function (a, b) { const c = this.view.sel; zb(c.from, c.to) ? yb(this, '', c.from, Pb(this, a, b, !1), 'delete') : yb(this, '', c.from, c.to, 'delete'), this.curOp.userSelChange = !0; }), + moveV: V(null, function (a, b) { let c; const d = this.view; const e = d.doc; const f = this.display; const g = d.sel.head; const h = O(this, g, 'div'); let i = h.left; if (d.goalColumn != null && (i = d.goalColumn), b == 'page') { const j = Math.min(f.wrapper.clientHeight, window.innerHeight || document.documentElement.clientHeight); c = h.top + a * j; } else b == 'line' && (c = a > 0 ? h.bottom + 3 : h.top - 3); do { var k = P(this, i, c); c += 5 * a; } while (k.outside && (a < 0 ? c > 0 : c < e.height)); b == 'page' && (f.scrollbarV.scrollTop += N(this, k, 'div').top - h.top), Fb(this, k, k, a), d.goalColumn = i; }), + toggleOverwrite: function () { (this.view.overwrite = !this.view.overwrite) ? this.display.cursor.className += ' CodeMirror-overwrite' : this.display.cursor.className = this.display.cursor.className.replace(' CodeMirror-overwrite', ''); }, + posFromIndex: function (a) { let b; let c = 0; const d = this.view.doc; return d.iter(0, d.size, (d) => { const e = d.text.length + 1; return e > a ? (b = a, !0) : (a -= e, ++c, void 0); }), Db(d, { line: c, ch: b }); }, + indexFromPos: function (a) { if (a.line < 0 || a.ch < 0) return 0; let b = a.ch; return this.view.doc.iter(0, a.line, (a) => { b += a.text.length + 1; }), b; }, + scrollTo: function (a, b) { a != null && (this.display.scrollbarH.scrollLeft = this.display.scroller.scrollLeft = a), b != null && (this.display.scrollbarV.scrollTop = this.display.scroller.scrollTop = b), s(this, []); }, + getScrollInfo: function () { const a = this.display.scroller; const b = je; return { left: a.scrollLeft, top: a.scrollTop, height: a.scrollHeight - b, width: a.scrollWidth - b, clientHeight: a.clientHeight - b, clientWidth: a.clientWidth - b }; }, + scrollIntoView: function (a) { typeof a === 'number' && (a = { line: a, ch: 0 }), a = a ? Db(this.view.doc, a) : this.view.sel.head, Kb(this, a); }, + setSize: function (a, b) { function c(a) { return typeof a === 'number' || /^\d+$/.test(String(a)) ? `${a}px` : a; }a != null && (this.display.wrapper.style.width = c(a)), b != null && (this.display.wrapper.style.height = c(b)), this.refresh(); }, + on: function (a, b) { Uc(this, a, b); }, + off: function (a, b) { Vc(this, a, b); }, + operation: function (a) { return V(this, a)(); }, + refresh: function () { L(this), this.display.scroller.scrollHeight > this.view.scrollTop && (this.display.scrollbarV.scrollTop = this.display.scroller.scrollTop = this.view.scrollTop), s(this, !0); }, + getInputField: function () { return this.display.input; }, + getWrapperElement: function () { return this.display.wrapper; }, + getScrollerElement: function () { return this.display.scroller; }, + getGutterElement: function () { return this.display.gutters; }, + }; var $d = a.optionHandlers = {}; var _d = a.defaults = {}; var ae = a.Init = { toString: function () { return 'CodeMirror.Init'; } }; Sb('value', '', (a, b) => { a.setValue(b); }, !0), Sb('mode', null, d, !0), Sb('indentUnit', 2, d, !0), Sb('indentWithTabs', !1), Sb('smartIndent', !0), Sb('tabSize', 4, (a) => { d(a), L(a), s(a, !0); }, !0), Sb('electricChars', !0), Sb('theme', 'default', (a) => { g(a), h(a); }, !0), Sb('keyMap', 'default', f), Sb('extraKeys', null), Sb('onKeyEvent', null), Sb('onDragEvent', null), Sb('lineWrapping', !1, e, !0), Sb('gutters', [], (a) => { l(a.options), h(a); }, !0), Sb('lineNumbers', !1, (a) => { l(a.options), h(a); }, !0), Sb('firstLineNumber', 1, h, !0), Sb('lineNumberFormatter', a => a, h, !0), Sb('showCursorWhenSelecting', !1, y, !0), Sb('readOnly', !1, (a, b) => { b == 'nocursor' ? (sb(a), a.display.input.blur()) : b || $(a, !0); }), Sb('dragDrop', !0), Sb('cursorBlinkRate', 530), Sb('cursorHeight', 1), Sb('workTime', 100), Sb('workDelay', 100), Sb('flattenSpans', !0), Sb('pollInterval', 100), Sb('undoDepth', 40), Sb('viewportMargin', 10, (a) => { a.refresh(); }, !0), Sb('tabindex', null, (a, b) => { a.display.input.tabIndex = b || ''; }), Sb('autofocus', null); const be = a.modes = {}; const ce = a.mimeModes = {}; a.defineMode = function (b, c) { if (a.defaults.mode || b == 'null' || (a.defaults.mode = b), arguments.length > 2) { c.dependencies = []; for (let d = 2; d < arguments.length; ++d)c.dependencies.push(arguments[d]); }be[b] = c; }, a.defineMIME = function (a, b) { ce[a] = b; }, a.resolveMode = function (b) { if (typeof b === 'string' && ce.hasOwnProperty(b))b = ce[b]; else if (typeof b === 'string' && /^[\w\-]+\/[\w\-]+\+xml$/.test(b)) return a.resolveMode('application/xml'); return typeof b === 'string' ? { name: b } : b || { name: 'null' }; }, a.getMode = function (b, c) { var c = a.resolveMode(c); const d = be[c.name]; if (!d) return a.getMode(b, 'text/plain'); const e = d(b, c); if (de.hasOwnProperty(c.name)) { const f = de[c.name]; for (const g in f)f.hasOwnProperty(g) && (e.hasOwnProperty(g) && (e[`_${g}`] = e[g]), e[g] = f[g]); } return e.name = c.name, e; }, a.defineMode('null', () => ({ token: function (a) { a.skipToEnd(); } })), a.defineMIME('text/plain', 'null'); var de = a.modeExtensions = {}; a.extendMode = function (a, b) { const c = de.hasOwnProperty(a) ? de[a] : de[a] = {}; for (const d in b)b.hasOwnProperty(d) && (c[d] = b[d]); }, a.defineExtension = function (b, c) { a.prototype[b] = c; }, a.defineOption = Sb; var ee = []; a.defineInitHook = function (a) { ee.push(a); }, a.copyState = Tb, a.startState = Ub, a.innerMode = function (a, b) { for (;a.innerMode;) { var c = a.innerMode(b); b = c.state, a = c.mode; } return c || { mode: a, state: b }; }; var fe = a.commands = { selectAll: function (a) { a.setSelection({ line: 0, ch: 0 }, { line: a.lineCount() - 1 }); }, killLine: function (a) { const b = a.getCursor(!0); const c = a.getCursor(!1); const d = !zb(b, c); d || a.getLine(b.line).length != b.ch ? a.replaceRange('', b, d ? c : { line: b.line }, 'delete') : a.replaceRange('', b, { line: b.line + 1, ch: 0 }, 'delete'); }, deleteLine: function (a) { const b = a.getCursor().line; a.replaceRange('', { line: b, ch: 0 }, { line: b }, 'delete'); }, undo: function (a) { a.undo(); }, redo: function (a) { a.redo(); }, goDocStart: function (a) { a.extendSelection({ line: 0, ch: 0 }); }, goDocEnd: function (a) { a.extendSelection({ line: a.lineCount() - 1 }); }, goLineStart: function (a) { a.extendSelection(sd(a, a.getCursor().line)); }, goLineStartSmart: function (a) { const b = a.getCursor(); const c = sd(a, b.line); const d = a.getLineHandle(c.line); const e = Jc(d); if (e && e[0].level != 0)a.extendSelection(c); else { const f = Math.max(0, d.text.search(/\S/)); const g = b.line == c.line && b.ch <= f && b.ch; a.extendSelection({ line: c.line, ch: g ? 0 : f }); } }, goLineEnd: function (a) { a.extendSelection(td(a, a.getCursor().line)); }, goLineUp: function (a) { a.moveV(-1, 'line'); }, goLineDown: function (a) { a.moveV(1, 'line'); }, goPageUp: function (a) { a.moveV(-1, 'page'); }, goPageDown: function (a) { a.moveV(1, 'page'); }, goCharLeft: function (a) { a.moveH(-1, 'char'); }, goCharRight: function (a) { a.moveH(1, 'char'); }, goColumnLeft: function (a) { a.moveH(-1, 'column'); }, goColumnRight: function (a) { a.moveH(1, 'column'); }, goWordLeft: function (a) { a.moveH(-1, 'word'); }, goWordRight: function (a) { a.moveH(1, 'word'); }, delCharBefore: function (a) { a.deleteH(-1, 'char'); }, delCharAfter: function (a) { a.deleteH(1, 'char'); }, delWordBefore: function (a) { a.deleteH(-1, 'word'); }, delWordAfter: function (a) { a.deleteH(1, 'word'); }, indentAuto: function (a) { a.indentSelection('smart'); }, indentMore: function (a) { a.indentSelection('add'); }, indentLess: function (a) { a.indentSelection('subtract'); }, insertTab: function (a) { a.replaceSelection(' ', 'end', 'input'); }, defaultTab: function (a) { a.somethingSelected() ? a.indentSelection('add') : a.replaceSelection(' ', 'end', 'input'); }, transposeChars: function (a) { const b = a.getCursor(); const c = a.getLine(b.line); b.ch > 0 && b.ch < c.length - 1 && a.replaceRange(c.charAt(b.ch) + c.charAt(b.ch - 1), { line: b.line, ch: b.ch - 1 }, { line: b.line, ch: b.ch + 1 }); }, newlineAndIndent: function (a) { V(a, () => { a.replaceSelection('\n', 'end', 'input'), a.indentLine(a.getCursor().line, null, !0); })(); }, toggleOverwrite: function (a) { a.toggleOverwrite(); } }; var ge = a.keyMap = {}; ge.basic = { Left: 'goCharLeft', Right: 'goCharRight', Up: 'goLineUp', Down: 'goLineDown', End: 'goLineEnd', Home: 'goLineStartSmart', PageUp: 'goPageUp', PageDown: 'goPageDown', Delete: 'delCharAfter', Backspace: 'delCharBefore', Tab: 'defaultTab', 'Shift-Tab': 'indentAuto', Enter: 'newlineAndIndent', Insert: 'toggleOverwrite' }, ge.pcDefault = { 'Ctrl-A': 'selectAll', 'Ctrl-D': 'deleteLine', 'Ctrl-Z': 'undo', 'Shift-Ctrl-Z': 'redo', 'Ctrl-Y': 'redo', 'Ctrl-Home': 'goDocStart', 'Alt-Up': 'goDocStart', 'Ctrl-End': 'goDocEnd', 'Ctrl-Down': 'goDocEnd', 'Ctrl-Left': 'goWordLeft', 'Ctrl-Right': 'goWordRight', 'Alt-Left': 'goLineStart', 'Alt-Right': 'goLineEnd', 'Ctrl-Backspace': 'delWordBefore', 'Ctrl-Delete': 'delWordAfter', 'Ctrl-S': 'save', 'Ctrl-F': 'find', 'Ctrl-G': 'findNext', 'Shift-Ctrl-G': 'findPrev', 'Shift-Ctrl-F': 'replace', 'Shift-Ctrl-R': 'replaceAll', 'Ctrl-[': 'indentLess', 'Ctrl-]': 'indentMore', fallthrough: 'basic' }, ge.macDefault = { 'Cmd-A': 'selectAll', 'Cmd-D': 'deleteLine', 'Cmd-Z': 'undo', 'Shift-Cmd-Z': 'redo', 'Cmd-Y': 'redo', 'Cmd-Up': 'goDocStart', 'Cmd-End': 'goDocEnd', 'Cmd-Down': 'goDocEnd', 'Alt-Left': 'goWordLeft', 'Alt-Right': 'goWordRight', 'Cmd-Left': 'goLineStart', 'Cmd-Right': 'goLineEnd', 'Alt-Backspace': 'delWordBefore', 'Ctrl-Alt-Backspace': 'delWordAfter', 'Alt-Delete': 'delWordAfter', 'Cmd-S': 'save', 'Cmd-F': 'find', 'Cmd-G': 'findNext', 'Shift-Cmd-G': 'findPrev', 'Cmd-Alt-F': 'replace', 'Shift-Cmd-Alt-F': 'replaceAll', 'Cmd-[': 'indentLess', 'Cmd-]': 'indentMore', fallthrough: ['basic', 'emacsy'] }, ge.default = Sd ? ge.macDefault : ge.pcDefault, ge.emacsy = { 'Ctrl-F': 'goCharRight', 'Ctrl-B': 'goCharLeft', 'Ctrl-P': 'goLineUp', 'Ctrl-N': 'goLineDown', 'Alt-F': 'goWordRight', 'Alt-B': 'goWordLeft', 'Ctrl-A': 'goLineStart', 'Ctrl-E': 'goLineEnd', 'Ctrl-V': 'goPageDown', 'Shift-Ctrl-V': 'goPageUp', 'Ctrl-D': 'delCharAfter', 'Ctrl-H': 'delCharBefore', 'Alt-D': 'delWordAfter', 'Alt-Backspace': 'delWordBefore', 'Ctrl-K': 'killLine', 'Ctrl-T': 'transposeChars' }, a.isModifierKey = Xb, a.fromTextArea = function (b, c) { function d() { b.value = i.getValue(); } if (c || (c = {}), c.value = b.value, !c.tabindex && b.tabindex && (c.tabindex = b.tabindex), c.autofocus == null) { let e = document.body; try { e = document.activeElement; } catch (f) {}c.autofocus = e == b || b.getAttribute('autofocus') != null && e == document.body; } if (b.form) { Uc(b.form, 'submit', d); const g = b.form; var h = g.submit; try { g.submit = function j() { d(), g.submit = h, g.submit(), g.submit = j; }; } catch (f) {} }b.style.display = 'none'; var i = a((a) => { b.parentNode.insertBefore(a, b.nextSibling); }, c); return i.save = d, i.getTextArea = function () { return b; }, i.toTextArea = function () { d(), b.parentNode.removeChild(i.getWrapperElement()), b.style.display = '', b.form && (Vc(b.form, 'submit', d), typeof b.form.submit === 'function' && (b.form.submit = h)); }, i; }, Yb.prototype = { eol: function () { return this.pos >= this.string.length; }, sol: function () { return this.pos == 0; }, peek: function () { return this.string.charAt(this.pos) || void 0; }, next: function () { return this.pos < this.string.length ? this.string.charAt(this.pos++) : void 0; }, eat: function (a) { const b = this.string.charAt(this.pos); if (typeof a === 'string') var c = b == a; else var c = b && (a.test ? a.test(b) : a(b)); return c ? (++this.pos, b) : void 0; }, eatWhile: function (a) { for (var b = this.pos; this.eat(a););return this.pos > b; }, eatSpace: function () { for (var a = this.pos; /[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos; return this.pos > a; }, skipToEnd: function () { this.pos = this.string.length; }, skipTo: function (a) { const b = this.string.indexOf(a, this.pos); return b > -1 ? (this.pos = b, !0) : void 0; }, backUp: function (a) { this.pos -= a; }, column: function () { return $c(this.string, this.start, this.tabSize); }, indentation: function () { return $c(this.string, null, this.tabSize); }, match: function (a, b, c) { if (typeof a !== 'string') { const d = this.string.slice(this.pos).match(a); return d && d.index > 0 ? null : (d && b !== !1 && (this.pos += d[0].length), d); } const e = function (a) { return c ? a.toLowerCase() : a; }; return e(this.string).indexOf(e(a), this.pos) == this.pos ? (b !== !1 && (this.pos += a.length), !0) : void 0; }, current: function () { return this.string.slice(this.start, this.pos); } }, a.StringStream = Yb, Zb.prototype.clear = function () { if (!this.explicitlyCleared) { T(this.cm); for (var a = null, b = null, c = 0; c < this.lines.length; ++c) { const d = this.lines[c]; const e = _b(d.markedSpans, this); e.to != null && (b = Gc(d)), d.markedSpans = ac(d.markedSpans, e), e.from != null ? a = Gc(d) : this.collapsed && !kc(d) && Fc(d, R(this.cm.display)); }a != null && W(this.cm, a, b + 1), this.lines.length = 0, this.explicitlyCleared = !0, this.collapsed && this.cm.view.cantEdit && (this.cm.view.cantEdit = !1, Hb(this.cm)), U(this.cm), Xc(this.cm, this, 'clear'); } }, Zb.prototype.find = function () { for (var a, b, c = 0; c < this.lines.length; ++c) { const d = this.lines[c]; const e = _b(d.markedSpans, this); if (e.from != null || e.to != null) { const f = Gc(d); e.from != null && (a = { line: f, ch: e.from }), e.to != null && (b = { line: f, ch: e.to }); } } return this.type == 'bookmark' ? a : a && { from: a, to: b }; }, window.lineIsHidden = kc; var he = {}; var ie = /[\t\u0000-\u0019\u200b\u2028\u2029\uFEFF]/g; Cc.prototype = { chunkSize: function () { return this.lines.length; }, remove: function (a, b, c) { for (let d = a, e = a + b; e > d; ++d) { const f = this.lines[d]; this.height -= f.height, tc(f), Xc(c, f, 'delete'); } this.lines.splice(a, b); }, collapse: function (a) { a.splice.apply(a, [a.length, 0].concat(this.lines)); }, insertHeight: function (a, b, c) { this.height += c, this.lines = this.lines.slice(0, a).concat(b).concat(this.lines.slice(a)); for (let d = 0, e = b.length; e > d; ++d)b[d].parent = this; }, iterN: function (a, b, c) { for (let d = a + b; d > a; ++a) if (c(this.lines[a])) return !0; } }, Dc.prototype = { chunkSize: function () { return this.size; }, remove: function (a, b, c) { this.size -= b; for (let d = 0; d < this.children.length; ++d) { const e = this.children[d]; const f = e.chunkSize(); if (f > a) { const g = Math.min(b, f - a); const h = e.height; if (e.remove(a, g, c), this.height -= h - e.height, f == g && (this.children.splice(d--, 1), e.parent = null), (b -= g) == 0) break; a = 0; } else a -= f; } if (this.size - b < 25) { const i = []; this.collapse(i), this.children = [new Cc(i)], this.children[0].parent = this; } }, collapse: function (a) { for (let b = 0, c = this.children.length; c > b; ++b) this.children[b].collapse(a); }, insert: function (a, b) { for (var c = 0, d = 0, e = b.length; e > d; ++d)c += b[d].height; this.insertHeight(a, b, c); }, insertHeight: function (a, b, c) { this.size += b.length, this.height += c; for (let d = 0, e = this.children.length; e > d; ++d) { const f = this.children[d]; const g = f.chunkSize(); if (g >= a) { if (f.insertHeight(a, b, c), f.lines && f.lines.length > 50) { for (;f.lines.length > 50;) { const h = f.lines.splice(f.lines.length - 25, 25); const i = new Cc(h); f.height -= i.height, this.children.splice(d + 1, 0, i), i.parent = this; } this.maybeSpill(); } break; }a -= g; } }, maybeSpill: function () { if (!(this.children.length <= 10)) { let a = this; do { const b = a.children.splice(a.children.length - 5, 5); const c = new Dc(b); if (a.parent) { a.size -= c.size, a.height -= c.height; const d = cd(a.parent.children, a); a.parent.children.splice(d + 1, 0, c); } else { const e = new Dc(a.children); e.parent = a, a.children = [e, c], a = e; }c.parent = a.parent; } while (a.children.length > 10); a.parent.maybeSpill(); } }, iter: function (a, b, c) { this.iterN(a, b - a, c); }, iterN: function (a, b, c) { for (let d = 0, e = this.children.length; e > d; ++d) { const f = this.children[d]; const g = f.chunkSize(); if (g > a) { const h = Math.min(b, g - a); if (f.iterN(a, h, c)) return !0; if ((b -= h) == 0) break; a = 0; } else a -= g; } } }, a.e_stop = Qc, a.e_preventDefault = Oc, a.e_stopPropagation = Pc, a.on = Uc, a.off = Vc, a.signal = Wc; var je = 30; var ke = a.Pass = { toString: function () { return 'CodeMirror.Pass'; } }; Zc.prototype = { set: function (a, b) { clearTimeout(this.id), this.id = setTimeout(b, a); } }, a.countColumn = $c; var le = ['']; var me = /[\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc]/; var ne = /[\u0300-\u036F\u0483-\u0487\u0488-\u0489\u0591-\u05BD\u05BF\u05C1-\u05C2\u05C4-\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7-\u06E8\u06EA-\u06ED\uA66F\uA670-\uA672\uA674-\uA67D\uA69F]/; var oe = (function () { if (Gd) return !1; const a = hd('div'); return 'draggable' in a || 'dragDrop' in a; }()); var pe = /^$/; Dd ? pe = /$'/ : Ld ? pe = /\-[^ \-?]|\?[^ !'\"\),.\-\/:;\?\]\}]/ : Jd && (pe = /\-[^ \-\.?]|\?[^ \-\.?\]\}:;!'\"\),\/]|[\.!\"#&%\)*+,:;=>\]|\}~][\(\{\[<]|\$'/); let qe; let re; var se = '\n\nb'.split(/\n/).length != 3 ? function (a) { for (var b = 0, c = [], d = a.length; d >= b;) { let e = a.indexOf('\n', b); e == -1 && (e = a.length); const f = a.slice(b, a.charAt(e - 1) == '\r' ? e - 1 : e); const g = f.indexOf('\r'); g != -1 ? (c.push(f.slice(0, g)), b += g + 1) : (c.push(f), b = e + 1); } return c; } : function (a) { return a.split(/\r\n?|\n/); }; a.splitLines = se; var te = window.getSelection ? function (a) { try { return a.selectionStart != a.selectionEnd; } catch (b) { return !1; } } : function (a) { try { var b = a.ownerDocument.selection.createRange(); } catch (c) {} return b && b.parentElement() == a ? b.compareEndPoints('StartToEnd', b) != 0 : !1; }; var ue = (function () { const a = hd('div'); return 'oncopy' in a ? !0 : (a.setAttribute('oncopy', 'return;'), typeof a.oncopy === 'function'); }()); var ve = { 3: 'Enter', 8: 'Backspace', 9: 'Tab', 13: 'Enter', 16: 'Shift', 17: 'Ctrl', 18: 'Alt', 19: 'Pause', 20: 'CapsLock', 27: 'Esc', 32: 'Space', 33: 'PageUp', 34: 'PageDown', 35: 'End', 36: 'Home', 37: 'Left', 38: 'Up', 39: 'Right', 40: 'Down', 44: 'PrintScrn', 45: 'Insert', 46: 'Delete', 59: ';', 91: 'Mod', 92: 'Mod', 93: 'Mod', 109: '-', 107: '=', 127: 'Delete', 186: ';', 187: '=', 188: ',', 189: '-', 190: '.', 191: '/', 192: '`', 219: '[', 220: '\\', 221: ']', 222: "'", 63276: 'PageUp', 63277: 'PageDown', 63275: 'End', 63273: 'Home', 63234: 'Left', 63232: 'Up', 63235: 'Right', 63233: 'Down', 63302: 'Insert', 63272: 'Delete' }; a.keyNames = ve, (function () { for (var a = 0; a < 10; a++)ve[a + 48] = String(a); for (var a = 65; a <= 90; a++)ve[a] = String.fromCharCode(a); for (var a = 1; a <= 12; a++)ve[a + 111] = ve[a + 63235] = `F${a}`; }()); var we = (function () { function a(a) { return a <= 255 ? b.charAt(a) : a >= 1424 && a <= 1524 ? 'R' : a >= 1536 && a <= 1791 ? c.charAt(a - 1536) : a >= 1792 && a <= 2220 ? 'r' : 'L'; } var b = 'bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLL'; var c = 'rrrrrrrrrrrr,rNNmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmrrrrrrrnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmNmmmmrrrrrrrrrrrrrrrrrr'; const d = /[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/; const e = /[stwN]/; const f = /[LRr]/; const g = /[Lb1n]/; const h = /[1n]/; return function (b) { if (!d.test(b)) return !1; for (var c, i = b.length, j = [], k = null, l = 0; i > l; ++l)j.push(c = a(b.charCodeAt(l))), k == null && (c == 'L' ? k = 'L' : (c == 'R' || c == 'r') && (k = 'R')); k == null && (k = 'L'); for (var l = 0, m = k; i > l; ++l) { var c = j[l]; c == 'm' ? j[l] = m : m = c; } for (var l = 0, n = k; i > l; ++l) { var c = j[l]; c == '1' && n == 'r' ? j[l] = 'n' : f.test(c) && (n = c, c == 'r' && (j[l] = 'R')); } for (var l = 1, m = j[0]; i - 1 > l; ++l) { var c = j[l]; c == '+' && m == '1' && j[l + 1] == '1' ? j[l] = '1' : c != ',' || m != j[l + 1] || m != '1' && m != 'n' || (j[l] = m), m = c; } for (var l = 0; i > l; ++l) { var c = j[l]; if (c == ',')j[l] = 'N'; else if (c == '%') { for (var o = l + 1; i > o && j[o] == '%'; ++o);for (var p = l && j[l - 1] == '!' || i - 1 > o && j[o] == '1' ? '1' : 'N', q = l; o > q; ++q)j[q] = p; l = o - 1; } } for (var l = 0, n = k; i > l; ++l) { var c = j[l]; n == 'L' && c == '1' ? j[l] = 'L' : f.test(c) && (n = c); } for (var l = 0; i > l; ++l) if (e.test(j[l])) { for (var o = l + 1; i > o && e.test(j[o]); ++o);for (var r = (l ? j[l - 1] : k) == 'L', s = (i - 1 > o ? j[o] : k) == 'L', p = r || s ? 'L' : 'R', q = l; o > q; ++q)j[q] = p; l = o - 1; } for (var t, u = [], l = 0; i > l;) if (g.test(j[l])) { const v = l; for (++l; i > l && g.test(j[l]); ++l);u.push({ from: v, to: l, level: 0 }); } else { let w = l; const x = u.length; for (++l; i > l && j[l] != 'L'; ++l);for (var q = w; l > q;) if (h.test(j[q])) { q > w && u.splice(x, 0, { from: w, to: q, level: 1 }); const y = q; for (++q; l > q && h.test(j[q]); ++q);u.splice(x, 0, { from: y, to: q, level: 2 }), w = q; } else ++q; l > w && u.splice(x, 0, { from: w, to: l, level: 1 }); } return u[0].level == 1 && (t = b.match(/^\s+/)) && (u[0].from = t[0].length, u.unshift({ from: 0, to: t[0].length, level: 0 })), ad(u).level == 1 && (t = b.match(/\s+$/)) && (ad(u).to -= t[0].length, u.push({ from: i - t[0].length, to: i, level: 0 })), u[0].level != ad(u).level && u.push({ from: i, to: i, level: u[0].level }), u; }; }()); return a.version = '3.0', a; +}()), CodeMirror.defineMode('javascript', (a, b) => { function c(a, b, c) { return b.tokenize = c, c(a, b); } function d(a, b) { for (var c, d = !1; (c = a.next()) != null;) { if (c == b && !d) return !1; d = !d && c == '\\'; } return d; } function e(a, b, c) { return M = a, N = c, b; } function f(a, b) { const f = a.next(); if (f == '"' || f == "'") return c(a, b, g(f)); if (/[\[\]{}\(\),;\:\.]/.test(f)) return e(f); if (f == '0' && a.eat(/x/i)) return a.eatWhile(/[\da-f]/i), e('number', 'number'); if (/\d/.test(f) || f == '-' && a.eat(/\d/)) return a.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/), e('number', 'number'); if (f == '/') return a.eat('*') ? c(a, b, h) : a.eat('/') ? (a.skipToEnd(), e('comment', 'comment')) : b.lastType == 'operator' || b.lastType == 'keyword c' || /^[\[{}\(,;:]$/.test(b.lastType) ? (d(a, '/'), a.eatWhile(/[gimy]/), e('regexp', 'string-2')) : (a.eatWhile(S), e('operator', null, a.current())); if (f == '#') return a.skipToEnd(), e('error', 'error'); if (S.test(f)) return a.eatWhile(S), e('operator', null, a.current()); a.eatWhile(/[\w\$_]/); const i = a.current(); const j = R.propertyIsEnumerable(i) && R[i]; return j && b.lastType != '.' ? e(j.type, j.style, i) : e('variable', 'variable', i); } function g(a) { return function (b, c) { return d(b, a) || (c.tokenize = f), e('string', 'string'); }; } function h(a, b) { for (var c, d = !1; c = a.next();) { if (c == '/' && d) { b.tokenize = f; break; }d = c == '*'; } return e('comment', 'comment'); } function i(a, b, c, d, e, f) { this.indented = a, this.column = b, this.type = c, this.prev = e, this.info = f, d != null && (this.align = d); } function j(a, b) { for (let c = a.localVars; c; c = c.next) if (c.name == b) return !0; } function k(a, b, c, d, e) { const f = a.cc; for (U.state = a, U.stream = e, U.marked = null, U.cc = f, a.lexical.hasOwnProperty('align') || (a.lexical.align = !0); ;) { const g = f.length ? f.pop() : P ? u : t; if (g(c, d)) { for (;f.length && f[f.length - 1].lex;)f.pop()(); return U.marked ? U.marked : c == 'variable' && j(a, d) ? 'variable-2' : b; } } } function l() { for (let a = arguments.length - 1; a >= 0; a--)U.cc.push(arguments[a]); } function m() { return l.apply(null, arguments), !0; } function n(a) { const b = U.state; if (b.context) { U.marked = 'def'; for (let c = b.localVars; c; c = c.next) if (c.name == a) return; b.localVars = { name: a, next: b.localVars }; } } function o() { U.state.context = { prev: U.state.context, vars: U.state.localVars }, U.state.localVars = V; } function p() { U.state.localVars = U.state.context.vars, U.state.context = U.state.context.prev; } function q(a, b) { const c = function () { const c = U.state; c.lexical = new i(c.indented, U.stream.column(), a, null, c.lexical, b); }; return c.lex = !0, c; } function r() { const a = U.state; a.lexical.prev && (a.lexical.type == ')' && (a.indented = a.lexical.indented), a.lexical = a.lexical.prev); } function s(a) { return function (b) { return b == a ? m() : a == ';' ? l() : m(arguments.callee); }; } function t(a) { return a == 'var' ? m(q('vardef'), E, s(';'), r) : a == 'keyword a' ? m(q('form'), u, t, r) : a == 'keyword b' ? m(q('form'), t, r) : a == '{' ? m(q('}'), B, r) : a == ';' ? m() : a == 'function' ? m(K) : a == 'for' ? m(q('form'), s('('), q(')'), G, s(')'), r, t, r) : a == 'variable' ? m(q('stat'), x) : a == 'switch' ? m(q('form'), u, q('}', 'switch'), s('{'), B, r, r) : a == 'case' ? m(u, s(':')) : a == 'default' ? m(s(':')) : a == 'catch' ? m(q('form'), o, s('('), L, s(')'), t, r, p) : l(q('stat'), u, s(';'), r); } function u(a) { return T.hasOwnProperty(a) ? m(w) : a == 'function' ? m(K) : a == 'keyword c' ? m(v) : a == '(' ? m(q(')'), v, s(')'), r, w) : a == 'operator' ? m(u) : a == '[' ? m(q(']'), A(u, ']'), r, w) : a == '{' ? m(q('}'), A(z, '}'), r, w) : m(); } function v(a) { return a.match(/[;\}\)\],]/) ? l() : l(u); } function w(a, b) { if (a == 'operator' && /\+\+|--/.test(b)) return m(w); if (a == 'operator' && b == '?') return m(u, s(':'), u); if (a != ';') return a == '(' ? m(q(')'), A(u, ')'), r, w) : a == '.' ? m(y, w) : a == '[' ? m(q(']'), u, s(']'), r, w) : void 0; } function x(a) { return a == ':' ? m(r, t) : l(w, s(';'), r); } function y(a) { return a == 'variable' ? (U.marked = 'property', m()) : void 0; } function z(a) { return a == 'variable' && (U.marked = 'property'), T.hasOwnProperty(a) ? m(s(':'), u) : void 0; } function A(a, b) { function c(d) { return d == ',' ? m(a, c) : d == b ? m() : m(s(b)); } return function (d) { return d == b ? m() : l(a, c); }; } function B(a) { return a == '}' ? m() : l(t, B); } function C(a) { return a == ':' ? m(D) : l(); } function D(a) { return a == 'variable' ? (U.marked = 'variable-3', m()) : l(); } function E(a, b) { return a == 'variable' ? (n(b), Q ? m(C, F) : m(F)) : l(); } function F(a, b) { return b == '=' ? m(u, F) : a == ',' ? m(E) : void 0; } function G(a) { return a == 'var' ? m(E, s(';'), I) : a == ';' ? m(I) : a == 'variable' ? m(H) : m(I); } function H(a, b) { return b == 'in' ? m(u) : m(w, I); } function I(a, b) { return a == ';' ? m(J) : b == 'in' ? m(u) : m(u, s(';'), J); } function J(a) { a != ')' && m(u); } function K(a, b) { return a == 'variable' ? (n(b), m(K)) : a == '(' ? m(q(')'), o, A(L, ')'), r, t, p) : void 0; } function L(a, b) { return a == 'variable' ? (n(b), Q ? m(C) : m()) : void 0; } let M; let N; const O = a.indentUnit; var P = b.json; var Q = b.typescript; var R = (function () { function a(a) { return { type: a, style: 'keyword' }; } const b = a('keyword a'); const c = a('keyword b'); const d = a('keyword c'); const e = a('operator'); const f = { type: 'atom', style: 'atom' }; const g = { if: b, while: b, with: b, else: c, do: c, try: c, finally: c, return: d, break: d, continue: d, new: d, delete: d, throw: d, var: a('var'), const: a('var'), let: a('var'), function: a('function'), catch: a('catch'), for: a('for'), switch: a('switch'), case: a('case'), default: a('default'), in: e, typeof: e, instanceof: e, true: f, false: f, null: f, undefined: f, NaN: f, Infinity: f }; if (Q) { const h = { type: 'variable', style: 'variable-3' }; const i = { interface: a('interface'), class: a('class'), extends: a('extends'), constructor: a('constructor'), public: a('public'), private: a('private'), protected: a('protected'), static: a('static'), super: a('super'), string: h, number: h, bool: h, any: h }; for (const j in i)g[j] = i[j]; } return g; }()); var S = /[+\-*&%=<>!?|]/; var T = { atom: !0, number: !0, variable: !0, string: !0, regexp: !0 }; var U = { state: null, column: null, marked: null, cc: null }; var V = { name: 'this', next: { name: 'arguments' } }; return r.lex = !0, { startState: function (a) { return { tokenize: f, lastType: null, cc: [], lexical: new i((a || 0) - O, 0, 'block', !1), localVars: b.localVars, context: b.localVars && { vars: b.localVars }, indented: 0 }; }, token: function (a, b) { if (a.sol() && (b.lexical.hasOwnProperty('align') || (b.lexical.align = !1), b.indented = a.indentation()), a.eatSpace()) return null; const c = b.tokenize(a, b); return M == 'comment' ? c : (b.lastType = M, k(b, c, M, N, a)); }, indent: function (a, b) { if (a.tokenize == h) return CodeMirror.Pass; if (a.tokenize != f) return 0; const c = b && b.charAt(0); let d = a.lexical; d.type == 'stat' && c == '}' && (d = d.prev); const e = d.type; const g = c == e; return e == 'vardef' ? d.indented + (a.lastType == 'operator' || a.lastType == ',' ? 4 : 0) : e == 'form' && c == '{' ? d.indented : e == 'form' ? d.indented + O : e == 'stat' ? d.indented + (a.lastType == 'operator' || a.lastType == ',' ? O : 0) : d.info != 'switch' || g ? d.align ? d.column + (g ? 0 : 1) : d.indented + (g ? 0 : O) : d.indented + (/^(?:case|default)\b/.test(b) ? O : 2 * O); }, electricChars: ':{}', jsonMode: P }; }), CodeMirror.defineMIME('text/javascript', 'javascript'), CodeMirror.defineMIME('application/json', { name: 'javascript', json: !0 }), CodeMirror.defineMIME('text/typescript', { name: 'javascript', typescript: !0 }), CodeMirror.defineMIME('application/typescript', { name: 'javascript', typescript: !0 }), (function () { function a(a, b, c, d) { if (this.atOccurrence = !1, this.cm = a, d == null && typeof b === 'string' && (d = !1), c = c ? a.clipPos(c) : { line: 0, ch: 0 }, this.pos = { from: c, to: c }, typeof b !== 'string')b.global || (b = new RegExp(b.source, b.ignoreCase ? 'ig' : 'g')), this.matches = function (c, d) { if (c) { b.lastIndex = 0; for (var e = a.getLine(d.line).slice(0, d.ch), f = b.exec(e), g = 0; f;) { g += f.index + 1, e = e.slice(g), b.lastIndex = 0; const h = b.exec(e); if (!h) break; f = h; }g--; } else { b.lastIndex = d.ch; var e = a.getLine(d.line); var f = b.exec(e); var g = f && f.index; } return f ? { from: { line: d.line, ch: g }, to: { line: d.line, ch: g + f[0].length }, match: f } : void 0; }; else { d && (b = b.toLowerCase()); const e = d ? function (a) { return a.toLowerCase(); } : function (a) { return a; }; const f = b.split('\n'); this.matches = f.length == 1 ? function (c, d) { let f; const g = e(a.getLine(d.line)); const h = b.length; return (c ? d.ch >= h && (f = g.lastIndexOf(b, d.ch - h)) != -1 : (f = g.indexOf(b, d.ch)) != -1) ? { from: { line: d.line, ch: f }, to: { line: d.line, ch: f + h } } : void 0; } : function (b, c) { let d = c.line; let g = b ? f.length - 1 : 0; let h = f[g]; let i = e(a.getLine(d)); const j = b ? i.indexOf(h) + h.length : i.lastIndexOf(h); if (!(b ? j >= c.ch || j != h.length : j <= c.ch || j != i.length - h.length)) for (;;) { if (b ? !d : d == a.lineCount() - 1) return; if (i = e(a.getLine(d += b ? -1 : 1)), h = f[b ? --g : ++g], !(g > 0 && g < f.length - 1)) { const k = b ? i.lastIndexOf(h) : i.indexOf(h) + h.length; if (b ? k != i.length - h.length : k != h.length) return; const l = { line: c.line, ch: j }; const m = { line: d, ch: k }; return { from: b ? m : l, to: b ? l : m }; } if (i != h) return; } }; } }a.prototype = { findNext: function () { return this.find(!1); }, findPrevious: function () { return this.find(!0); }, find: function (a) { function b(a) { const b = { line: a, ch: 0 }; return c.pos = { from: b, to: b }, c.atOccurrence = !1, !1; } for (var c = this, d = this.cm.clipPos(a ? this.pos.from : this.pos.to); ;) { if (this.pos = this.matches(a, d)) return this.atOccurrence = !0, this.pos.match || !0; if (a) { if (!d.line) return b(0); d = { line: d.line - 1, ch: this.cm.getLine(d.line - 1).length }; } else { const e = this.cm.lineCount(); if (d.line == e - 1) return b(e); d = { line: d.line + 1, ch: 0 }; } } }, from: function () { return this.atOccurrence ? this.pos.from : void 0; }, to: function () { return this.atOccurrence ? this.pos.to : void 0; }, replace: function (a) { const b = this; this.atOccurrence && (b.pos.to = this.cm.replaceRange(a, b.pos.from, b.pos.to)); } }, CodeMirror.defineExtension('getSearchCursor', function (b, c, d) { return new a(this, b, c, d); }); }()); diff --git a/report/assets/scripts/bundles/core-bundle.js b/report/assets/scripts/bundles/core-bundle.js new file mode 100644 index 00000000..e2c51685 --- /dev/null +++ b/report/assets/scripts/bundles/core-bundle.js @@ -0,0 +1,108 @@ +!(function (a, b) { + function c(a) { const b = ob[a] = {}; return $.each(a.split(bb), (a, c) => { b[c] = !0; }), b; } function d(a, c, d) { if (d === b && a.nodeType === 1) { const e = `data-${c.replace(qb, '-$1').toLowerCase()}`; if (d = a.getAttribute(e), typeof d === 'string') { try { d = d === 'true' ? !0 : d === 'false' ? !1 : d === 'null' ? null : `${+d}` === d ? +d : pb.test(d) ? $.parseJSON(d) : d; } catch (f) {}$.data(a, c, d); } else d = b; } return d; } function e(a) { let b; for (b in a) if ((b !== 'data' || !$.isEmptyObject(a[b])) && b !== 'toJSON') return !1; return !0; } function f() { return !1; } function g() { return !0; } function h(a) { return !a || !a.parentNode || a.parentNode.nodeType === 11; } function i(a, b) { do a = a[b]; while (a && a.nodeType !== 1); return a; } function j(a, b, c) { if (b = b || 0, $.isFunction(b)) return $.grep(a, (a, d) => { const e = !!b.call(a, d, a); return e === c; }); if (b.nodeType) return $.grep(a, a => a === b === c); if (typeof b === 'string') { const d = $.grep(a, a => a.nodeType === 1); if (Kb.test(b)) return $.filter(b, d, !c); b = $.filter(b, d); } return $.grep(a, a => $.inArray(a, b) >= 0 === c); } function k(a) { const b = Nb.split('|'); const c = a.createDocumentFragment(); if (c.createElement) for (;b.length;)c.createElement(b.pop()); return c; } function l(a, b) { return a.getElementsByTagName(b)[0] || a.appendChild(a.ownerDocument.createElement(b)); } function m(a, b) { if (b.nodeType === 1 && $.hasData(a)) { let c; let d; let e; const f = $._data(a); const g = $._data(b, f); const h = f.events; if (h) { delete g.handle, g.events = {}; for (c in h) for (d = 0, e = h[c].length; e > d; d++)$.event.add(b, c, h[c][d]); }g.data && (g.data = $.extend({}, g.data)); } } function n(a, b) { let c; b.nodeType === 1 && (b.clearAttributes && b.clearAttributes(), b.mergeAttributes && b.mergeAttributes(a), c = b.nodeName.toLowerCase(), c === 'object' ? (b.parentNode && (b.outerHTML = a.outerHTML), $.support.html5Clone && a.innerHTML && !$.trim(b.innerHTML) && (b.innerHTML = a.innerHTML)) : c === 'input' && Xb.test(a.type) ? (b.defaultChecked = b.checked = a.checked, b.value !== a.value && (b.value = a.value)) : c === 'option' ? b.selected = a.defaultSelected : c === 'input' || c === 'textarea' ? b.defaultValue = a.defaultValue : c === 'script' && b.text !== a.text && (b.text = a.text), b.removeAttribute($.expando)); } function o(a) { return typeof a.getElementsByTagName !== 'undefined' ? a.getElementsByTagName('*') : typeof a.querySelectorAll !== 'undefined' ? a.querySelectorAll('*') : []; } function p(a) { Xb.test(a.type) && (a.defaultChecked = a.checked); } function q(a, b) { if (b in a) return b; for (var c = b.charAt(0).toUpperCase() + b.slice(1), d = b, e = rc.length; e--;) if (b = rc[e] + c, b in a) return b; return d; } function r(a, b) { return a = b || a, $.css(a, 'display') === 'none' || !$.contains(a.ownerDocument, a); } function s(a, b) { for (var c, d, e = [], f = 0, g = a.length; g > f; f++)c = a[f], c.style && (e[f] = $._data(c, 'olddisplay'), b ? (!e[f] && c.style.display === 'none' && (c.style.display = ''), c.style.display === '' && r(c) && (e[f] = $._data(c, 'olddisplay', w(c.nodeName)))) : (d = cc(c, 'display'), !e[f] && d !== 'none' && $._data(c, 'olddisplay', d))); for (f = 0; g > f; f++)c = a[f], c.style && (b && c.style.display !== 'none' && c.style.display !== '' || (c.style.display = b ? e[f] || '' : 'none')); return a; } function t(a, b, c) { const d = kc.exec(b); return d ? Math.max(0, d[1] - (c || 0)) + (d[2] || 'px') : b; } function u(a, b, c, d) { for (var e = c === (d ? 'border' : 'content') ? 4 : b === 'width' ? 1 : 0, f = 0; e < 4; e += 2)c === 'margin' && (f += $.css(a, c + qc[e], !0)), d ? (c === 'content' && (f -= parseFloat(cc(a, `padding${qc[e]}`)) || 0), c !== 'margin' && (f -= parseFloat(cc(a, `border${qc[e]}Width`)) || 0)) : (f += parseFloat(cc(a, `padding${qc[e]}`)) || 0, c !== 'padding' && (f += parseFloat(cc(a, `border${qc[e]}Width`)) || 0)); return f; } function v(a, b, c) { let d = b === 'width' ? a.offsetWidth : a.offsetHeight; let e = !0; const f = $.support.boxSizing && $.css(a, 'boxSizing') === 'border-box'; if (d <= 0 || d == null) { if (d = cc(a, b), (d < 0 || d == null) && (d = a.style[b]), lc.test(d)) return d; e = f && ($.support.boxSizingReliable || d === a.style[b]), d = parseFloat(d) || 0; } return `${d + u(a, b, c || (f ? 'border' : 'content'), e)}px`; } function w(a) { if (nc[a]) return nc[a]; let b = $(`<${a}>`).appendTo(P.body); let c = b.css('display'); return b.remove(), (c === 'none' || c === '') && (dc = P.body.appendChild(dc || $.extend(P.createElement('iframe'), { frameBorder: 0, width: 0, height: 0 })), ec && dc.createElement || (ec = (dc.contentWindow || dc.contentDocument).document, ec.write('
'), ec.close()), b = ec.body.appendChild(ec.createElement(a)), c = cc(b, 'display'), P.body.removeChild(dc)), nc[a] = c, c; } function x(a, b, c, d) { let e; if ($.isArray(b))$.each(b, (b, e) => { c || uc.test(a) ? d(a, e) : x(`${a}[${typeof e === 'object' ? b : ''}]`, e, c, d); }); else if (c || $.type(b) !== 'object')d(a, b); else for (e in b)x(`${a}[${e}]`, b[e], c, d); } function y(a) { return function (b, c) { typeof b !== 'string' && (c = b, b = '*'); let d; let e; let f; const g = b.toLowerCase().split(bb); let h = 0; const i = g.length; if ($.isFunction(c)) for (;i > h; h++)d = g[h], f = /^\+/.test(d), f && (d = d.substr(1) || '*'), e = a[d] = a[d] || [], e[f ? 'unshift' : 'push'](c); }; } function z(a, c, d, e, f, g) { f = f || c.dataTypes[0], g = g || {}, g[f] = !0; for (var h, i = a[f], j = 0, k = i ? i.length : 0, l = a === Kc; k > j && (l || !h); j++)h = i[j](c, d, e), typeof h === 'string' && (!l || g[h] ? h = b : (c.dataTypes.unshift(h), h = z(a, c, d, e, h, g))); return (l || !h) && !g['*'] && (h = z(a, c, d, e, '*', g)), h; } function A(a, c) { let d; let e; const f = $.ajaxSettings.flatOptions || {}; for (d in c)c[d] !== b && ((f[d] ? a : e || (e = {}))[d] = c[d]); e && $.extend(!0, a, e); } function B(a, c, d) { let e; let f; let g; let h; const i = a.contents; const j = a.dataTypes; const k = a.responseFields; for (f in k)f in d && (c[k[f]] = d[f]); for (;j[0] === '*';)j.shift(), e === b && (e = a.mimeType || c.getResponseHeader('content-type')); if (e) for (f in i) if (i[f] && i[f].test(e)) { j.unshift(f); break; } if (j[0] in d)g = j[0]; else { for (f in d) { if (!j[0] || a.converters[`${f} ${j[0]}`]) { g = f; break; }h || (h = f); }g = g || h; } return g ? (g !== j[0] && j.unshift(g), d[g]) : void 0; } function C(a, b) { let c; let d; let e; let f; const g = a.dataTypes.slice(); let h = g[0]; const i = {}; let j = 0; if (a.dataFilter && (b = a.dataFilter(b, a.dataType)), g[1]) for (c in a.converters)i[c.toLowerCase()] = a.converters[c]; for (;e = g[++j];) if (e !== '*') { if (h !== '*' && h !== e) { if (c = i[`${h} ${e}`] || i[`* ${e}`], !c) for (d in i) if (f = d.split(' '), f[1] === e && (c = i[`${h} ${f[0]}`] || i[`* ${f[0]}`])) { c === !0 ? c = i[d] : i[d] !== !0 && (e = f[0], g.splice(j--, 0, e)); break; } if (c !== !0) if (c && a.throws)b = c(b); else try { b = c(b); } catch (k) { return { state: 'parsererror', error: c ? k : `No conversion from ${h} to ${e}` }; } }h = e; } return { state: 'success', data: b }; } function D() { try { return new a.XMLHttpRequest(); } catch (b) {} } function E() { try { return new a.ActiveXObject('Microsoft.XMLHTTP'); } catch (b) {} } function F() { return setTimeout(() => { Vc = b; }, 0), Vc = $.now(); } function G(a, b) { $.each(b, (b, c) => { for (let d = (_c[b] || []).concat(_c['*']), e = 0, f = d.length; f > e; e++) if (d[e].call(a, b, c)) return; }); } function H(a, b, c) { let d; let e = 0; const f = $c.length; const g = $.Deferred().always(() => { delete h.elem; }); var h = function () { for (var b = Vc || F(), c = Math.max(0, i.startTime + i.duration - b), d = c / i.duration || 0, e = 1 - d, f = 0, h = i.tweens.length; h > f; f++)i.tweens[f].run(e); return g.notifyWith(a, [i, e, c]), e < 1 && h ? c : (g.resolveWith(a, [i]), !1); }; var i = g.promise({ elem: a, props: $.extend({}, b), opts: $.extend(!0, { specialEasing: {} }, c), originalProperties: b, originalOptions: c, startTime: Vc || F(), duration: c.duration, tweens: [], createTween: function (b, c) { const d = $.Tween(a, i.opts, b, c, i.opts.specialEasing[b] || i.opts.easing); return i.tweens.push(d), d; }, stop: function (b) { for (let c = 0, d = b ? i.tweens.length : 0; d > c; c++)i.tweens[c].run(1); return b ? g.resolveWith(a, [i, b]) : g.rejectWith(a, [i, b]), this; } }); const j = i.props; for (I(j, i.opts.specialEasing); f > e; e++) if (d = $c[e].call(i, a, j, i.opts)) return d; return G(i, j), $.isFunction(i.opts.start) && i.opts.start.call(a, i), $.fx.timer($.extend(h, { anim: i, queue: i.opts.queue, elem: a })), i.progress(i.opts.progress).done(i.opts.done, i.opts.complete).fail(i.opts.fail).always(i.opts.always); } function I(a, b) { let c; let d; let e; let f; let g; for (c in a) if (d = $.camelCase(c), e = b[d], f = a[c], $.isArray(f) && (e = f[1], f = a[c] = f[0]), c !== d && (a[d] = f, delete a[c]), g = $.cssHooks[d], g && 'expand' in g) { f = g.expand(f), delete a[d]; for (c in f)c in a || (a[c] = f[c], b[c] = e); } else b[d] = e; } function J(a, b, c) { let d; let e; let f; let g; let h; let i; let j; let k; let l; const m = this; const n = a.style; const o = {}; const p = []; let q = a.nodeType && r(a); c.queue || (k = $._queueHooks(a, 'fx'), k.unqueued == null && (k.unqueued = 0, l = k.empty.fire, k.empty.fire = function () { k.unqueued || l(); }), k.unqueued++, m.always(() => { m.always(() => { k.unqueued--, $.queue(a, 'fx').length || k.empty.fire(); }); })), a.nodeType === 1 && ('height' in b || 'width' in b) && (c.overflow = [n.overflow, n.overflowX, n.overflowY], $.css(a, 'display') === 'inline' && $.css(a, 'float') === 'none' && ($.support.inlineBlockNeedsLayout && w(a.nodeName) !== 'inline' ? n.zoom = 1 : n.display = 'inline-block')), c.overflow && (n.overflow = 'hidden', $.support.shrinkWrapBlocks || m.done(() => { n.overflow = c.overflow[0], n.overflowX = c.overflow[1], n.overflowY = c.overflow[2]; })); for (d in b) if (f = b[d], Xc.exec(f)) { if (delete b[d], i = i || f === 'toggle', f === (q ? 'hide' : 'show')) continue; p.push(d); } if (g = p.length) { h = $._data(a, 'fxshow') || $._data(a, 'fxshow', {}), 'hidden' in h && (q = h.hidden), i && (h.hidden = !q), q ? $(a).show() : m.done(() => { $(a).hide(); }), m.done(() => { let b; $.removeData(a, 'fxshow', !0); for (b in o)$.style(a, b, o[b]); }); for (d = 0; g > d; d++)e = p[d], j = m.createTween(e, q ? h[e] : 0), o[e] = h[e] || $.style(a, e), e in h || (h[e] = j.start, q && (j.end = j.start, j.start = e === 'width' || e === 'height' ? 1 : 0)); } } function K(a, b, c, d, e) { return new K.prototype.init(a, b, c, d, e); } function L(a, b) { let c; const d = { height: a }; let e = 0; for (b = b ? 1 : 0; e < 4; e += 2 - b)c = qc[e], d[`margin${c}`] = d[`padding${c}`] = a; return b && (d.opacity = d.width = a), d; } function M(a) { return $.isWindow(a) ? a : a.nodeType === 9 ? a.defaultView || a.parentWindow : !1; } let N; let O; var P = a.document; const Q = a.location; const R = a.navigator; const S = a.jQuery; const T = a.$; const U = Array.prototype.push; const V = Array.prototype.slice; const W = Array.prototype.indexOf; const X = Object.prototype.toString; const Y = Object.prototype.hasOwnProperty; const Z = String.prototype.trim; var $ = function (a, b) { return new $.fn.init(a, b, N); }; const _ = /[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source; const ab = /\S/; var bb = /\s+/; const cb = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; const db = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/; const eb = /^<(\w+)\s*\/?>(?:<\/\1>|)$/; const fb = /^[\],:{}\s]*$/; const gb = /(?:^|:|,)(?:\s*\[)+/g; const hb = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g; const ib = /"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g; const jb = /^-ms-/; const kb = /-([\da-z])/gi; const lb = function (a, b) { return (`${b}`).toUpperCase(); }; const mb = function () { P.addEventListener ? (P.removeEventListener('DOMContentLoaded', mb, !1), $.ready()) : P.readyState === 'complete' && (P.detachEvent('onreadystatechange', mb), $.ready()); }; const nb = {}; $.fn = $.prototype = { constructor: $, init: function (a, c, d) { let e; let f; let g; if (!a) return this; if (a.nodeType) return this.context = this[0] = a, this.length = 1, this; if (typeof a === 'string') { if (e = a.charAt(0) === '<' && a.charAt(a.length - 1) === '>' && a.length >= 3 ? [null, a, null] : db.exec(a), e && (e[1] || !c)) { if (e[1]) return c = c instanceof $ ? c[0] : c, g = c && c.nodeType ? c.ownerDocument || c : P, a = $.parseHTML(e[1], g, !0), eb.test(e[1]) && $.isPlainObject(c) && this.attr.call(a, c, !0), $.merge(this, a); if (f = P.getElementById(e[2]), f && f.parentNode) { if (f.id !== e[2]) return d.find(a); this.length = 1, this[0] = f; } return this.context = P, this.selector = a, this; } return !c || c.jquery ? (c || d).find(a) : this.constructor(c).find(a); } return $.isFunction(a) ? d.ready(a) : (a.selector !== b && (this.selector = a.selector, this.context = a.context), $.makeArray(a, this)); }, selector: '', jquery: '1.8.3', length: 0, size: function () { return this.length; }, toArray: function () { return V.call(this); }, get: function (a) { return a == null ? this.toArray() : a < 0 ? this[this.length + a] : this[a]; }, pushStack: function (a, b, c) { const d = $.merge(this.constructor(), a); return d.prevObject = this, d.context = this.context, b === 'find' ? d.selector = this.selector + (this.selector ? ' ' : '') + c : b && (d.selector = `${this.selector}.${b}(${c})`), d; }, each: function (a, b) { return $.each(this, a, b); }, ready: function (a) { return $.ready.promise().done(a), this; }, eq: function (a) { return a = +a, a === -1 ? this.slice(a) : this.slice(a, a + 1); }, first: function () { return this.eq(0); }, last: function () { return this.eq(-1); }, slice: function () { return this.pushStack(V.apply(this, arguments), 'slice', V.call(arguments).join(',')); }, map: function (a) { return this.pushStack($.map(this, (b, c) => a.call(b, c, b))); }, end: function () { return this.prevObject || this.constructor(null); }, push: U, sort: [].sort, splice: [].splice }, $.fn.init.prototype = $.fn, $.extend = $.fn.extend = function () { let a; let c; let d; let e; let f; let g; let h = arguments[0] || {}; let i = 1; const j = arguments.length; let k = !1; for (typeof h === 'boolean' && (k = h, h = arguments[1] || {}, i = 2), typeof h !== 'object' && !$.isFunction(h) && (h = {}), j === i && (h = this, --i); j > i; i++) if ((a = arguments[i]) != null) for (c in a)d = h[c], e = a[c], h !== e && (k && e && ($.isPlainObject(e) || (f = $.isArray(e))) ? (f ? (f = !1, g = d && $.isArray(d) ? d : []) : g = d && $.isPlainObject(d) ? d : {}, h[c] = $.extend(k, g, e)) : e !== b && (h[c] = e)); return h; }, $.extend({ noConflict: function (b) { return a.$ === $ && (a.$ = T), b && a.jQuery === $ && (a.jQuery = S), $; }, isReady: !1, readyWait: 1, holdReady: function (a) { a ? $.readyWait++ : $.ready(!0); }, ready: function (a) { if (a === !0 ? !--$.readyWait : !$.isReady) { if (!P.body) return setTimeout($.ready, 1); $.isReady = !0, a !== !0 && --$.readyWait > 0 || (O.resolveWith(P, [$]), $.fn.trigger && $(P).trigger('ready').off('ready')); } }, isFunction: function (a) { return $.type(a) === 'function'; }, isArray: Array.isArray || function (a) { return $.type(a) === 'array'; }, isWindow: function (a) { return a != null && a == a.window; }, isNumeric: function (a) { return !isNaN(parseFloat(a)) && isFinite(a); }, type: function (a) { return a == null ? String(a) : nb[X.call(a)] || 'object'; }, isPlainObject: function (a) { if (!a || $.type(a) !== 'object' || a.nodeType || $.isWindow(a)) return !1; try { if (a.constructor && !Y.call(a, 'constructor') && !Y.call(a.constructor.prototype, 'isPrototypeOf')) return !1; } catch (c) { return !1; } let d; for (d in a);return d === b || Y.call(a, d); }, isEmptyObject: function (a) { let b; for (b in a) return !1; return !0; }, error: function (a) { throw new Error(a); }, parseHTML: function (a, b, c) { let d; return a && typeof a === 'string' ? (typeof b === 'boolean' && (c = b, b = 0), b = b || P, (d = eb.exec(a)) ? [b.createElement(d[1])] : (d = $.buildFragment([a], b, c ? null : []), $.merge([], (d.cacheable ? $.clone(d.fragment) : d.fragment).childNodes))) : null; }, parseJSON: function (b) { return b && typeof b === 'string' ? (b = $.trim(b), a.JSON && a.JSON.parse ? a.JSON.parse(b) : fb.test(b.replace(hb, '@').replace(ib, ']').replace(gb, '')) ? new Function(`return ${b}`)() : ($.error(`Invalid JSON: ${b}`), void 0)) : null; }, parseXML: function (c) { let d; let e; if (!c || typeof c !== 'string') return null; try { a.DOMParser ? (e = new DOMParser(), d = e.parseFromString(c, 'text/xml')) : (d = new ActiveXObject('Microsoft.XMLDOM'), d.async = 'false', d.loadXML(c)); } catch (f) { d = b; } return (!d || !d.documentElement || d.getElementsByTagName('parsererror').length) && $.error(`Invalid XML: ${c}`), d; }, noop: function () {}, globalEval: function (b) { b && ab.test(b) && (a.execScript || function (b) { a.eval.call(a, b); })(b); }, camelCase: function (a) { return a.replace(jb, 'ms-').replace(kb, lb); }, nodeName: function (a, b) { return a.nodeName && a.nodeName.toLowerCase() === b.toLowerCase(); }, each: function (a, c, d) { let e; let f = 0; const g = a.length; const h = g === b || $.isFunction(a); if (d) if (h) { for (e in a) if (c.apply(a[e], d) === !1) break; } else for (;g > f && c.apply(a[f++], d) !== !1;);else if (h) { for (e in a) if (c.call(a[e], e, a[e]) === !1) break; } else for (;g > f && c.call(a[f], f, a[f++]) !== !1;);return a; }, trim: Z && !Z.call(' ') ? function (a) { return a == null ? '' : Z.call(a); } : function (a) { return a == null ? '' : (`${a}`).replace(cb, ''); }, makeArray: function (a, b) { let c; const d = b || []; return a != null && (c = $.type(a), a.length == null || c === 'string' || c === 'function' || c === 'regexp' || $.isWindow(a) ? U.call(d, a) : $.merge(d, a)), d; }, inArray: function (a, b, c) { let d; if (b) { if (W) return W.call(b, a, c); for (d = b.length, c = c ? c < 0 ? Math.max(0, d + c) : c : 0; d > c; c++) if (c in b && b[c] === a) return c; } return -1; }, merge: function (a, c) { const d = c.length; let e = a.length; let f = 0; if (typeof d === 'number') for (;d > f; f++)a[e++] = c[f]; else for (;c[f] !== b;)a[e++] = c[f++]; return a.length = e, a; }, grep: function (a, b, c) { let d; const e = []; let f = 0; const g = a.length; for (c = !!c; g > f; f++)d = !!b(a[f], f), c !== d && e.push(a[f]); return e; }, map: function (a, c, d) { let e; let f; const g = []; let h = 0; const i = a.length; const j = a instanceof $ || i !== b && typeof i === 'number' && (i > 0 && a[0] && a[i - 1] || i === 0 || $.isArray(a)); if (j) for (;i > h; h++)e = c(a[h], h, d), e != null && (g[g.length] = e); else for (f in a)e = c(a[f], f, d), e != null && (g[g.length] = e); return g.concat.apply([], g); }, guid: 1, proxy: function (a, c) { let d; let e; let f; return typeof c === 'string' && (d = a[c], c = a, a = d), $.isFunction(a) ? (e = V.call(arguments, 2), f = function () { return a.apply(c, e.concat(V.call(arguments))); }, f.guid = a.guid = a.guid || $.guid++, f) : b; }, access: function (a, c, d, e, f, g, h) { let i; const j = d == null; let k = 0; const l = a.length; if (d && typeof d === 'object') { for (k in d)$.access(a, c, k, d[k], 1, g, e); f = 1; } else if (e !== b) { if (i = h === b && $.isFunction(e), j && (i ? (i = c, c = function (a, b, c) { return i.call($(a), c); }) : (c.call(a, e), c = null)), c) for (;l > k; k++)c(a[k], d, i ? e.call(a[k], k, c(a[k], d)) : e, h); f = 1; } return f ? a : j ? c.call(a) : l ? c(a[0], d) : g; }, now: function () { return (new Date()).getTime(); } }), $.ready.promise = function (b) { if (!O) if (O = $.Deferred(), P.readyState === 'complete')setTimeout($.ready, 1); else if (P.addEventListener)P.addEventListener('DOMContentLoaded', mb, !1), a.addEventListener('load', $.ready, !1); else { P.attachEvent('onreadystatechange', mb), a.attachEvent('onload', $.ready); let c = !1; try { c = a.frameElement == null && P.documentElement; } catch (d) {}c && c.doScroll && (function e() { if (!$.isReady) { try { c.doScroll('left'); } catch (a) { return setTimeout(e, 50); }$.ready(); } }()); } return O.promise(b); }, $.each('Boolean Number String Function Array Date RegExp Object'.split(' '), (a, b) => { nb[`[object ${b}]`] = b.toLowerCase(); }), N = $(P); var ob = {}; $.Callbacks = function (a) { a = typeof a === 'string' ? ob[a] || c(a) : $.extend({}, a); let d; let e; let f; let g; let h; let i; let j = []; let k = !a.once && []; const l = function (b) { for (d = a.memory && b, e = !0, i = g || 0, g = 0, h = j.length, f = !0; j && h > i; i++) if (j[i].apply(b[0], b[1]) === !1 && a.stopOnFalse) { d = !1; break; }f = !1, j && (k ? k.length && l(k.shift()) : d ? j = [] : m.disable()); }; var m = { add: function () { if (j) { const b = j.length; !(function c(b) { $.each(b, (b, d) => { const e = $.type(d); e === 'function' ? (!a.unique || !m.has(d)) && j.push(d) : d && d.length && e !== 'string' && c(d); }); }(arguments)), f ? h = j.length : d && (g = b, l(d)); } return this; }, remove: function () { return j && $.each(arguments, (a, b) => { for (var c; (c = $.inArray(b, j, c)) > -1;)j.splice(c, 1), f && (h >= c && h--, i >= c && i--); }), this; }, has: function (a) { return $.inArray(a, j) > -1; }, empty: function () { return j = [], this; }, disable: function () { return j = k = d = b, this; }, disabled: function () { return !j; }, lock: function () { return k = b, d || m.disable(), this; }, locked: function () { return !k; }, fireWith: function (a, b) { return b = b || [], b = [a, b.slice ? b.slice() : b], j && (!e || k) && (f ? k.push(b) : l(b)), this; }, fire: function () { return m.fireWith(this, arguments), this; }, fired: function () { return !!e; } }; return m; }, $.extend({ Deferred: function (a) { const b = [['resolve', 'done', $.Callbacks('once memory'), 'resolved'], ['reject', 'fail', $.Callbacks('once memory'), 'rejected'], ['notify', 'progress', $.Callbacks('memory')]]; let c = 'pending'; var d = { state: function () { return c; }, always: function () { return e.done(arguments).fail(arguments), this; }, then: function () { let a = arguments; return $.Deferred((c) => { $.each(b, (b, d) => { const f = d[0]; const g = a[b]; e[d[1]]($.isFunction(g) ? function () { const a = g.apply(this, arguments); a && $.isFunction(a.promise) ? a.promise().done(c.resolve).fail(c.reject).progress(c.notify) : c[`${f}With`](this === e ? c : this, [a]); } : c[f]); }), a = null; }).promise(); }, promise: function (a) { return a != null ? $.extend(a, d) : d; } }; var e = {}; return d.pipe = d.then, $.each(b, (a, f) => { const g = f[2]; const h = f[3]; d[f[1]] = g.add, h && g.add(() => { c = h; }, b[1 ^ a][2].disable, b[2][2].lock), e[f[0]] = g.fire, e[`${f[0]}With`] = g.fireWith; }), d.promise(e), a && a.call(e, e), e; }, when: function (a) { let b; let c; let d; let e = 0; const f = V.call(arguments); const g = f.length; let h = g !== 1 || a && $.isFunction(a.promise) ? g : 0; const i = h === 1 ? a : $.Deferred(); const j = function (a, c, d) { return function (e) { c[a] = this, d[a] = arguments.length > 1 ? V.call(arguments) : e, d === b ? i.notifyWith(c, d) : --h || i.resolveWith(c, d); }; }; if (g > 1) for (b = new Array(g), c = new Array(g), d = new Array(g); g > e; e++)f[e] && $.isFunction(f[e].promise) ? f[e].promise().done(j(e, d, f)).fail(i.reject).progress(j(e, c, b)) : --h; return h || i.resolveWith(d, f), i.promise(); } }), $.support = (function () { let b; let c; let d; let e; let f; let g; let h; let i; let j; let k; let l; let m = P.createElement('div'); if (m.setAttribute('className', 't'), m.innerHTML = "t |